MermaidMaker
approvedby akitaroh
This plugin has not been manually reviewed by Obsidian staff. Inline GUI editor for Mermaid diagrams. Wikilinks, tags, math and rich markdown work inside nodes.
MermaidMaker for Obsidian
Inline GUI editor for Mermaid diagrams. Drag nodes, click
[[wikilinks]]inside them, edit visually β all without leaving your note.
This plugin turns Mermaid code blocks into a visual canvas where you can
drag nodes, add/delete/connect them, and edit labels β without switching to
an external tool. Node labels render as real Obsidian markdown, so
[[wikilinks]], #tags, $math$ and bold/italic all work inside the
diagram.
The world's first inline GUI Mermaid editor for Obsidian.
Features
- π± Drag nodes on a visual canvas, positions are saved as a Mermaid comment so the file stays portable Mermaid
- β Add / remove nodes and edges with a toolbar button or Delete key
- βοΈ Edit labels by double-clicking a node
- π
[[wikilinks]]clickable inside nodes β Obsidian's standard link click / hover preview / unresolved styling all work #tags,$math$,**bold**etc. render inside nodes- π dagre auto-layout for newly added nodes
- πΎ Two-way sync: edits write back to the Mermaid block, external Mermaid text edits flow back into the canvas
Node labels are rendered through Obsidian's MarkdownRenderer, so wikilinks, tags, math and bold all work inside the diagram.
The plugin is opt-in: regular ```mermaid blocks are untouched, only
```mermaid-maker blocks are processed.
Quick start
%%editable%%
graph LR
A[Start] --> B[Auth]
B --> C[End]
- Add
%%editable%%as the first line inside a```mermaid-makerblock. - Switch the note to Reading view (
cmd+e/ctrl+e). - The diagram becomes an editable canvas. Drag, double-click, use the
+ Nodebutton (currently labeled in Japanese β i18n pending).
Without %%editable%% the block is rendered read-only with rich labels
(wikilinks etc. still work).
Install
Via BRAT (recommended for now)
The plugin is in beta. The fastest way to try it is via BRAT:
- Install the BRAT plugin from Obsidian Community Plugins.
- Open BRAT settings β Add Beta plugin.
- Enter
Akitaroh/obsidian-mermaid-makerand click Add Plugin. - Enable MermaidMaker under Community plugins.
Manual install
- Download
main.js,manifest.jsonandstyles.cssfrom the latest release. - Create
<vault>/.obsidian/plugins/mermaid-maker/and drop the three files in. - Enable in Settings β Community plugins.
Official Community Plugin store
Submission planned for late May 2026 after a short beta. Watch the repo for updates.
Usage notes
Special characters in labels
If your label contains [, ], (, ), {, }, | or " (e.g.
wikilinks), use quoted form in your Mermaid source:
A["[[note]]"] β
A[[[note]]] β β Mermaid parses [[..]] as subroutine shape
The plugin auto-quotes when you edit via the GUI β but if you write markdown directly, follow this convention.
Where positions are stored
After dragging, the plugin appends a comment line like:
%% mm-pos: A=10,20 B=200,30
This is invisible to other Mermaid renderers (it's a comment), so your diagrams remain portable.
Reading view vs Live Preview
GUI editing is Reading view only. In Live Preview (the default editor
mode), you'll see a hint βοΈ GUI η·¨ιγ―θͺγΏεγγγ₯γΌγ§ε©η¨γ§γγΎγ.
This is intentional β Live Preview's CodeMirror widget doesn't sandbox
React mounts well.
Known limitations (beta)
- Edge labels (
A -->|label| B) display but can't be edited via GUI yet - Node shape selector is not yet in the UI; shape is preserved from
Mermaid source (
[box]/(rounded)/((circle))/(((double)))) - Mermaid
flowchartvariants beyondgraph LR/graph TDare not supported - File rename detection isn't optimal yet (resolved links update, but surrounding logic can lag)
Architecture
Source code in src/.
Implemented with Zettel-driven development:
atoms/quote-extractor.tsβ find"..."labels in Mermaid sourceatoms/markdown-renderer.tsβ ObsidianMarkdownRenderer.renderadapteratoms/label-measurer.tsβ measure rendered HTML for Mermaid layoutatoms/placeholder-injector.tsβ splice placeholders into Mermaid sourceatoms/mermaid-loader.tsβ load Obsidian's bundled Mermaidatoms/dagre-layout.tsβ auto layout for new nodesatoms/xyflow-mounter.tsxβ React + xyflow GUI canvas mountatoms/markdown-write-back.tsβ debounced safe write back to editoratoms/label-edit-modal.tsβ Obsidian modal for label editingarrows/mm-codeblock-render.tsβ Stage 2b: rich labels in Mermaid SVGarrows/mm-editable-flow.tsβ Stage 3: full GUI editor flow
Inspirations
- Mehrmaid β pioneered rich-markdown labels inside Mermaid nodes inside Obsidian (read-only)
- Excalidraw for Obsidian β the canonical embedded React canvas plugin pattern
- obsidian-enhancing-mindmap β bidirectional markdown β visual sync inside Obsidian
Contributing
Issues and PRs welcome. Please open an issue first for discussion of larger changes.
License
MIT β see LICENSE.
For plugin developers
Search results and similarity scores are powered by semantic analysis of your plugin's README. If your plugin isn't appearing for searches you'd expect, try updating your README to clearly describe your plugin's purpose, features, and use cases.