Editable Popover and Exportable Markdown Mindmap

240916

Chore

  • Previously all code was written in a single JS file for the convenience of allowing users to modify it regardless of their environment. Now that I have chosen to build, breaking down the code into multiple JSs makes it more organized.

Mindmap

  • Support for Magic Comments; see Magic Comments - markmap docs

  • Compatible with list headings since I noticed some people use this format.

    - ## List heading
        - like this
    
  • Set mmView.navigation to false, as it feels better.

Popover

  • For those who attempt to write an editable popover in Ob, there is a conflict with the Excalidraw Plugin. When using “More options - Delete file” at the top right corner within a popover, an error occurs (which does not affect the process). The author avoided it by checking app.plugins.plugins['obsidian-hover-editor'].

    Currently I use Proxy. Since Ob itself detects through hasOwnProperty(), this ensures that the Setting - Community plugins panel can be loaded correctly while being compatible with Excalidraw. Glad to see better solutions.

    app.plugins.plugins = new Proxy(app.plugins.plugins, {
      get: (target, prop)=> !!(prop == 'obsidian-hover-editor')||target[prop]
    })
    
  • But starting from v1.7.0, the Core plugin Page preview became editable; see Changelog. I guess fewer people may want customizations going forward.
    Having updated to v1.7.4, I feel the built-in editable feature still have a lot of room for optimization…

241230

  • Better export
  • Package markmap to the latest of 0.18

Additionally, would be greatly appreciated any related ideas regarding the deficiencies mentioned in #1.