All plugins / gogoga Mind Map

gogoga Mind Map

XMind-style mind maps. Headings and lists are the nodes, kept in sync with Markdown.

v0.61.8In community directoryMIT

Install

  1. Open Settings → Community plugins and turn off Restricted mode.
  2. Click Browse and search for gogoga Mind Map.
  3. Click Install, then Enable. Check for updates on the same page.

The directory downloads files from GitHub. If it hangs or fails, use the offline package instead.

An XMind-style mind map plugin. Markdown is the single source of truth: headings and list items are the nodes, and the mind map view is just another editor for the same .md file, so edits on either side show up on the other. No runtime dependencies; works on both desktop and mobile.

The interface follows Obsidian's language setting — English, or Simplified Chinese when Obsidian is set to Chinese.

Demo: two-way sync between Markdown and the mind map, four structures, seven themes, folding and focus

The Mind Map user guide note (snow theme)

Usage

[!tip] For a quick start, copy the examples/ folder into your vault (the notes are in Chinese). Mind Map 使用指南 (Mind Map user guide), opened as a mind map, is a clickable, foldable map of every feature, demonstrated by the plugin itself. 脑图代码块嵌入示例 (code block example) is an ordinary note with mindmap blocks embedded in it. The folder also has a typical mind map, a meeting note with an embedded map, and an .xmind file to try the import.

  1. Command palette → New mind map, or add mindmap: true to the frontmatter of any note. To start new maps from your own structure, pick a note in the "Template for new mind maps" setting: its content is copied in, with {{title}}, {{date}} and {{time}} (also {{date:YYYY-MM-DD}} with a format) filled in like the core Templates plugin, and mindmap: true added to its frontmatter. Leave it empty to start with Topic 1/2/3.
  2. Notes with this key open as a mind map by default. Switch back and forth with the button in the top-right corner of the view, the command Toggle between mind map and Markdown, or the file context menu. Switching keeps your place: with a node selected, Markdown opens at its line; with the cursor on a node in Markdown, the map selects it and centers it. Right-click a node → More → Show in Markdown (also a command you can bind) jumps straight there. Reopening a map restores its last position, zoom and selection, kept on this device only and not synced (turn off "Remember where you left off" in settings); with nothing remembered, the "When opening a map" setting decides whether to fit the whole map (default) or show the central topic at 100%. With the same note open as a map and as Markdown side by side, turn on "Sync with Markdown side by side" (off by default): selecting a node scrolls the Markdown to its line without taking focus, and moving the cursor to another line in Markdown selects the matching node. The same works when the Markdown is in reading view: selecting a node scrolls to that block or list item (expanding collapsed headings), and clicking a block or list item in reading view selects the matching node. When the cursor lands in a branch that is collapsed in the map, the collapsed ancestor gets selected; turn on "Expand collapsed nodes when syncing" to expand down to the node instead. To keep Markdown folded the way the map is, turn on "Fold Markdown along with the map" (off by default): branches collapsed in the map are folded in the editor and reading view too, and unfolded when you expand them; folds you make yourself in Markdown are left alone. Each jump briefly highlights the line or the node, so you can see where it landed. To keep one map pane beside the editor as a live view of whatever you are writing, turn on "Follow the active note" (off by default): switching to another note in the editor shows it in the map as well, without writing mindmap: true; a pinned map tab stays put. Switching a regular note to a mind map adds mindmap: true so it keeps opening that way; turn off Remember the mind map view in settings to switch only the current tab and leave the file alone. To write and watch side by side, use Markdown and mind map side by side (command palette, the file context menu, the ⋯ menu of a mind map tab, or right-click on empty canvas): Markdown on the left, the map on the right, following your typing as you go. It works from either view; a mind map note that is showing as a map switches to Markdown on the left. Nothing is written to the file.
  3. In a regular note, write a ```mindmap code block containing the same kind of Markdown, and it renders as a small mind map in both Reading view and Live Preview. It's read-only by default. Click the pencil in the toolbar or double-click a node to start editing. Changes are written straight back into the code block, and undo and redo only apply within the block. Turn on "Hide the toolbar of embedded maps" (off by default) for a cleaner look: embedded maps (code blocks and ![[note]] embeds) show no toolbar in reading view, and in editing view it appears only while the mouse is over the map or while you edit it.
  4. Put an .xmind file in your vault and open it directly: it renders read-only, you can switch between sheets, and one click in the top-right corner does Convert to Markdown note. Both content.json (XMind Zen / 2020 and later) and content.xml (XMind 8) are supported. Boundaries, summaries (including topics hanging off a summary), callouts, relationships and floating topics on the central topic come along; comments aren't supported yet, and a note in the top-right corner says how many were left out.
  5. From the view menu (⋯ in the top-right corner) or the command palette: Export as PNG, Export as SVG, Copy as image. PNG is exported at 2× resolution, and Obsidian's bundled Inter font is embedded, so the export matches what you see on screen.

Embedding a mind map in a note

Any note can hold a small mind map: write a mindmap code block with the same Markdown a mind map note uses. It renders in Reading view and Live Preview, and you can edit it in place (click the pencil or double-click a node).

The block can also be named gogoga-mindmap; it works the same. If you also use Markmind, which claims mindmap blocks too, turn off "Render ```mindmap code blocks" in settings to leave mindmap to Markmind and use gogoga-mindmap for your own maps.

```mindmap
# This week

## Product
%%blue%%

- 1️⃣ Requirements review
- 2️⃣ Prototype walkthrough

## Engineering
%%green%%

- ⏳ API integration
- ✅ Analytics shipped

## Risks
%%red%%

- ❗ Design not final
```

A block can carry its own frontmatter that applies only to that block, for example a different structure and theme:

```mindmap
---
mindmap-structure: org-down
mindmap-theme: business
---

# Release

## Test

## Regression

## Canary

## Rollout
```

To show a mind map you already have, embed the file like any other note: ![[Product launch]] for a mind map note, or ![[Competitors.xmind]] for an XMind file. It shows a read-only preview that follows the file as it changes; click the open button in its toolbar, or double-click a node, to open the file and edit it. Point at a node to show only that branch: ![[Product launch#Timeline]] (a heading path like #Team#September works too) or a block reference ![[Product launch#^abc123]]; a breadcrumb lets you step back up to the whole map. Dropped onto a Canvas, a mind map note fills its card and refits when you resize it. Notes without mindmap: true embed as usual.

Letting AI write mind maps

Since a mind map is plain Markdown, any AI that can write a note can write a map. skills/gogoga-mindmap/SKILL.md tells it the rest: which lines become nodes, the frontmatter for structure and theme, and how to write colors, folding, boundaries, summaries and callouts. In Claude Code, or another tool that supports Agent Skills, copy the skills/gogoga-mindmap folder into its skills folder (for Claude Code, ~/.claude/skills/), then ask for a mind map of a topic or a note. With other AI tools, paste the file's content into the conversation as instructions.

Editing

  • Click to select, double-click to edit. A selected node shows a floating toolbar above it: 9 colors, edit note, and delete. Choose which colors it offers in the "Node colors" setting: built-in names (which follow the theme and dark mode) or hex values like #ff8800 (which stay fixed), separated by commas. If it gets in the way of clicking nearby nodes, turn off "Floating toolbar on selected nodes" in settings; the same actions are in the context menu.
  • Drag a node onto another node, or into the empty space just behind it, to make it a child of that node, or into a gap in a column of children to insert it at that position. In the left-and-right layout you can also drag it to the other side. Near the edge of the canvas the view scrolls along.
  • Center the selected node setting (off by default): clicking a node, moving with the arrow keys, or adding a node with Tab / Enter glides the selection to the middle of the canvas; multi-select, box-select and dragging leave the view alone.
  • Shift-click to add to the selection, ⌘-click to toggle, Shift-drag on empty space to box-select, ⌘A to select all. With multiple nodes selected, color, delete, dragging and Alt+arrow reordering / promoting / demoting apply to the whole group (drag any one of them and the rest come along). Coming from XMind? Set Settings → Left-drag on empty space to "Select": a plain left-drag draws the selection box, right- or middle-drag pans, and a right-click on empty space still opens the menu.
  • Click ≡ on a node to view its note, or use the note button in the toolbar to edit it. Notes support Markdown and stay directly under the node when written back. While editing a note you can paste or drop images: they are saved as attachments and inserted at the cursor. Pasting an image while editing a node's text adds it to that node's note. Drag the bottom-right corner of the note popover to resize it (the size is remembered); clicking Edit keeps the popover where it is and at the same size. Click an image in a note to view it full-screen (Esc or click anywhere to close). [[Links]] in a note open when clicked (⌘/Ctrl-click for a new tab) and show a page preview on hover. To remove a note, right-click the node → Delete note. Turn on "Preview notes while editing" (off by default) to see the rendered note next to the text box as you type (below it when the window is narrow).
  • Reading PDFs: copy a selection in PDF++ (the default format is fine), select a node in the map and press ⌘V. It pastes as one node: the quoted text, linked to that selection in the PDF. With the PDF open in a tab beside the map, clicking the node jumps there and highlights the passage, and the map stays put. A rectangle copied from PDF++ (![[book.pdf#page=…&rect=…]]) shows as the cropped image, resizable and viewable full-size like other images; the ↗ button in its corner (shown on hover or when selected) jumps back to that spot in the PDF (crops need PDF++; without it they show as a link to the page). To excerpt in a row, run Toggle PDF auto-excerpt into this mind map: every link PDF++ copies is then added under the selected node with no pasting, the selection stays put, and clicking another node sends the next ones there. With Auto-copy on in PDF++, making a selection is enough. The highlighted button in the view header stops it.
  • Numbered siblings: right-click a node → More ▸ Number siblings (1. 2. 3.), or the command Number the selected nodes and their siblings (on / off). Numbers show in front of the text and update when you add, delete or move nodes; list items are stored as a Markdown ordered list, headings get %%num%% after their parent heading. With "Start numbering by typing 1." on, typing "1. " at the start while editing also starts numbering.
  • Tables inside nodes: right-click a node → Insert ▸ Insert table to draw a table in the node box, under its title, and edit cells right there: type to replace, double-click or Enter to edit the existing text, Enter / Tab to move, Esc to go back to the canvas and keep moving between nodes with the arrow keys. Column widths, cell colors, merged cells, row and column handles (drag to reorder, click for the menu), the right-click table menu, copy and paste with Excel or Feishu and ⌘Z all work like in the gogoga Table plugin, without installing it. The table lives in the node's note as a plain Markdown table (widths and colors go in one comment line under it), with %%table%% added after the node; for a node that holds only a table, right-click → Insert ▸ Child node with a table (no title needed); the menu of the table's top-left button can delete the table and keep the node; for a node whose note already has a table, right-click → Insert ▸ Show table in node, and More ▸ Move table back to note / Delete table. The rest of the note stays a note. Tables are read-only while the map is locked. Columns you haven't resized are at most 240 wide and wrap their text; a table larger than "Maximum width / height of tables in nodes" (640 / 480 by default, on the Notes settings page) scrolls inside the node with its header kept at the top; scrolling anywhere on such a node scrolls only the table, and the node stays put.
  • Expanded notes: click the note button in the toolbar (or the command Expand / collapse notes) to show notes in a box right under their nodes. The nodes around make room, so a note never covers nodes or lines; a note wider than its node that would get in the way of the child lines goes below the whole branch, with a dotted line back to the node. In org charts and trees the lines to the children start below the note. Notes taller than the maximum height (setting "Maximum height of expanded notes", 240 by default) scroll inside the box, and the canvas moves once you scroll past the end. Double-click a box to edit it in place; click ≡ on the node or the collapse button on the box to hide just that one. Boxes are at most 320 px wide (setting "Maximum width of expanded notes"; wider boxes show images larger); drag the bottom-right corner of a box to give that note its own size, double-click the corner to reset. Which notes you hid and the sizes you dragged are remembered per file, and follow a node when you rename or move it in the map. Each file remembers whether its notes are expanded, and the "Expand notes" setting (off by default) is the default for files you haven't switched; the per-file choice is kept in state.json in the plugin folder, separate from the settings, not in your notes. PNG/SVG exports include the expanded notes.
  • ⌘F searches nodes: matches are highlighted, Enter / Shift+Enter jump between results and center them, and collapsed ancestors expand automatically.
  • ⌘C / ⌘X / ⌘V copy, cut, and paste subtrees. The clipboard holds Markdown as an indented list, so you can paste it anywhere. It includes the map's %%…%% markers (width, folding, callouts…) unless you turn on "Copy nodes without map markers"; pasting back into a map restores them either way. The other way round, paste a list, headings, or plain text lines, and they become children of the current node, following their structure.
  • The level button in the toolbar: Expand all, Show main topics only, Show up to level 2 / Show up to level 3.
  • While editing a node, formatting shows as it will look, like Obsidian's Live Preview: bold, italic, ==highlights==, strikethrough, inline code, text colors and highlighter colors render in place and their markers (**, <span …>) are hidden. Markdown markers like ** and == show when the cursor is on them and stay visible while you select; color tags always stay hidden so the node doesn't reflow, so change colors with the format bar or commands, or switch to Markdown to see the source. Turn on Keep format marks hidden while editing (off by default) to keep bold and highlight markers hidden too, so the line width doesn't jump when the cursor is next to them. Deleting never splits a hidden marker pair: Backspace after formatted text removes its last character, and the markers go once it is empty. Links, math and images still show their source while editing. Callouts, summaries, relationship labels, boundary titles and renaming in the outline panel use the same editor.
  • While editing, Shift+Enter inserts a line break. Multi-line text is stored as <br> in the heading or list item and renders normally in Reading view.
  • Touch: one finger to pan, two fingers to zoom, tap to select, press and hold for 0.4 seconds then drag to change a node's parent. Buttons get larger automatically on touch screens.
  • Outline panel: the leftmost toolbar button or the command Toggle outline panel opens a tree list on the left, linked both ways with the canvas. Formulas in titles render as formulas; turn on "Show full titles in the outline" to wrap long titles instead of cutting them off.
  • Lock editing: the lock button next to it (or the command Lock / unlock editing) makes the map view-only, so dragging the canvas can't move nodes by accident. Zoom, pan, fold and search still work, folding while locked isn't written to the file, and the lock is remembered per file in the plugin's state.json, not in the note. In the panel: ↑↓ to move, Tab / Shift+Tab to demote / promote, Alt+↑↓ to reorder, Enter to add a sibling and rename it in place, Delete to delete, Space to fold. On the canvas, Alt+arrow keys likewise reorder, promote, and demote.
  • Link nodes to notes: press ⌘K or click the link button in the toolbar, then pick an existing note or create a new one. The label becomes [[note|original text]], and a newly created note opens in a split on the right. Press ⌘K again on a linked node to open or remove the link. Hold ⌘ and hover for a page preview.
  • Structures: logic chart (rightward), mind map (left and right), org chart (downward), tree chart, and five timelines. Switch them from the structure menu in the toolbar: Logic chart (rightward), Mind map (left and right), Org chart (downward), Tree chart, Timeline (horizontal, one side), Timeline (horizontal, alternating), Timeline (vertical, rightward), Timeline (vertical, leftward), Timeline (vertical, alternating). A timeline strings the main topics in order along an arrowed axis with their content hanging beside it (an indented list on horizontal timelines, a logic chart on vertical ones); alternating puts neighboring branches on opposite sides so more fits on screen. Drag main topics to reorder them along the axis.
  • Typing links: while editing a node, type [[ (or 【【 with a Chinese input method) and a list of vault files pops up; keep typing to filter, ↑↓ to pick, Enter to insert [[note]]. Or select some text and type [ (or 【) to wrap it in brackets; type it again to turn it into a [[link]].
  • Custom themes: Settings → Custom themes → New, start from a built-in theme and adjust four levels (central topic, main topics, subtopics, level 3 and deeper): font size, bold and italic, text color, background (or underline), corner radius, border, maximum width (short text keeps its own width, longer text wraps) with an optional "align widths in this level", and the color and width of the line into that level. Overall you can set the line type, corners, dashes, one color per branch, and spacing. A live preview sits on the right, and dark-mode colors are derived automatically. Saved themes show up in the palette menu next to the built-in ones.
  • Spacing and text size: the "Node spacing" and "Node text size" settings scale the gaps and the node text of every theme, custom ones included (100% is the theme's own look). Smaller values fit more on screen.
  • Line style: the line button next to the palette picks curved, right-angled or straight lines, dashed or solid, and rounded or sharp corners for this note, independent of the theme (mindmap-edge, mindmap-edge-dash, mindmap-edge-corner in the frontmatter).
  • Themes: switch with the palette button in the toolbar. Seven themes: Snow (the default: dark center with gray node backgrounds), Rainbow (one color per branch), Business (blue tones with right-angle elbow lines), Warm (orange tones with large rounded corners), Mono (black-and-white outlines with thin lines), Line (text-only nodes with thin elbow lines), and Forest (green-toned branches). Your choice is written to mindmap-theme and applies per file; the Default theme setting changes the theme for new files. Every theme has a dark mode.
  • Math and images: $E=mc^2$ in a label renders as math, and $$…$$ renders in display style. For multi-line formulas use \begin{aligned}…\end{aligned} with \\ line breaks, or put a $$ block in the note. ![[image.png|160]] or ![alt](url) renders as a thumbnail, where the number is the width; select it and drag the handle in the bottom-right corner to resize (the size of images without a width, and how wide you can drag, are the "Default image size" and "Maximum image width" settings on the Opening and display page). Double-click an image to view it full size (click or press Esc to close). Code blocks in notes get syntax highlighting. Math and images are embedded when exporting PNG/SVG.
  • Context menu: available on nodes and on empty space. The first level of the node menu holds the everyday actions (edit, add child or sibling, expand or collapse all sub-branches, link, note, callout, markers, task, boundary, summary, copy and paste, delete); related actions sit in submenus: Insert ▸ (insert before, insert parent), Fold & view ▸ (fold or unfold, expand one level, collapse one level, show next level only, focus on branch, zoom to branch), Boundary ▸ and Summary ▸ (once the node has one), and More ▸ (convert level to headings or lists, split into subtopics at commas, make floating topic, copy node link, show in Markdown).
  • Split at commas: right-click a node → More → Split into subtopics at commas turns "apples, pears; plums" into three subtopics, splitting at Chinese and English commas, the Chinese enumeration comma and semicolons. Commas inside links, math and code, and in numbers like 1,000, are left alone; the node keeps its own text.
  • Focus on a branch: show one branch on its own as if it were the root. The breadcrumb at the top takes you back to the full map or any ancestor in one click; Esc also exits.
  • Markers: the star button in the node toolbar opens a picker with five groups, Priority, Progress, Flags, Symbols, and Recite (the 🙈 answer marker, see recite mode). Markers are stored as emoji at the start of the text, so they display anywhere. Add your own in the "Custom markers" setting (emoji or symbols separated by spaces): they show up as a Custom group, optionally limited to one per node. Letters, digits and ASCII symbols are ignored, since node text often starts with them.
  • Recite mode: the eye button in the toolbar, or the command "Toggle recite mode", turns a map into review cards. It only changes what you see and never writes to the file. ==Highlights== (or <mark>highlights</mark>) in nodes hide their text but keep their highlight color, with a line under them, and you click to reveal; a node whose children are written as [x] right answer / [ ] wrong answer becomes a quiz question: every question gets a "Single" or "Multiple" tag (one or more right answers), and all options look unchecked until you click the tag, then right answers turn green and wrong ones fade. Clicking the question itself just selects it. Children of the options (say, the reasoning) stay covered until the answer is revealed. Mark a node with 🙈 (the Recite group in the marker picker) to make it an answer: in recite mode it is covered along with its children, images, notes and callouts included, until you click it, and clicking again covers it back. That works for screenshot questions too: put the question image in one node and the answer image in a 🙈 child.
  • Relationships: right-click a node → Add relationship (or the command of the same name), then click the node to connect to (Esc or a click on empty space cancels). A dashed arrow joins the two, curving around the map. Click the line to select it, double-click it to type a label (Enter to finish), and drag the label (or, for a line without one, the dot that appears when it's selected) to change the curve; a selected line also shows a control handle near each end, which you can drag to shape the start and end of the curve separately, and the handles move with their nodes. Right-click the line to go to its start or end (selects that node and centers it), edit the text, reverse the direction, reset the curve or delete it; Delete removes a selected line too. Lines whose end is folded away or hidden aren't drawn, deleting a node removes its lines, and PNG/SVG exports include them. Stored as %%rel=r1 "Text"%% on the start node and %%id=r1%% on the end node (plus c=40,-60 for a dragged curve, or c1=40,-60 c2=-30,-50 once the handles have been dragged), so renaming or moving either node never breaks the line.
  • Summaries: select one or more adjacent siblings and right-click → Add summary (or the command "Add or remove a summary") to draw a curly brace on the outer side of them and their branches, with a short summary after it; type the text right away. The text is inline Markdown like node text, so links, bold and the like work. Double-click the summary to edit it, right-click it to remove it, and drag the small bar on its outer edge to set its width (double-click the bar to go back to automatic). To change what it covers, click the summary text (or hover it): handles appear at both ends of the brace; drag either one onto a sibling. The context menu also has "Extend range by one node" and "Shrink range by one node". Stored as %%summary=2 "Text"%% on the first node, plus sw=240 for a dragged width; included in PNG/SVG exports.
  • Summary topics: a summary can have its own subtopics (XMind's summary topic). Click the summary text and press Tab, or right-click the summary → Add subtopic: the summary text becomes a node (the summary topic) with a subtopic under it, and from then on it edits, takes children, folds and accepts dropped nodes like any node. When it's taller than the nodes it covers, the siblings above and below make room instead of overlapping. A summary topic follows the range it covers, so it can't be dragged or moved up and down on its own and has no siblings; change the range or remove it from the Summary ▸ submenu, and Convert to plain summary when it has no children. Deleting the first covered node hands the summary to the next one; deleting them all leaves the summary topic behind as an ordinary node, subtree included. In Markdown it's the item right after the last node it covers: - Notes %%summary-topic=2%% (=2 is how many preceding siblings it covers), with its subtopics written under it as usual; the outline panel lists it in that spot too.
  • Hide nodes: right-click a node → More → Hide in mind map to keep it (and its branch) out of the map while it stays in the note; it's stored as %%hide%%, and you can also type that yourself. When a map has hidden nodes, the toolbar shows Show hidden nodes (also a command): turn it on to see them faded with a dashed outline, and right-click → More → Unhide to bring one back.
  • Only headings as nodes: turn on the setting of the same name and maps of notes use only headings as nodes; the lists and paragraphs under a heading become its note, kept exactly as written. New nodes are written as headings (down to level 6). Code-block maps are not affected.
  • Callouts: a small bubble next to a node, like a note you can always see. Right-click a node → Add callout (or the command "Add / edit callout") and type; Enter to finish, Shift+Enter for a new line, Esc to cancel. The text is inline Markdown; double-click the bubble to edit it, right-click it to remove it (clearing the text removes it too) or pick Callout color to fill it with one of the node colors, which makes an important callout stand out. Bubbles sit above their node (to the right in the org chart) and the layout makes room for them, so they never cover other nodes or lines; when a bubble is wider than its node and would block the lines to its children, it goes above the whole branch with a thin pointer back to the node. If a map gets busy, click the bubble button in the toolbar (or the command "Show / hide callouts") to hide them all: the layout goes back to how it looks without callouts, and a small icon on the node shows that one on click. Each file remembers whether callouts are shown (kept in the plugin's state.json, not in the note). Stored as %%callout "Line one<br>Line two"%% on the node (with cc=yellow after it when the callout has a color); straight double quotes become curly quotes. Search finds callout text, PNG/SVG exports include visible callouts, and callouts in .xmind files are imported. Callouts live in a %% comment, so they don't show in Markdown reading view.
  • Floating topics: topics that aren't connected to the central topic and can sit anywhere on the canvas, as in XMind. Double-click empty space, or right-click it → New floating topic here; right-click a node → More → Make floating topic to detach it with its branch in place. Drag a floating topic to move it; drop it on a node to attach it there, or right-click → More → Attach to central topic. Enter on a floating topic adds another one below it, and Tab adds subtopics as usual. Turn on "Drag a topic to empty space" in settings to pull topics out by dragging, XMind style (off by default, so dropping on empty space still cancels). In the left/right mind map structure, floating topics to the left of the center grow leftward. A floating topic is stored as an ordinary section under the central topic with a %%float x=320 y=-80%% marker, so it stays readable in Markdown; it's hidden while focusing a branch. Lines between floating topics aren't supported yet, and the main map doesn't push floating topics aside as it grows.
  • Boundaries: click the boundary button in the node toolbar, press ⌘⇧B, or right-click a node → Add boundary to draw a dashed frame around it and its branch. Select several adjacent siblings first to frame them together. To add or edit a title or remove the boundary, right-click anywhere on the empty space inside it, or click the boundary button again on a framed node; double-clicking inside the boundary edits the title directly. Click empty space inside a boundary to select it: handles appear at both ends, and dragging them grows or shrinks the range (the context menu can also extend or shrink it by one node). Boundaries are included in PNG/SVG exports.
  • Node width: select a node and drag its outer edge (the whole edge works) to set the width; the text rewraps and the height follows. Double-click the edge: a node with a set width goes back to automatic width (also right-click → Reset to automatic width), and an automatic-width node whose text wraps is stretched to one line (up to 1200). Stored as %%w=240%%. Turn on Resize width from the right edge on hover (off by default) to drag or double-click the edge of any node without selecting it first.
  • Task checkboxes: [ ] item renders as a checkbox; clicking cycles between incomplete, complete, and removed.
  • #tags: a #tag in a node renders in tag style; clicking it opens global search.
  • External links: [text](https://…) or a bare pasted URL becomes a link that opens in the browser when clicked. Trailing punctuation isn't swallowed into the link.
  • Video and other iframe embeds: paste an <iframe …> copied from Bilibili or YouTube straight into a node and it renders as a player. Only the iframe tag is accepted, and src must be http(s). Attributes are parsed separately and the element is built with the DOM API, never innerHTML. Autoplay is off by default (autoplay=0 is added at render time without touching the note; write autoplay=1 yourself if you want autoplay), and players in collapsed branches aren't loaded. Embeds also work in notes, rendered by Obsidian's own renderer. A shield covers the player: a single click only selects the node, and the player is released only when you double-click it or click the Activate button in the bottom-right corner, so a stray click doesn't send you to the source site. An activated node gets a dashed outline and is deactivated when you click elsewhere. When selected, drag the handle in the bottom-right corner to resize (aspect ratio is locked by default; hold Shift to change height only; double-click to reset to 560×315).
  • Drag in and paste: drag a note from the file list onto a node to add it as a [[link]] child. Dropped or pasted images (⌘V, the context-menu Paste, or the toolbar paste button, e.g. a screenshot or an image copied from a web page) are saved to the attachment folder and become image nodes. Right-click an image node and choose Copy image to put the image itself on the clipboard, ready to paste into other apps. While editing a node, select text and paste a web address or a local file path to turn it into a [text](address) link; turn on Fetch page titles for pasted links to have an address pasted with nothing selected use the page title as its text.
  • Copy node link: heading nodes give [[note#heading]]; list nodes get a block ID added automatically and give [[note#^id]], which you can reference from other notes. Clicking such a link in a map selects and centers the node it points to (unfolding its parents), and links from other notes open the map at that node.
  • Mobile: the node toolbar has add child and add sibling buttons, and the bottom toolbar has undo and redo, so you can fully edit without a keyboard.
  • ⌘B / ⌘I make the selected nodes bold or italic as a whole; while editing a node, they apply to the selected text only.
  • Coloring part of the text: while editing a node, select some text and use the commands "Text color 1–5", "Highlighter color 1–5", "Highlight the selected text" or "Clear text and highlighter colors" (bind your own keys in Settings → Hotkeys); outside editing they apply to the whole text of the selected nodes. Turn on "Format bar when selecting text" (off by default) to get a small bar above the selection: bold, italic, highlight, text colors, highlighter colors and clear. Change the colors in "Text colors" and "Highlighter colors" in settings, separated by commas (three of each by default). Saved as <span style="color:#e03e3e">text</span> and <mark style="background:#ffd43b99">text</mark> (the same as the Highlightr plugin), so Markdown shows the colors too; recite mode covers highlighter colors like ==highlights==.
  • Underline: while editing a node, select text and press ⌘U (Ctrl+U on Windows) or click U in the format bar; outside editing ⌘U applies to the whole text of the selected nodes, and there's also the command "Underline the selected text". Saved as <u>text</u>, so Markdown shows the underline too.
  • Hide format tags in notes (setting, off by default): in a Markdown note's Live Preview, Obsidian shows the whole <span style=…>, <mark style=…> or <u> tag once the cursor goes into colored, highlighted or underlined text. With this on the tags stay hidden and the formatting shows instead, as in the node editor; deleting or typing next to them keeps the tags paired. Source mode, code blocks, math and frontmatter are left alone.
  • Node markers in notes (setting, "Show as is" by default): when a mind map note (with mindmap in its frontmatter) is open as Markdown, Live Preview shows the whole %%…%% marker that stores colors, folding and relationships at the end of a line in gray. Switch to "Small dot" (hover it to see the text, click it to edit) or "Hidden" (nothing shows; edit it in source mode or in the mind map). A heading's marker sits on its own line right below the heading; while hidden, that line takes no space and the dot goes at the end of the heading. Markers have to stay where they are for the mind map to read them, so while hidden, typing at the end of the line (IME included), Enter, Backspace and joining lines keep text before them and new lines after them; deleting a whole line deletes its marker too, and moving a heading up or down with "Move line up/down" takes its marker line along. Ordinary comments that aren't markers (like %%revisit%%) are left alone.
  • Colored highlights: Obsidian 1.15's colored highlights, ==🔴text== (🔴🟠🟡🟢🔵🟣 right after the opening ==; the square 🟥🟧🟨🟩🟦🟪 work too), show in nodes in the theme's highlight colors without the emoji. While editing, the emoji is hidden like == and shows when the cursor is on it. To write them from the format bar or the "Highlighter color" commands, add emoji like 🔴 🟢 to "Highlighter colors", mixed with hex values if you like; "Clear text and highlighter colors" turns a colored highlight back into a plain one.

Markdown mapping

---
mindmap: true
mindmap-structure: mindmap   # optional: logic-right (default) | mindmap | org-down | tree-right | timeline-h | timeline-h-alt | timeline-v-right | timeline-v-left | timeline-v-alt
mindmap-theme: rainbow       # optional: snow (default) | rainbow | business | warm | mono | line | forest
---

# Central topic                ← the only H1; the file name is used if there is none (or always, with "Use the file name as the central topic" on)

A paragraph here becomes the central topic's note.

## Main topic
%%green%%                      ← %%color%% colors a node and is invisible in Reading view
### Subtopic
- Deeper levels use lists
	- One level deeper
- Fold state is stored in the file too %%fold%%
  • Color names: red orange yellow green teal blue purple pink gray, or #hex.
  • On a heading the marker goes on its own line right below it, so the heading text stays clean and [[note#Heading]] links keep working. The older style with the marker at the end of the heading line is still read; it is moved to the next line when you change that node in the map, and links elsewhere that included the marker ([[note#Heading %%fold%%]]) are updated. List items keep the marker at the end of the line.
  • In the mind map (left and right) structure, dragging a main topic to one side pins it there with %%left%% / %%right%%, so the other branches stay put.
  • Boundaries are stored in the same comment: %%box%% frames the node and its branch, %%box=3%% also takes in the next two siblings, and %%box "Title"%% adds a title. Summaries work the same way: %%summary=2 "Text"%%; a summary with subtopics goes on the item right after the last node it covers: %%summary-topic=2%%; callouts are %%callout "Text"%%, with <br> for line breaks and cc=red (or a hex color) for the fill color. A floating topic is a child of the central topic marked %%float x=320 y=-80%% (position relative to the central topic). A relationship is %%rel=r1 "Text"%% on the start node pointing to the node marked %%id=r1%%, with c=40,-60 after it for a dragged curve, or c1=… c2=… (relative to the start and end node centers) once the handles have been dragged; a node can have several rel=.
  • Headings go down to H6, after which lists are used automatically. New nodes use lists from level 4 by default; change this with the Deepest heading level setting.
  • Paragraphs and code blocks under a node are kept as-is as its note, and the node shows a ≡ icon you can click to view it. Text between two lists (or after a list) stays in place when written back, even though it isn't shown on the map.
  • Editing in the map only rewrites the lines you changed. Everything else in the file stays byte for byte as it was: blank lines, indentation, list markers, trailing spaces (hard line breaks) and line endings. This works for mind map notes and for mindmap code blocks. If a merge can't be made exact, the plugin falls back to writing the whole note in its own format, as earlier versions did.
  • Markdown exported from XMind uses this same heading hierarchy, so it opens directly; it also works the other way, imported into XMind.

Keyboard shortcuts (when the canvas has focus)

Key Action
Tab Add child node
Enter Add sibling node (adds a child on the root node); Shift+Enter inserts before
Double-click / Space / F2 Edit; the text is selected so typing replaces it (set "When editing a node" in settings to put the cursor at the end instead); Enter to commit, Esc to cancel
Delete / Backspace Delete the selected nodes and their subtrees
⌘⌫ Delete only the selected node; its children move up into its place
⌘↵ Insert a parent node: selected siblings go into one new node, non-siblings each get their own (in the mind map view; use the context menu in code-block maps)
⌘F Search nodes; Enter / Shift+Enter to jump
⌘C / ⌘X / ⌘V Copy / cut / paste subtree
Shift+Enter (while editing) Line break inside a node
⌘K Link to a note / create a new note
⌘⇧B Add a boundary around the selected nodes, or remove it
Alt+↑↓ / Alt+←→ Reorder among siblings / promote or demote
Shift+click / ⌘+click / Shift+drag / ⌘A Add to selection / toggle / box-select / select all
Drag node Change parent or reorder
/ Fold or unfold the selected node
1–9 / 0 Show only N levels below the selected node / expand its whole branch; other branches stay as they are. With the central topic (or nothing) selected it applies to the whole map and fits the view
⇧0 Collapse the whole branch (the pair of 0); with the central topic (or nothing) selected, only the main topics stay visible
= / - Expand / collapse the branch by one level
⌘⇧0 Zoom to the selected branch

| Arrow keys | Move between nodes (up and down go through siblings first, then to the same level in the neighboring branch; the view follows when the selection leaves the screen; turn on Center the selected node to always glide the selection to the middle) | | ⌘Z / ⌘⇧Z | Undo / redo | | Scroll wheel / drag empty space | Pan; Shift + wheel pans sideways (set the wheel to zoom in settings → Mouse wheel; Shift + wheel then pans) | | ⌘+scroll wheel / pinch / ⌘= ⌘- | Zoom; ⌘0 to fit the canvas |

These keys are handled by the map itself. Adding a child or sibling, inserting before, inserting a parent, editing, deleting, deleting only the node, moving up or down, promoting, demoting, expanding or collapsing all sub-branches and expanding or collapsing one level, as well as folding, showing down to a level, zooming to a branch, boundaries, summaries and callouts, are also commands, so you can bind your own keys in Settings → Hotkeys (search for "gogoga Mind Map"), for example to match XMind. The built-in keys keep working; a key you bind to one of these commands takes priority, even Tab or Enter.

The node context menu has these too, so you don't need to remember the keys: Insert ▸ holds insert sibling before and insert parent, "Expand all sub-branches" and "Collapse all sub-branches" sit as a pair on the first level, Fold & view ▸ holds expand one level, collapse one level and show next level only, and "Delete this node only" is on the first level.

Changelog

0.61.8
2026-11-12

Fixed

  • Tables in nodes: with the first column frozen in the Zebra style, every other row of the frozen column was see-through, so columns scrolled underneath showed through and the text overlapped. The frozen column is now opaque in every row, and a selected range that doesn't include the first column draws its box under the frozen column.
0.61.7
2026-11-11

Fixed

  • No error when another plugin probes Obsidian's note embed handler without a file (for example to check embed support); such calls are passed on unchanged (#32).
0.61.6
2026-11-11

Fixed

  • Tables in nodes: with Freeze header column on, scrolling the table sideways no longer slides the header row cells over the frozen first column; header cells in that column now stay put like the rows below.
0.61.5
2026-11-11

Fixed

  • With Follow the active note and split-view sync on, switching back and forth between a vault note and a Markdown file outside the vault (opened with Obsidian) could overwrite the vault note with the other file's content: content that arrived late from a slow read went into a map that had already switched files, or text just typed in Markdown was pushed to a map that had switched, and the next save wrote it into the wrong note. A map now reloads the current file when a read finishes after a switch, and pushes are checked against the file first (#30).
  • Switching quickly with Follow the active note no longer leaves the map on the previous note, out of step with the note beside it (#30).
  • Markdown files outside the vault: changes made in the mind map now show up in the Markdown view beside it, which used to stay on the old content (#30).
  • Split-view sync: clicking a node right after changing the map (moving a node, for example) now waits for Markdown to get the new content before jumping, instead of jumping to that line in the old content (#30).
Show all 105 releases
0.61.4
2026-11-11

Added

  • New Fold buttons on touch screens setting under Settings → Opening and display. On phones and tablets the fold button after a node with children is always shown by default, as before; choose Only when selected or folded to show it like on desktop, on the selected node and on folded branches only, for a cleaner look on big maps. Folding an open branch then takes two taps: select the node, then tap the button.
0.61.3
2026-11-11

Added

  • New Clean up unused images when deleting nodes setting under Settings → Editing and interaction (off by default): two seconds after you delete a node, or an image inside a node, in the mind map, image attachments that no other note or canvas in the vault still uses are moved to the trash (following Obsidian's "Deleted files" setting). Undo brings the files back; deleting and undoing right away, or cutting and pasting right away, leaves images alone. Only images are touched.

Fixed

  • A broken saved position or zoom (empty values, text, huge numbers) no longer opens the mind map zoomed all the way out with the nodes squeezed together, or scrolled out of sight: the broken record is dropped and the map opens at its default position.
  • If a file's saved view state (position, zoom, lock, note expansion and sizes, hidden callouts) stops the mind map from opening, that state is reset and the map opens again, with a notice; the note itself is unchanged. Before, a complex map could close right after opening, and only a copy of the file would open.
  • Note cards can no longer be resized beyond 1600 × 1200; oversized sizes saved earlier are trimmed when the map opens. Before, resizing while zoomed far out could save sizes of tens of thousands of pixels, and the whole map then opened zoomed all the way out.
0.61.2
2026-11-10

Fixed

  • Double-clicking a node to edit it, split-view sync scrolling the Markdown (live preview and reading view), and jumping to a node's line in Markdown now only scroll the note and the map themselves, never Obsidian's outer containers. With card layouts such as the Border theme's, the outer container used to shift up and clip the top tab bar (#29).
0.61.1
2026-11-10

Fixed

  • Pasting a single web address onto a selected node now also fetches the page title when Fetch page titles when pasting links is on: the new child node first shows the address, then turns into [title](address). Before, the title was only fetched when pasting while editing a node's text.
  • Jumping back from PDF++ (clicking a highlight that a mind map note links to) now selects the node on that line in the mind map, unfolding its branch if needed, and centers it. Before, the map opened but didn't move to the node; this works for anything that opens a note at a line.
0.61.0
2026-11-10

Added

  • New Toolbar of embedded maps page under Settings → Toolbars and colors, for mind maps embedded in notes and canvas cards (mindmap code blocks and ![[note]] embeds): Full (default, the same as an opened mind map), Custom or Auto-hide. Custom lists every button to turn on or off and reorder, like the main toolbar page; by default it keeps only the open / edit button (“Open this mind map” for embedded notes, “Edit / Done” for code blocks), for a clean embed. If every button is off, the toolbar isn't shown at all. Opened mind maps are not affected.

Changed

  • The Hide the toolbar of embedded maps switch under Markdown and embeds is now the Auto-hide option on the page above; if you had it on, it's switched over automatically.
0.60.1
2026-11-10

Fixed

  • Dragging toolbar buttons in settings now sets styles the way Obsidian's plugin review rules require (no direct style assignment).
0.60.0
2026-11-10

Added

  • New Floating toolbar buttons and Main toolbar buttons pages under Settings → Toolbars and colors: turn each button on or off and reorder them by dragging the handle or with the arrows (colors count as one item on the floating toolbar; the main toolbar's dividers can be moved or hidden too). Changes apply to open mind maps right away, and Restore defaults puts everything back. The floating toolbar also has five optional buttons, off by default: Add relationship, Insert table, Collapse / expand, Move up and Move down. The default toolbars look the same as before.
  • New Open note links in setting under Settings → Editing: Current tab (default, as before), New tab or Right split. With Right split the mind map stays on the left and keeps focus, and the next link opens in the same split instead of adding more. ⌘⌥-click (Ctrl+Alt-click) on a link now always opens it in the right split; ⌘-click still opens a new tab.
  • New Text color button on the floating toolbar (also under More in the context menu): gives the selected nodes' whole text one color, replacing any partial text colors, or removes it with Default. It uses the text colors from settings, and can be hidden under Floating toolbar buttons.
  • While editing a node, select some text and press ⌘K (or the link button on the format bar) to link just that text to a note; the rest stays as is. With nothing selected it still links the whole node.

Fixed

  • Relationship line labels: while editing, the text no longer runs down one character per line; it's laid out horizontally and wraps past a set width. Long labels now show in full on several lines, centered both while editing and when shown, instead of being cut off with an ellipsis.
  • Link to note no longer strips colors, bold and other formatting from the node. The formatting stays; colored parts are written as Markdown links, so they show as links in their own color (underlined) in the mind map and reading view, and keep their color in Live Preview. Unlink restores the original text.
  • Colored text with a line break (Shift+Enter) no longer shows as <span style=…> source in the node, with the color value turned into a tag; a line break inside colored text now stores each line as its own complete colored text.
  • Copying part of a colored text while editing a node no longer pastes as a half <span …> tag; the copied text is a complete piece of colored text.
  • Tables in nodes: after a node's width was dragged, the table kept a faded right edge and scrolled sideways a little even when the node was wider than the table. It now shows in full when it fits and only scrolls when the node is narrower.
  • Resizing a PDF++ crop image in a node no longer leaves the node frame stuck at 300 px wide with the image sticking out; the frame grows with the image.
  • The mouse wheel sometimes seemed to stop working until you clicked a few times: if the mouse release was missed (for example after switching windows while holding the button), the canvas still thought it was being dragged and snapped back after every wheel scroll. A move with no button pressed now counts as a release.
  • With the pointer on a scrollable table node that is already scrolled to the end, the wheel no longer does nothing: a new scroll gesture pans the canvas instead. Reaching the end in the middle of a gesture still stops there, so the map isn't flung away.
  • Tables in nodes: copying part of a colored text while editing a cell no longer pastes as a half <span …> tag, and Shift+Enter inside colored text keeps each line complete.
0.59.1
2026-11-10

Changed

  • Tables in nodes: editing a cell now uses the same editor as node text — colors, highlights, bold and underline show while editing, with their tags hidden and kept paired.
  • Tables in nodes: drag handles appear only on the first column (row handle) and header row (column handle), like native tables, and hide while scrolling.

Fixed

  • Node colors in notes also works in reading view when Obsidian passes an empty note text to plugins (the text is read from the open note instead).
0.59.0
2026-11-09

Added

  • Tables in nodes get the format bar too: with Format bar when selecting text on, selecting text while editing a cell shows the same bar with your text and highlighter colors; Mod+U underlines.

Changed

  • Tables in nodes: after selecting several cells, the right-click menu offers Delete 2 rows / Delete 3 columns and so on instead of greying out Delete row and Delete column.

Fixed

  • Tables in nodes: with crosshair highlight, the row highlight grows with a cell whose text wraps while editing.
0.58.0
2026-11-09

Added

  • Node colors in notes setting (off by default): when a mind map note is opened as Markdown, the text of colored headings and list items gets a light background in the node's color, in both Live Preview and reading view (so PDF export too). Named colors match the mind map's palette, including dark mode; custom #hex colors are shown semi-transparent. Child items aren't colored with their parent, the file isn't changed, and colors are still edited in the mind map. Find it in Settings → Markdown and embeds.

Fixed

  • Node markers in notes (dot / hide) now also works in a mind map note that was just created or just got mindmap: true, instead of waiting for Obsidian to finish indexing it.
0.57.0
2026-11-09

Added

  • Format bar when selecting text in notes setting (off by default, desktop only): in the Live Preview of any Markdown note, selecting text shows the same bar as in the mind map — bold, italic, strikethrough, underline, highlight, text colors, highlighter colors and clear. It writes the same formatting as the mind map, so what you mark in a note shows in the mind map and the other way round. A selection over several lines is formatted line by line, leaving list bullets, heading marks, task boxes, %%…%% node markers and block IDs alone. It doesn't appear in source mode, code blocks, math or frontmatter. Find it in Settings → Markdown and embeds.
0.56.0
2026-11-09

Changed

  • Typing "1. " or "1、" at the start of a node now numbers its sibling group by default, and the typed number is removed. Before, the number stayed as text and was saved as - 1. text, which Markdown reads as a list inside a bullet, so many themes showed every item as "1.". Existing settings are reset to the new default once; you can turn Start numbering by typing 1. off again in Settings → Editing and interaction.
  • Number siblings moved from More to the first level of the node's right-click menu.
  • Turning numbering on for a group where every node already starts with a typed number ("1. ", "2) ", "3、") removes those numbers, so notes numbered by hand can be fixed in one step instead of showing "1. 1. text". If the group is already numbered and shows "1. 1. text", clicking Number siblings removes the typed numbers and keeps the numbering.

Fixed

  • In Markdown notes with tables, clicking or selecting a paragraph just above a heading no longer selects the heading instead: the table's margins are now counted in the line positions.
0.55.0
2026-11-09

Added

  • Underline: press ⌘U (Ctrl+U) while editing a node or with nodes selected, click U in the format bar, or use the command "Underline the selected text". Saved as <u>text</u>, which nodes now display as underlined text.
  • Hide format tags in notes setting (off by default): in a Markdown note's Live Preview, clicking into colored, highlighted or underlined text no longer reveals the whole <span style=…>, <mark style=…> or <u> tag; the formatting keeps showing, as in the node editor, and deleting or typing next to it keeps the tags paired. Source mode, code blocks, math and frontmatter are left alone.
  • Node markers in notes setting: in mind map notes opened as Markdown, the %%…%% marker at the end of a line (colors, folding, relationships…) can show as is (default), shrink to a small gray dot (hover to see it, click to edit it) or be hidden completely in Live Preview; a heading's marker line takes no space and its dot goes at the end of the heading. While hidden, typing, Enter, Backspace and joining lines keep the marker in place, deleting a whole line deletes its marker, and moving a heading line takes its marker line along, so nothing is lost; ordinary comments are left alone.
0.54.0
2026-11-08

Added

  • When the central topic is the note's only top-level heading, you can now add a sibling to it from the right-click menu or the toolbar's Add sibling button: a second top-level heading is added, the note's file name becomes the central topic, and both headings become its branches (#27). Pressing Enter on the central topic still adds a child.
  • Relationship lines get two control handles (#28): select a line and a handle appears near each end, linked to it by a thin guide; drag them to shape the start and end of the curve separately. The label stays in the middle, so it no longer covers the handle, and each handle moves with its node. Lines you haven't touched keep their current shape and file text; once a handle is dragged the line is stored as c1=… c2=… instead of c=…. Older versions of the plugin don't understand that and show the marker as text on the node.

Fixed

  • In a code-block mind map without a single top-level heading (only a list, or several top-level headings), a name given to the central topic wasn't saved and turned back into "Central topic" after editing another node (#26). Naming it now adds a top-level heading at the top of the block to hold it, moving the existing headings one level down; if the headings are already six levels deep, a notice says it can't be saved.
  • When the central topic is the note's file name (the note has several top-level headings or none), renaming it was silently undone (#27). Renaming it now renames the note, and links to it update as usual; names with characters a file name can't contain, or that clash with an existing file, show a notice instead. Renaming the note elsewhere also updates the central topic right away.
  • After dragging a relationship's label, ⌘Z and Delete didn't act on the map until you clicked it: clicking or dragging a line, its label or its handles now gives the map keyboard focus.
0.53.1
2026-11-08

Changed

  • Big tables in nodes render faster (plain-text and number cells skip Markdown rendering, and selection only updates the cells that changed), same as the gogoga Table plugin.
0.53.0
2026-11-08

Added

  • Tables in nodes can also have multi-row headers (top-left menu → Header rows) and a frozen header column (shown once First column as header is on), matching the gogoga Table plugin.

Changed

  • Tables in nodes that scroll sideways now fade out on the cut-off side (same as the gogoga Table plugin).
0.52.0
2026-11-07

Added

  • Hold the right mouse button and drag to move the map (from a Bilibili comment): now also in the default Pan mode, and even when you press on a node, so dense maps don't need empty space to grab; a right-click without dragging still opens the menu.

Changed

  • On vertical timelines, a main topic's expanded note is now centered right below it, so the axis runs through the middle of the note instead of being cut off off-center.
  • The arrow at the end of a timeline now reaches past the farthest part of the map, so the axis no longer stops short when an earlier branch reaches farther than the last main topic.
0.51.0
2026-11-07

Added

  • Five timeline structures (#24), in the toolbar's structure menu: horizontal timeline (one side / alternating up and down) and vertical timeline (rightward / leftward / alternating). Main topics are strung in order along an arrowed axis with their content hanging beside it: as an indented list on horizontal timelines and as a logic chart on vertical ones. When alternating, neighboring branches go on opposite sides and tuck in, so more fits on screen. Arrow keys move along the axis and into a branch toward the side it grows; drag main topics to reorder them along the axis. The structure is stored only in the frontmatter's mindmap-structure; the note's body is unchanged.

Fixed

  • With Fold Markdown along with the map on and the Markdown beside the map, expanding or collapsing a branch in the map made the Markdown jump dozens of lines away, losing the spot you had just located (most visible in long notes with many folded sections above). The Markdown now stays where it was.
0.50.0
2026-11-07

Added

  • A Markdown and mind map side by side button at the top right of the map (next to the document icon): one click opens this note's Markdown on the left with the map on the right, no need to look in the right-click menu or command palette. It hides while the two are already side by side.
0.49.0
2026-11-07

Added

  • A sync toggle on the toolbar: when the same note is also open as Markdown, the toolbar shows a split-view button that turns syncing with the Markdown on or off in one click (struck through when off), without going to settings. It is the same switch as the "Sync with Markdown side by side" setting.

Changed

  • Smoother with big notes: when you type in the Markdown beside the map, undo, or the file changes elsewhere, the map redraws only the nodes that changed instead of rebuilding every node. For a 3000-line note with over a thousand nodes, each sync drops from about 80 ms to about 25 ms.

Fixed

  • After moving a node in the map, its old spot in the Markdown could be left with a long run of blank lines (most visible when the note already had several blank lines in a row; the longer the moved content, the more blank lines). The old spot is now left clean, and the seam never has more blank lines in a row than the note already did.
  • In a split or narrow pane, toolbar buttons that didn't fit at the bottom (or top) were cut off and couldn't be clicked. The toolbar now wraps onto a second row when needed, so every button stays visible.
0.48.0
2026-11-07

Added

  • Default image size and Maximum image width settings (Opening and display page): how wide images without a set width appear (was fixed at 240), and how far you can drag an image's corner (was fixed at 800, now up to 2000). Images whose width in the note is larger show at the maximum; the note isn't changed.
0.47.0
2026-11-07

Added

  • Right-click → Insert ▸ Child node with a table creates a child that holds just a table, without typing a title first; the cursor lands in the first cell, and a node without a title shows only the table.
  • Delete table in the menu of a node table's top-left button: removes the table and keeps the node.
  • Numbered siblings: right-click a node → More ▸ Number siblings (1. 2. 3.) to show 1. 2. 3. in front of that group; numbers update when you add, delete or reorder. The numbers aren't written into the text: list items are stored as a Markdown ordered list, so Obsidian shows them numbered too, and headings get a %%num%% after their parent heading. Ordered lists already in your notes show their numbers in the map as well. There's also a command, Number the selected nodes and their siblings (on / off), to bind a hotkey to; the outline panel shows the numbers too.
  • Start numbering by typing 1. setting (Editing and interaction page, off by default): typing "1. " or "1、" at the start of a node numbers its group, and the typed number is removed.
  • A strikethrough button (S) in the formatting toolbar while editing a node: select text and click to add ~~, click again to remove it.
  • Strike through completed tasks setting (Editing and interaction page, off by default): nodes whose task box is checked show struck-through, dimmed text; not in recite mode.
  • Name new nodes Topic 1, Topic 2… setting (Editing and interaction page, off by default): a new node starts as "Topic 1", "Topic 2"… selected, so typing replaces it; pressing Enter or Esc without typing keeps it, so you can add several nodes in a row.

Changed

  • A node table under a list item is now written after a blank line, so Obsidian's Reading view shows it as a table even without the table plugin. Tables written earlier get the blank line the next time the map is saved.
  • Node tables have the same margin on every side, so the table sits centered in the node.
0.46.0
2026-11-07

Added

  • Tables inside nodes: right-click a node → Insert ▸ Insert table to put a table in the node box, under its title, and edit cells right there with the same editor as the gogoga Table plugin: Enter / Tab to move, drag column widths, cell colors, merged cells, row and column handles, copy and paste with Excel or Feishu, ⌘Z to undo. No need to install the table plugin. The table is stored in the node's note as a plain Markdown table, with %%table%% added after the node; for a node whose note already has a table, right-click → Insert ▸ Show table in node moves it into the node, and More ▸ Move table back to note puts it back. Nodes without the marker and existing notes don't change. Big tables don't blow up the node: columns you haven't resized are at most 240 wide and wrap their text, and a table larger than the maximum width or height in settings (640 and 480 by default, on the Notes page) scrolls inside the node with its header kept at the top; scrolling anywhere on such a node scrolls only the table, and the node stays put even at the end. One swipe (trackpad momentum included) goes to one thing: panning that starts on the canvas isn't caught by a table it passes over, and an expanded note that hits its end no longer flings the canvas.

Changed

  • With Resize width from the right edge on hover on, the selected node behaves the same way: its right-edge bar stays hidden until you point at the edge.
  • Adding a boundary after selecting a whole branch adds just one around the outermost node instead of one around every child.
0.45.0
2026-11-06

Added

  • Resize width from the right edge on hover setting (on the Editing and interaction page, off by default): hovering over any node shows the width handle on its right edge, so you can drag or double-click it without selecting the node first; the current selection stays as it is.
  • Double-clicking the width handle of an automatic-width node whose text wraps now stretches it to one line (up to 1200); a node with a set width still goes back to automatic width.
  • Keep format marks hidden while editing setting (on the Editing and interaction page, off by default): while editing a node, ** and == stay hidden even when the cursor is next to bold or highlighted text, so the line width doesn't jump.
  • Right-clicking a relationship line (or its label) now offers Go to start and Go to end, which select that node and glide it to the middle of the canvas.

Changed

  • The width handle covers the node's whole right edge, so you can grab it anywhere from top to bottom instead of aiming for the small bar in the middle.

Fixed

  • While editing, bold or highlighted text right next to CJK punctuation (such as **换行)**:) was a few pixels wider than when displayed, so a node near its width limit wrapped an extra line as soon as you started editing. Editing and display now have the same width.
  • Pressing Backspace right after colored text deleted the whole hidden </span>, leaving an unclosed color tag; deleting a selection that ran from inside colored text to outside it did the same. Now only the visible characters are deleted, and the tags go once the text inside is gone.
0.44.0
2026-11-05

Added

  • Summary topics: a summary can now have its own subtopics, like XMind's summary topic. Click the summary text and press Tab, or right-click the summary → Add subtopic: the summary text becomes a node with a subtopic under it, and from then on it edits, takes children, folds and accepts dropped nodes like any node. When it's taller than the nodes it covers, the siblings above and below make room instead of overlapping; all four structures are supported, and on the left side of a mind map it grows leftward. In Markdown it's the item right after the last node it covers, - Notes %%summary-topic=2%%, with its subtopics under it as usual; the outline panel lists it in that spot too. A summary topic follows the range it covers and can't be dragged or moved on its own; deleting the first covered node hands the summary to the next one, and deleting them all leaves it behind as an ordinary node with its subtree. Plain one-line summaries are stored exactly as before, and existing notes don't change at all.
  • Opening or converting .xmind files now brings over topics hanging off a summary (as summary topics) instead of counting them as left out.
0.43.0
2026-11-05

Added

  • Center the selected node setting (on the Editing and interaction page, off by default): clicking a node, moving with the arrow keys, or adding a node with Tab / Enter glides the selection to the middle of the canvas in about 0.2 s. After a click it waits out the double-click interval, so double-click to edit still works; Shift/⌘ multi-select, box-select and dragging leave the view alone, and panning or zooming mid-glide stops it where you put it.
0.42.0
2026-11-05

Added

  • Select text while editing a node and paste a web address to get a [text](address) link, as in the Obsidian editor. Local file and folder paths (/Users/…, C:\…) work the same way and become file:// links that open in the default app. With nothing selected, pasting works as before. Turn on Fetch page titles for pasted links (off by default) to have a pasted address with nothing selected become [page title](address). Renaming in the outline panel works the same way.
  • PDF auto-excerpt: run Toggle PDF auto-excerpt into this mind map in a map, and every link PDF++ copies (selected text, a rectangle, an annotation) is added under the selected node straight away, with no ⌘V. The selection stays on that node, so excerpts in a row land under it; click another node to send the next ones there. Turn on Auto-copy in PDF++ to add a selection as soon as you make it. While it's on, a highlighted button in the view header stops it. Needs PDF++.
0.41.0
2026-11-05

Added

  • Obsidian 1.15's colored highlights, ==🔴text==, now show in nodes in the theme's highlight colors instead of plain yellow with the emoji visible; while editing, the emoji is hidden like ==. Add 🔴🟠🟡🟢🔵🟣 to "Highlighter colors" to write them from the format bar and the "Highlighter color" commands; "Clear text and highlighter colors" turns them back into plain highlights.

Improved

  • Recite mode keeps a highlight's own color when covering it (yellow for plain highlights, their own color for highlighter and colored highlights) instead of turning every blank gray, so blanks stand out and you can still tell them apart.
0.40.0
2026-11-05

Added

  • The node context menu now has "Expand all sub-branches" and "Collapse all sub-branches" as a pair on the first level, and the submenu, renamed Fold & view ▸, adds "Expand one level" and "Collapse one level" and now also holds "Focus on this branch" and "Zoom to this branch", so the first level doesn't get longer. Keys: ⇧0 collapses the whole branch (the pair of 0), = / - expand or collapse one level; all of them are commands too.
  • "Node colors" setting: choose which colors the floating toolbar and the callout color menu offer. Remove the ones you don't use or add hex values like #ff8800; built-in names follow the theme and dark mode, hex values stay the same everywhere.

Improved

  • Settings now use sub-pages: the first page lists Opening and display, Editing and interaction, Toolbars and colors, Notes, Markdown and embeds, New maps and Custom themes, each with a one-line summary and, for some, the current value (such as how many node colors), and the settings themselves are one click in. On Obsidian 1.13 and later, the plugin's settings show up in the "Search settings" box of the settings window, including common synonyms (searching "palette" finds "Node colors"); older versions show the same page without search.

Fixed

  • After the plugin was updated (or reloaded, or re-enabled), mind map notes you had open as Markdown were switched back to the map view. Open tabs are now only converted when Obsidian starts, so updating the plugin leaves them as they are.
  • When a note was changed elsewhere (a sync service, another device, another plugin or editor) within the couple of seconds before the map auto-saved, one side's changes could be lost: a node being edited overwrote the outside change, and edits to the same line got spliced together. Changes are now merged line by line, so edits to different places are both kept; when both sides changed the same place, the map's version is kept and a notice says so.
  • In code blocks and embedded maps, the toolbar (at the bottom and always shown by default) covered the nodes nearest that edge, so they couldn't be clicked. Fit to view now leaves room for the toolbar and the preview grows to match; when the toolbar is set to auto-hide no room is reserved. Fit to view in the main view also keeps clear of the toolbar.
0.39.0
2026-11-04

Added

  • "Floating toolbar on selected nodes" setting (on by default): turn it off if the small toolbar above the selected node gets in the way of clicking nearby nodes; everything on it is also in the node's context menu. (#22)

Improved

  • Toolbar button tooltips show up right away instead of after a second or two. (#22)

Fixed

  • With side-by-side sync on and the cursor in Markdown, the first click on a map node didn't jump, and clicking the node the cursor was already on never jumped until you clicked another node. Clicking any node now jumps straight there. (#22)
0.38.0
2026-11-04

Improved

  • Editing a node's text now shows formatting as it will look, like Obsidian's Live Preview: bold, italic, highlights, strikethrough, inline code, text colors and highlighter colors render in place with their markers hidden; Markdown markers like ** and == show when the cursor is on them, while color tags always stay hidden so clicking into or selecting colored text doesn't reflow the node. The editor is now CodeMirror, the same one Obsidian uses, so input methods, undo and cursor movement behave as in Obsidian's editor; callouts, summaries, relationship labels, boundary titles and renaming in the outline panel use the same editor.

Fixed

  • In notes whose headings sit on consecutive lines (no blank line between them), every node added from the map got a blank line in front of it in Markdown. New headings now follow the note's own style: if most headings sit right after the previous node, new ones do too; a blank line is still kept after the central topic and after notes and paragraphs. Maps created by the plugin, which put a blank line between headings, are unaffected.
  • Adding a node to a note that doesn't end with a newline no longer adds one at the end.
  • Notes that use \r\n line endings throughout no longer get switched to \n by some write-backs.
0.37.0
2026-11-04

Added

  • "Fold Markdown along with the map" setting (off by default): branches collapsed in the map are folded in the Markdown editor and reading view of the same note too, and unfolded when you expand them in the map; folds you make yourself in Markdown are left alone.
  • "Expand collapsed nodes when syncing" setting (off by default): with side-by-side sync, moving the Markdown cursor into a branch collapsed in the map expands the map down to that node instead of selecting the collapsed ancestor.
  • <mark>text</mark> in a node shows as a highlight, the same as ==text==, and is covered in recite mode.

Fixed

  • Opening a map in the right sidebar (or another narrow pane) restored the position remembered from a wide pane, leaving the central topic off screen. The pane size is now remembered too, and the view keeps its center when restored in a pane of a different size.
  • In a narrow pane the bottom toolbar didn't fit and its right end was cut off. It now wraps onto two rows.
0.36.0
2026-11-03

Added

  • "Sync with Markdown side by side" now works with reading view: selecting a node scrolls reading view to that block or list item and flashes it, expanding collapsed headings; clicking a block or list item in reading view selects the matching node.
  • "Copy nodes without map markers" setting (off by default): copied nodes go to the clipboard as plain Markdown, without markers like %%w=…%%, so they paste cleanly elsewhere; pasting back into a map still restores width, callouts and the like.
0.35.0
2026-11-03

Added

  • Color part of a node's text: while editing a node, select some text and use the commands "Text color 1–5", "Highlighter color 1–5", "Highlight the selected text" or "Clear text and highlighter colors", all bindable in Settings → Hotkeys; outside editing they apply to the whole text of the selected nodes. Saved as <span style="color:…"> and <mark style="background:…"> (the same as the Highlightr plugin), so Markdown shows the colors too; recite mode covers highlighter colors like ==highlights==.
  • "Format bar when selecting text" setting (off by default): selecting text while editing a node shows bold, italic, highlight, text color, highlighter and clear buttons above it.
  • "Text colors" and "Highlighter colors" settings: choose your own colors, separated by commas (three of each by default).
  • Bold and italic are now commands too, so you can rebind them.

Fixed

  • A node with both text and an image ignored the maximum width, so the text never wrapped. Text now wraps as usual, and a node only grows wider than the maximum when an image needs it. A custom theme's maximum width now applies to these nodes too.
  • ⌘B / ⌘I (Ctrl+B / Ctrl+I on Windows) did nothing in the map (Obsidian's editor bold/italic hotkeys took them). They now bold or italicize the selected nodes, or only the selected text while editing a node.
0.34.0
2026-11-01

Added

  • Opening a .xmind file now shows topic images: image-only topics become image nodes, and topics with text get the image before or after the text as placed in XMind, at the XMind width. Works for XMind Zen / 2020+ and XMind 8 files, and in ![[file.xmind]] embeds.
  • "Convert to Markdown note" saves the images as attachments (following Obsidian's attachment location setting) and writes them as ![[attachment|width]] in the nodes. Images used to be dropped silently.
  • Topics whose image file is missing from the .xmind are counted in the "not supported yet" notice at the top.
0.33.2
2026-11-01

Fixed

  • Clicking the task checkbox on a node a second time removed the checkbox (the item became a plain list item). It now toggles between open and done; use the context menu "Task checkbox" to remove it.
  • Edits to a mind map code block inside a Canvas text card failed with "Failed to write back to the code block: File not found" and were lost. They are now written back to the card text.
  • Pressing F2 on a selected node of a mind map embedded in a note triggered Obsidian's "Rename file". F2 now edits the node as usual.

Changed

  • Clicking outside an embedded mind map (note text, empty canvas) clears the selection, so the floating node toolbar goes away. With "Hide the toolbar of embedded maps" on, the bottom toolbar also hides once the mouse and focus leave the map, including while you are editing it and on canvas cards.
0.33.1
2026-11-01

Fixed

  • Pasting with Ctrl/⌘+V into a selected node did nothing while text was still selected in a PDF or another note (for example right after PDF++ copied a selection); you had to double-click a node first. It now pastes as subtopics straight away.
0.33.0
2026-10-31

Added

  • Relationships: right-click a node → "Add relationship" (also a command), then click the node to connect to. A dashed, curved arrow joins the two; double-click it to add a label, drag the label (or the dot on a selected line) to change the curve, and right-click it to edit, reverse, reset the curve or delete. Stored as %%rel=r1 "Text"%% on the start node and %%id=r1%% on the end node, so renaming or moving nodes never breaks a line. Lines are included in PNG/SVG exports, and relationships in .xmind files are now imported. (#3)
  • "Preview notes while editing" setting (off by default): when you edit a note, the rendered note appears next to the text box (below it when the window is narrow) and updates as you type. (#6)
0.32.0
2026-10-31

Added

  • "Delete note" in the node's context menu (and in the context menu of an expanded note); with several nodes selected, it removes all their notes.
  • More → "Split into subtopics at commas": turns "apples, pears; plums" into three subtopics. Commas inside links, math and code, and in numbers like 1,000, are left alone.
  • PDF crops show a ↗ button in the corner on hover or when selected; clicking it jumps back to that spot in the PDF.

Fixed

  • Clicking a link to a node ([[note#^id]] or [[note#Heading]]) in a mind map did nothing. It now selects and centers that node, unfolding its parents; following such a link from another note opens the map at that node.
  • Dragging the corner of an expanded note to resize it made the box flicker between the old and new size.
  • Shift + mouse wheel now pans sideways even where the system doesn't turn it into horizontal scrolling.
0.31.1
2026-10-31

Fixed

  • In Live Preview, the first child (or the next sibling) under a node whose note is stored as a > [!note] block (notes containing lists or headings) was shown inside that note. A blank line is now written after such notes. Reading view and the mind map were not affected, and existing notes stay as they are until you add the blank line yourself.
0.31.0
2026-10-31

Added

  • Hide nodes from the mind map: right-click a node and choose More → Hide in mind map, or write %%hide%% after it in the note. The node and its branch stay in the note but leave the map; press Mod+Z to undo. When a map has hidden nodes, the toolbar shows "Show hidden nodes" (also a command): they appear faded with a dashed outline, and More → Unhide brings them back. Saving puts hidden nodes back exactly where they were, even when you move or delete the nodes around them, and boxes and summaries spanning them keep their original range.
  • "Only headings as nodes" setting (off by default): mind maps of notes show only headings as nodes, and the lists and paragraphs under a heading become its note, kept exactly as written. New nodes are written as headings one level down, up to level 6; deeper ones are saved as part of the heading's note, with a notice. Code-block mind maps are not affected. (#14)
0.30.0
2026-10-31

Added

  • Expanded notes: a "Maximum width of expanded notes" setting (320 by default; wider boxes show images in notes larger), and drag the bottom-right corner of a note box to give that note its own size (double-click the corner to reset). Notes you collapse one by one and the sizes you drag are remembered per file in state.json, and follow a node when you rename or move it in the map.
  • Outline panel: formulas in titles render as formulas, and the "Show full titles in the outline" setting (off by default) wraps long titles instead of cutting them off.

Fixed

  • Moving a heading before list items at the same level no longer turns it into a list item. Headings have to come after list items at the same level in Markdown, so the list items after it become headings of the same level instead (block IDs and paragraphs before them are kept), with a notice; press Mod+Z to undo. Moving a list item after a heading likewise makes it a heading, so saving no longer reorders them. Dragging a heading onto a node keeps it a heading. (#10)
0.29.0
2026-10-30

Changed

  • Per-file view state no longer lives in data.json next to the plugin settings, so syncing several devices can't clobber your settings over a panned canvas. Where you left off in each map (position, zoom, selection) is kept on this device only and not synced; whether a file is locked, has notes expanded or callouts hidden goes to a separate state.json in the plugin folder, and changes made on another device are merged instead of overwritten. Existing state moves over automatically the first time the plugin loads. Colors, folds, boxes and other styling stay in your notes as before.

Fixed

  • Maps and notes in pop-out windows: with "Sync with Markdown side by side" on, moving the cursor in Markdown selects the matching node and selecting a node scrolls Markdown to its line and flashes it, whichever window each is in. Editing nodes and outline renames place the cursor correctly, and menus close when you click elsewhere in a pop-out window.
0.28.2
2026-10-30

Fixed

  • Typing with a Chinese input method: pressing Enter to commit the Latin letters you typed (for example cc) no longer saves the pinyin separators too (c c with the macOS input method, c'c with Sogou). Enter, Esc and Tab now go to the input method while it is composing, in node editing, outline renames, callouts, summaries, box titles and the search box. Esc during composition only cancels the composition instead of closing the editor. (#18)
0.28.1
2026-10-30

Changed

  • Recite mode: every quiz question now shows a "Single" or "Multiple" tag, and only clicking the tag reveals or hides the answer. Clicking anywhere else on the question selects it like any other node, so answers no longer get revealed by accident.
  • Recite mode: children of the options (the reasoning behind an answer, for example) stay covered until the answer is revealed, the same way 🙈 answers are covered.
0.28.0
2026-10-29

Added

  • PDF crops: ![[book.pdf#page=3&rect=…]] in a node (what PDF++ copies for a rectangle selection) shows the cropped image itself. Like other images in nodes, drag the handle to resize it and double-click to view it full-size. Needs PDF++; without it the crop shows as a link to that page.
  • Clicking a link to a PDF in a node or a note, while that PDF is already open in another tab, jumps there to the page and selection (the selection is highlighted) and keeps the mind map where it is, so reading a PDF on the right and taking notes on the left works smoothly.

Fixed

  • Pasting a block quote no longer turns every line into its own node (it used to leave a few nodes with nothing but >). A selection copied from PDF++ (> [!PDF|] [[book.pdf#…|book, p.3]] followed by the quoted text) pastes as one node: the quoted text, linked to that selection in the PDF. Other quotes become one node from the first line (or the callout title), with the rest as its note.
  • Resizing an image that has a caption, like ![[image|caption|width]], replaces only the width instead of adding another segment each time.
0.27.0
2026-10-29

Added

  • Expanded notes: the note button in the toolbar (and the command "Expand / collapse notes") shows notes in a box right under their nodes. The nodes around make room, so notes never cover nodes or lines, and long notes scroll inside the box. Double-click a box to edit it in place; click ≡ on the node or the collapse button on the box to hide just that one. Remembered per file, with the "Expand notes" setting (off by default) as the default and "Maximum height of expanded notes" at 240. Nothing is written to your notes, and PNG/SVG exports include the expanded notes.

Fixed

  • Locking editing while a node was selected left the node's floating toolbar on screen; it now goes away.
0.26.0
2026-10-29

Fixed

  • [[note#Heading]] links to a heading that was folded, colored or given another marker in the map now work. The marker used to sit at the end of the heading line, which made it part of the heading name in Obsidian; it is now written on its own line below the heading. Old notes are still read as before and move over only when you change that node; links elsewhere that included the marker are updated at the same time.
0.25.1
2026-10-29

Fixed

  • Text between two lists under the same heading (or between sub-lists of a list item) stays where it was. Before, editing such a note moved it after the last list and merged the lists, which changed what the text referred to. Deleting or moving a list item leaves that text in place.
  • A line that starts a new block right after a list item (an HTML comment such as <!-- fav-sync:end -->, a code fence, a quote, a horizontal rule) is no longer pulled into that list item when the item is edited.
  • Two trailing spaces (a hard line break) at the end of a list item are kept.
  • A numbered list that directly follows a paragraph keeps rendering as a list after its first item is deleted.
  • A note line such as "2026. year end" right after text in a heading's note is no longer wrapped in a callout, which used to change how the note looked.
0.25.0
2026-10-29

Changed

  • The split preview is now Markdown and mind map side by side and is also available while a note shows as a mind map (command palette, file menu, ⋯ menu, and the right-click menu on empty canvas): the current tab switches to Markdown and the map opens on the right. Before, it only appeared for notes shown as Markdown.
  • Editing in the map only rewrites the lines that changed. The rest of the note stays byte for byte as it was (blank lines, indentation, list markers, trailing spaces, line endings), in mind map notes and mindmap code blocks alike. Previously every edit rewrote the whole note in the plugin's format.

Fixed

  • Editing an existing note no longer moves lines that follow a list item into that item, drops trailing double spaces (hard line breaks), or adds blank lines elsewhere in the file.
0.24.0
2026-10-29

Added

  • Lock editing: a lock button in the toolbar (and the command Lock / unlock editing) makes a map view-only; zoom, pan, fold and search still work. Remembered per file in the plugin settings, not in the note.
  • Settings Node spacing and Node text size scale the gaps and node text of every theme, custom themes included.
  • Setting Follow the active note (off by default): a mind map shown beside the editor switches to the note you open; pinned tabs stay put.
0.23.0
2026-10-29

Added

  • Setting Use the file name as the central topic (off by default): the central topic is always the file name and a note's only H1 becomes a first-level branch. Only the display changes; the file stays the same.
  • Setting Hide the toolbar of embedded maps (off by default): embedded maps (code blocks and ![[note]] embeds) show no toolbar in reading view; in editing view it appears only while the mouse is over the map or while you edit it.
  • Sync with Markdown side by side briefly highlights the line or node it jumps to.

Changed

  • Clicking Edit in the note popover keeps the popover where it is and at the same size; the editor fills it and can still be resized.

Fixed

  • [[Links]] in a node's note open when clicked (⌘/Ctrl-click for a new tab) and show a page preview on hover.
0.22.0
2026-10-28

Added

  • Setting Template for new mind maps: pick a note whose content starts every new mind map. {{title}}, {{date}} and {{time}} (also {{date:YYYY-MM-DD}}) are filled in like the core Templates plugin, and mindmap: true is added to the frontmatter.
  • Answer marker 🙈 (new Recite group in the marker picker): in recite mode an answer node is covered together with its children, images, notes and callouts included, until you click it. Works for screenshot questions too.

Fixed

  • ⌘Z works right after picking a marker or choosing from a toolbar menu.
0.21.1
2026-10-28

Added

  • Paste images from the node context menu and the node toolbar's paste button, not only with ⌘V.

Fixed

  • ⌘Z works right after pasting an image.
  • The "Open as Markdown" button icon now ships with the plugin, so it shows on Android too.
0.21.0
2026-10-28

Added

  • Callout fill color: right-click a callout → Callout color, stored as cc=red (or a hex color).
0.20.1
2026-10-27

Fixed

  • Ctrl/⌘ + mouse wheel zooms about 1.2× per notch instead of 2.7×; trackpad pinch is unchanged.
0.20.0
2026-10-27

Added

  • Setting When opening a map: with no remembered position, fit the whole map (default) or show the central topic at 100%.
  • Custom markers: emoji or symbols from the settings form a Custom group in the marker picker, optionally one per node.
  • Sync with Markdown side by side (off by default): selecting a node scrolls the Markdown to its line; moving the cursor in Markdown selects the matching node.
0.19.0
2026-10-26

Added

  • Callouts: a short bubble attached to a node, stored as %%callout "text"%%. The layout makes room for it, so it never covers nodes or lines. Callouts can be hidden per file, are searchable, exported, and imported from .xmind.
0.18.1
2026-10-26

Added

  • Copy image in the context menu of nodes that contain an image.
0.18.0
2026-10-26

Added

  • Floating topics: double-click or right-click empty space to add one, make a topic floating or attach it back, drag to move or drop onto a node. Stored as %%float x=… y=…%%; maps without them lay out exactly as before. XMind floating topics are imported.

Changed

  • The node context menu keeps everyday actions on the first level and groups the rest into Insert, Fold, Boundary, Summary and More submenus.
0.17.1
2026-10-26

Added

  • Multi-selection moves together: drag any selected node to move the group; Alt+arrows and move/indent commands act on the whole selection.
  • Pasting an image while editing a node's text adds it to that node's note.
0.17.0
2026-10-26

Added

  • Paste or drop images into a note while editing it.
  • Show in Markdown jumps to the node's line, and switching back selects the node at the cursor.
  • Each file remembers its position, zoom and selection (last 50 files).
  • Setting When editing a node: select all text (default) or put the cursor at the end.
0.16.3
2026-10-25

Added

  • Insert parent node (⌘↵ in the map view, context menu, command): selected siblings are wrapped in one new node.

Changed

  • Note popover: larger by default, resizable from the corner with the size remembered; click an image to view it full-screen.

Fixed

  • Dragging out of the note popover no longer drops into the map.
0.16.2
2026-10-25

Added

  • Code block name gogoga-mindmap, and a setting to leave ```mindmap blocks to other plugins such as Markmind.

Fixed

  • Coexists with Markmind: CSS classes no longer clash.
  • No extra border inside Live Preview code blocks; range handles stay out of exports.
0.16.1
2026-10-25

Added

  • Resize summaries and boundaries: click one to select it and drag the handles at either end, or use extend/shrink in its menu.
0.16.0
2026-10-25

Added

  • XMind-style editing: delete only a node and keep its children (⌘⌫); setting for left-drag on empty space to select, with right/middle-drag to pan; context menu entries for insert before, expand sub-branches and show next level.
  • Node operations are registered as commands, so they can have custom hotkeys. The canvas keeps its built-in keys unless you bind a key to one of this plugin's commands.
0.15.2
2026-10-24

Added

  • Embeds can point at a node (![[map#heading]], heading paths, ![[map#^block]]) to show just that branch.
  • Mind maps fill their Canvas cards and refit when the card is resized.
0.15.1
2026-10-23

Added

  • Summary text renders inline Markdown (links with hover preview, bold, …), and the summary width can be dragged.

Fixed

  • Summary text may contain a single %, so encoded URLs survive.
0.15.0
2026-10-22

Added

  • Summaries: a curly brace beside adjacent siblings with a short text, stored as %%summary=N "text"%%. Works in every structure, editable in place, exported, and imported from XMind.

Changed

  • Boundary titles are one shade lighter than node text.
0.14.1
2026-10-22

Changed

  • Number keys fold from the selected node: N levels below it, other branches untouched. On the central topic they still apply to the whole map.
0.14.0
2026-10-22

Added

  • Recite mode: ==highlights== become click-to-reveal blanks, and nodes whose children are [x] / [ ] become quiz questions revealed on click, with a "Multiple" tag. Display only; nothing is written to the file.
0.13.3
2026-10-22

Changed

  • Boundaries are easier to title: right-click or double-click empty space inside a boundary; the boundary button on a framed node opens a title/remove menu.

Fixed

  • Right-clicking a boundary no longer selects its members.
  • The node toolbar hides while a context menu is open, and no longer flashes when a click closes the menu.
0.13.2
2026-10-22

Fixed

  • The mouse wheel scrolls link suggestions and other canvas menus instead of panning the map.
0.13.1
2026-10-22

Changed

  • Link suggestions: exact name first, then prefix and substring matches sorted by name (pinyin for Chinese); up to 50 in a scrollable list.
0.13.0
2026-10-22

Added

  • Embed existing mind maps with ![[note]] or ![[file.xmind]]: a read-only preview that follows the file; the open button or a double-click opens it.
0.12.2
2026-10-21

Changed

  • Code cleanups for the Obsidian plugin review. No visible changes.
0.12.1
2026-10-21

Fixed

  • Markdown backslash escapes in node text render correctly (\<td\> shows as <td>).
0.12.0
2026-10-21

Changed

  • Custom themes use a maximum width instead of a fixed width, so short text keeps its own width, plus an optional per-level width alignment. Old fixed widths are migrated.

Fixed

  • Double-clicking an image really opens the full-size view.
  • Clicking inside a node being edited in a code block places the caret again.
0.11.1
2026-10-21

Fixed

  • Embedded maps keep keyboard focus, including after a write-back.
0.11.0
2026-10-21

Added

  • Custom themes: start from a built-in theme and style four levels (text, fill or underline, border, width, incoming line), overall lines and spacing, with a live preview and automatic dark colors.
0.10.6
2026-10-21

Fixed

  • Mobile: the bottom toolbar sits above Obsidian's floating navbar, toolbars scroll when they don't fit, and the node toolbar wraps into two rows.
0.10.5
2026-10-21

Added

  • Double-click an image to view it full size; double-click elsewhere still edits.
0.10.4
2026-10-21

Fixed

  • Typing 【【 converts to [[ without a stray 【 when using an input method; typing a bracket around a selection wraps it.
0.10.3
2026-10-21

Fixed

  • Dropping nodes in big maps lands where expected.
  • The selected node stays in view when moving with the keyboard or adding nodes.
0.10.2
2026-10-21

Added

  • Drop behind a node to make it a child; the map auto-scrolls near the edge while dragging.

Changed

  • Up/down navigation goes to siblings first.
0.10.1
2026-10-20

Added

  • Rounded or sharp corners for right-angled lines (mindmap-edge-corner).
0.10.0
2026-10-20

Added

  • Line style menu: follow theme, curved, right-angled or straight, plus dashed; stored per note in the frontmatter.
  • Link suggestions while editing a node: typing [[ (or 【【) lists vault files.
  • Examples folder with a guide map, an embed example, sample maps and an .xmind file.
0.9.1
2026-10-19

Fixed

  • $$…$$ in labels renders as display-style math instead of leaving stray dollar signs.
0.9.0
2026-10-19

Added

  • Digit keys fold the map to N levels; zoom to the selected branch (⌘⇧0).
  • Pin main topics to the left or right side in the mind map structure.
  • Commands for fold, show-to-level, zoom-to-branch and boundary, so they can have hotkeys.
0.8.1
2026-10-18

Added

  • Funding link.
0.8.0
2026-10-18

Added

  • Drag a node's edge to set its width (%%w=N%%); double-click the edge to reset.
0.7.1
2026-10-18

Added

  • A header button switches a mind map note back from Markdown, and the file menu follows the current view.
0.7.0
2026-10-18

Added

  • Split preview that follows the editor.
  • Setting to switch views without writing mindmap: true.
0.6.1
2026-10-16

Added

  • Boundary button in the node toolbar, and ⌘⇧B to toggle a boundary.
0.6.0
2026-10-16

Added

  • Boundaries (%%box%%) around a node or adjacent siblings.
  • XMind import keeps boundaries and reports content it can't bring over.
0.5.0
2026-10-16

Added

  • Setting: the mouse wheel zooms instead of panning (Shift + wheel pans).
0.4.1
2026-10-16

Fixed

  • Switching a mind map back to Markdown opens in editing mode and keeps the reading/editing toggle.
0.4.0
2026-10-15

Added

  • English and Simplified Chinese interface, following Obsidian's language.
0.3.2
2026-10-15

Changed

  • README demo GIF and screenshots.
0.3.1
2026-10-14

Changed

  • Adjustments for the Obsidian community plugin review.
0.3.0
2026-10-14

First public release.

Added

  • XMind-style mind map view for Markdown notes, with two-way sync between headings/lists and the map.
  • Logic chart, mind map, org chart and tree structures; seven built-in themes.
  • Editable ```mindmap code blocks inside ordinary notes.
  • Search, subtree copy and paste, fold to level, multi-line text, touch support.
  • Link nodes to notes (⌘K) with hover preview; bare URLs become links.
  • LaTeX math and images in nodes, resizable by dragging; <iframe> embeds such as videos.
  • Outline panel synced with the canvas.
  • Context menu, focus on a branch, markers, task checkboxes, tags, drag-and-drop and paste.
  • Export as PNG or SVG, with math and images embedded.
  • Configurable toolbar position; file list icon with an icon picker; "New mind map" in the folder menu and Notebook Navigator.