Converting Markdown to a mind map

I’m working on a “Brainstorming workflow” post right now, and in the process I realized I needed a better tool to turn quick Markdown/plain text scribblings into mind maps. I put together a script that will accept a variety of (logical) plain text outline formats and convert them into an indented list in your clipboard. The result is formatted so that pasting it into a mind mapping application will result in a perfect set of topics and nodes for expanding on the outline.

I often start an idea in a text file, whether it’s on my iPhone in Notesy, or in nvALT on my Mac. An outline can only go so far for me, though, so I usually end up taking it to a mind mapping application for further expansion. Most mind mapping applications (including MindNode, Mindjet MindManager, Curio, and MindMeister) accept indented text as an “import” option. In the cases of MindManager and MindNode, you can just hit V (paste) in a map to create the nodes from the clipboard. In Curio, just right click and choose “Paste as… Mind Map.” In MindMeister you have to save to a text file and import it, but it’s still a very convenient way to start a map.

I’ve packaged the script as both a System Service and a PopClip extension. They both do the same thing; it’s just two ways to access the script based on your preference.


What the script does is take any “logically” formatted outline and turn it into a plain, tab-indented list in your clipboard. The input text can be any combination of Markdown lists, sequential headlines, paragraphs or indented text. Running the Service or PopClip extension on a basic list such as:

- Brainstorming
	- Curio
	- Mindjet MindManager
	- MindNode Pro
	- OmniOutliner
	- nvALT
		- Markdown
		- tab-indented outlines

and then pasting into MindNode produces:

You can also use sequential ATX-style headlines (## headline) to create topics, and you can mix in plain text and Markdown lists to create additional sub-nodes. The lowest level header becomes the top-level node. Another example with mixed formats:

# Brainstorming

## Outlining

### nvALT

Plain text lists

### OmniOutliner Pro

## Mind mapping

### Mindjet MindManager
### Curio

- internal mind maps
	- can convert to outlines
	- copy as OPML
- embed maps from other apps

### MindNode Pro

Export OPML

Turns into:

Basically, whatever format you outline in, the script should be smart enough to pick up on and convert for you. If you have a system that doesn’t work, let me know!

System Service

To use the script as a Service, download the zip file below, extract it and place it in ~/Library/Services (more info). Then, with outline text selected, right click and choose “Markdown to Mind Map” from the right-click menu.

Markdown to MindMap v1.3

Convert plain text, Markdown headlines and Markdown lists to indented lists for pasting into mind mapping apps

Published 08/18/13.

Updated 01/09/14. Changelog

DonateMore info…

PopClip extension

If you use PopClip, download the PopClip extension as part of the “Brett’s PopClip Extensions” package and double-click the Markdown2MindMap extension to install it. The source is available on in the GitHub repository.

Brett’s PopClip Extensions v1.25

A few PopClip extensions for Markdown writing and other useful tools

Published 11/30/14.

Updated 01/07/20. Changelog

DonateMore info…

This solves a gap in my workflow nicely, and hopefully it will be of use to others. I’ll post a more detailed workflow showing how I use it as part of my brainstorming process soon.

Brett Terpstra

Brett is a writer and developer living in Minnesota, USA. You can follow him as ttscoff on Twitter, GitHub, and Mastodon. Keep up with this blog by subscribing in your favorite news reader.

This content is supported by readers like you.

Join the conversation