Mindmap with markmap.js

Hi I have created my first plugin.
It converts markdown to beautiful mindmap.

6 Likes

I have changed build to every month change embedded libraries to lastest specific version (see tags

Super cool!

plug supports: internal links syntaxes [] or[[|]]

Support of dark mode

Migration to space-lua.

:hammer_and_wrench: Installation
Navigate to your Library Manager inside Silverbullet
Add my repository: silverbullet-libraries/Repositories/malys.md at main · malys/silverbullet-libraries · GitHub
Install silverbullet-libraries/src/MarkmapMindmap.md at main · malys/silverbullet-libraries · GitHub

markmap

1 Like

I am getting

Library frontmatter validation error: must have required property ‘name’

error notification when doing install from URI (or the install button) in Library Manager. Library is not copied to Library/Malys.

Github page for MarkmapMindmap.md shows

Error in user YAML: (): did not find expected key while parsing a block mapping at line 1 column 1

Other libraries with this YAML error (like Marpslides) fail the same. Libraries without it install just fine.

This is happening on silverbullet-server-windows-x86_64 binary, 2.3.0.

Interesting !
What caused me a problem:

  • the code uses your utilities.md (which must therefore be installed)
  • the path to configure includes the name of the file without its extension (not explicit enough in the doc)
  • I use Treeview_Extension_DragAndResize from @Mr.Red which sets the size of the Panel. The ideal would be to transpose the DragAndResize functions and manage the visibility state of the Panel before opening Mindmap (exemple : TreeView already open)

Any way, thanks for sharing!

try again.

Success!
So hyperlink in frontmatter is a problem?

A surprise but yes, it was the problem.

1 Like

docs improved and I have changed code to manage missing dependency alert.

About its extension (Treeview_Extension_DragAndResize) @Mr.Red write :

This is essentially a two-panel windowing system built on top of elements never intended for it.

To use its system, simply execute the js code after calling the Panel like this:

command.define {
  name = "Markmap: Toggle Move&Resize",
  key = "Ctrl-Alt-m",
  mac = "Cmd-Alt-m",
  run = function()
        editor.invokeCommand "Markmap: Toggle preview"
        js.import("/.fs/Library/Mr-xRed/PanelDragResize.js").enableDrag()
       end
} 

:warning: To close the Panel: Ctrl + Alt + m (cursor outside the Panel)

The extension remembers dimensions and position of the last execution. However, since the Panel is shared (exemple: the TreeView), a manual adjustment may be necessary.

1 Like

Just a heads up. I updated the Drag&Resize Extension. And fixed a major bug.
Here is the latest ChangeLog.

2 Likes

The plugin works really well with @Mr.Red’s Drag&Resize Extension!

For greater ease of use, I made three mini adjustments:

  • Print button (and event beforeprint): removed (in Firefox, to print the frame: right button).
  • Markmap toolbar: positioned at the top left
  • Markmap toolbar: brand removed (logo + label). To do this, add:
const brandLink = document.querySelector('.mm-toolbar-brand');
if (brandLink) {
  brandLink.remove();
};

in the js template, after document.body.appendChild(el);.

Combined with the resizing of the floating panel, we obtain a more spacious drawing surface.

Thanks to community contributions, SB ecosystem has so rich then never.

1 Like

Finally, getting around to setting this up after upgrading from 1.x. I had dark mode working with 1. x but dark mode is eluding me with 2.3.0. I am am sure that I am the problem.

Anyone provide an example of their CONFIG where it defaults to dark mode? Toggling dark mode doesn’t do anything on my end and a refresh closes the preview with light mode being defaulted.

I use these themes:
Library/xczphysics/STYLE/Theme/Doom-Two
Library/Malys/Theme/theme-malys
Use Library manager (GitHub - malys/silverbullet-libraries: Malys SilverBullet libraries)

Thank you. I will review your themes and look for the mindmap specific items to add to my theme.

I put the following in CONFIG (space-lua). Is this correct?

config.set("markmap.source","Library/Malys/MarkmapMindmap")

SilverBullet v2.3.0.

As I recollect, setting this up was relatively painless except for the text in darkmode which you fixed at my request. Feel like I am missing the obvious. It is not working as expected. :expressionless: