Editable Popover and Exportable Markdown Mindmap

240916

  • 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…

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