尧图网络科技YAOTU DIGITAL 获取报价
获取报价
首页 / 资讯中心 / 文章详情

Typora中利用Mermaid绘制思维导图:语法与实战指南

发布时间:2026/9/16 7:48:37

资讯中心
01
ARTICLE

Typora中利用Mermaid绘制思维导图:语法与实战指南

Typora中利用Mermaid绘制思维导图:语法与实战指南
用Typora画思维导图这事我先摊个底Typora本身并没有一个叫“思维导图”的按钮它也不像XMind那样打开就是一个无限画布。但只要你用的是较新版本的Typora它的Mermaid图表引擎里内置了一套mindmap语法——你敲几行带缩进的文本编辑器里就能渲染出一棵以中心节点为根、向外层层发散的导图。这玩意儿最香的地方在于你的源头是纯文本是Markdown大纲改动结构只需要调整缩进不需要用鼠标拖来拖去。写技术笔记、整理学习框架、给文章配一张结构图它都够用。这篇文章我会从语法基础讲到实战改造再聊导出避坑和与其他工具的组合工作流。如果你平时用Typora记笔记又偶尔需要一张拿得出手的思维导图这篇应该能帮你把路走通。1. 先说清楚Typora里画导图的底层逻辑1.1 三个容易混淆的概念Markdown大纲、Mermaid渲染、原生导图很多人第一次听“Typora画思维导图”会默认成“像XMind那样拖拽节点”实际上完全是另一条路。这里有三层东西要理清。第一层是Markdown大纲。你在Typora里写#、##、###或者写无序列表的层级这本身就是一种树状结构。Typora左侧的“文档大纲”面板能把它展示成目录树。到了这一层你拥有的只是一份线性文本和一个侧边栏索引。第二层是Mermaid渲染。Mermaid是一种用文本描述图表的语言Typora对多款Mermaid图表类型做了实时渲染支持包括流程图、时序图、甘特图、类图、状态图、饼图等。从Mermaid 9.3开始语法里又多了一种类型就叫mindmap。你写一个mindmap代码块Typora直接把它渲染成树状导图这是标题里“Typora绘制思维导图”真正对应的技术路径。第三层是原生导图。这是指像XMind、MindMaster那些软件双击画布创建主题、拖动分支调整层级、一键切换布局。Typora做不到这些交互。如果你想要的“思维导图”是演示用的、要反复拖动整理、要做成几十个节点的大图请直接出门左转XMind。如果你要的只是把笔记的大纲结构可视化或者给文档配一张清晰的结构图Typora这套方案够用而且胜在快、轻、不用换工具。1.2 什么场景下用Typora画导图真正划算我自己的使用经验是下面这几类场景特别适合用Typora的mindmap。第一类是技术笔记的结构复盘。看完一本技术书、学完一门课脑子里有一堆知识点我会先用Markdown把目录结构、章节要点写成层级列表然后顺手复制到mermaid的mindmap代码块里一张知识结构图就出来了。整个过程不需要新建文件不需要切换窗口。第二类是文章配图。写技术博客经常需要一张“XX框架技术架构图”或者“XX知识体系图”。在Typora里写完导图代码导出HTML或PDF时它会自动渲染成图片。配文配图一步到位不用再去截图软件里二次加工。第三类是会议纪要或方案梳理。先抛出中心议题然后一层层拆子问题、子方案Markdown大纲本身就已经是很好的结构化表达mindmap只是换了一种更直观的呈现方式方便你在讨论时快速定位分支。不适合的场景也很明确需要展示复杂关联关系的图比如多个节点之间互相连线的网状结构mindmap做不了那得用Mermaid的flowchart需要做几十页演示级别的导图节点上要贴图片、加备注、做动画展开Typora也不合适。1.3 环境确认你的Typora能不能跑mindmap语法不是所有版本的Typora都能渲染mindmap语法。我见过有人用的是很旧的版本贴了mindmap代码块结果标题“mermaid”都没识别直接给了一段源代码。遇到这种情况先别怀疑语法先确认环境。Typora本质上只是调用了内置的Mermaid引擎来渲染图表旧版捆绑的Mermaid版本较低而mindmap语法是较晚才加入的。我的建议是如果你的Typora在1.4或更早的版本最好先升级到较新版本。升级完成后新建一个md文件把下面这段代码贴进去看效果mermaid mindmap root((测试)) 节点A 子节点1 子节点2 节点B如果能渲染出树状图说明你的版本支持mindmap语法。如果显示成代码块可以考虑升级Typora到新版本。 顺带提醒一句Typora现在已经转入付费授权模式官网下载的版本可以正常试用但过了试用期需要购买正版授权才能继续使用。我在这篇文章里说到的所有功能在正版最新版里都能跑没必要去找来路不明的老版本安装包老版本不仅功能残缺还可能不支持mindmap语法。 ## 2. 思维导图语法基础从一行中心节点开始 ### 2.1 最小可运行的mermaid mindmap 先给一个最小可运行的例子你在Typora里新建一个md文件输入 markdown mermaid mindmap root((Typora思维导图)) 基础语法 实战应用 导出与兼容渲染出来的效果是一棵以“Typora思维导图”为中心向外伸出三个分支的树状图。到这里你其实已经迈出第一步了剩下的都是在“基础语法”“实战应用”“导出与兼容”这几个分支下面继续加更深的子节点而已。 需要特别注意的是mindmap代码块的起始标记是mermaid但代码块内部的第一行必须是mindmap后面才是导图结构。少了那一行mindmapMermaid引擎就不知道你想画什么类型的图。 ### 2.2 缩进规则一个Tab就是一层子节点 mindmap语法的核心规则只有一条缩进表示层级。 看这个例子 markdown mermaid mindmap root((写作系统)) 输入 读书笔记 案例收集 加工 大纲 初稿 输出 博客文章 技术文档结构上“写作系统”是根节点下一层是“输入”“加工”“输出”再往下才是“读书笔记”“案例收集”这些叶子节点。层级关系完全由缩进控制一个Tab就等于往下一层。 我自己经常遇到的坑是同一层级的节点缩进不一致。比如“输入”下面两个子节点用的是Tab“加工”下面用的是两个空格渲染出来节点层级就会错乱。解决方法是统一用Tab键不要Tab和空格混着用。 另外mindmap语法对“多少层”没有硬性限制但层数太深渲染出来会显得拥挤。我的经验是超过四层就往回收一收把过深的层级摘出来单独做一张子图可读性会好很多。 ### 2.3 节点形状圆角、圆形、六边形与叶子 mindmap有不同的节点形状可以用区别主要靠括号类型来控制。 默认情况下一个节点就是圆角矩形比如刚才写的“基础语法”“实战应用”这些普通文本节点。如果你想突出某个节点可以把它包成圆形 markdown mermaid mindmap root((知识管理)) 方法论 工具选型 核心指标((核心指标))写法是在文本外面加双重括号((文本))渲染出来就是一个实心或较大的圆形节点在视觉上会明显比普通节点更突出适合用来标记关键结论、重要指标、核心目标。 还有一种六边形节点写法是双重花括号{{文本}} markdown mindmap root((项目规划)) 需求调研 技术选型 里程碑{{里程碑}}六边形节点的视觉存在感介于圆形和普通节点之间我一般用来标注阶段性的关键节点比如“里程碑”“评审”“上线”。它不会像圆形节点那么重但又有明显区分度。在较新版本的Mermaid语法里还支持叶子节点形状用[/文本/]和[\文本\]这样的写法。不过这个形状的渲染效果在不同版本里差异比较大有的人升级后发现不生效所以我建议在同文档里保持形状的类型统一不要一会儿圆形一会儿六边形一会儿叶子整张图看起来会乱。2.4 图标与描述文本表达语义的正确姿势mindmap语法支持两种增强写法一种是描述文本一种是图标。描述文本的写法是在节点文本后面加上:::然后跟一段描述。实际效果是给这个节点附加额外的说明文字。比如mindmap root((学习计划)) 基础阶段 语法入门 ::: 以官方文档为主注意:::前后要有空格我这里故意写成了基础阶段一行、语法入门 ::: 以官方文档为主一行这样描述文本会挂在对应的子节点后面渲染出来节点下方会多出一段灰色小字。图标写法使用::icon()括号里填图标名。比如mindmap root((学习计划)) 基础阶段 ::icon(fa fa-book) 实战阶段 ::icon(fa fa-code)图标从FontAwesome里取常见的fa fa-book、fa fa-code、fa fa-check都能用。需要注意图标渲染依赖本地的字体和Mermaid版本支持在Typora里如果图标显示不出来通常就是版本不支持这时候删掉就好不用深究。我的建议是描述文本和图标都克制使用。一张导图上全是图标跟一张导图上全是文字一样灾难。图标适合在每一级只给一两个关键节点加上起到视觉锚点的作用就够。3. 实例拆解一篇学习笔记改成思维导图的全过程3.1 原始笔记与目标导图的结构映射空讲语法没有意义我拿一个真实的场景来走一遍流程。假设我之前写了一篇关于“如何学习网络基础”的Markdown笔记原始结构是这样的# 网络基础学习笔记 ## 一、网络模型 ### OSI七层模型 ### TCP/IP四层模型 ## 二、核心协议 ### TCP - 三次握手 - 四次挥手 ### UDP - 无连接 - 报文传输 ## 三、常见设备 ### 路由器 ### 交换机 ### 网关 ## 四、排查工具 ### ping ### traceroute ### telnet / nc这是一份典型的层级笔记作为文档它没问题但如果你想快速向别人展示“网络基础学习包含哪些模块”或者想放进PPT里当一页知识结构图纯Markdown就不够直观了。这时候我会把它的结构映射成mindmap。映射的逻辑很简单至少二级以上的大节标题变成导图的一个主分支三级以下的标题变成子分支列表项变成叶子节点。映射完成后整棵树的根节点就是主题“网络基础学习笔记”。3.2 完整代码示例与效果解读下面就是我改造后的完整mindmap代码mermaid mindmap root((网络基础)) 网络模型 OSI七层模型 TCP/IP四层模型 核心协议 TCP 三次握手 四次挥手 UDP 无连接 报文传输 常见设备 路由器 交换机 网关 排查工具 ping traceroute telnet / nc渲染出来你会看到中心是“网络基础”四个一级分支分别是“网络模型”“核心协议”“常见设备”“排查工具”。TCP和UDP作为“核心协议”的二级分支三次握手、四次挥手又挂在了TCP下面。整张图层次感非常清楚一眼就能看出来整个知识体系长什么样。 这里有个细节值得说原来的笔记里“OSI七层模型”和“TCP/IP四层模型”是三级标题但改造后它们挂在了“网络模型”下面这就出现了“同一内容在不同表达形式下层级不完全一样”的情况。处理原则是不要机械照搬标题层级而是按照“谁是谁的一部分”来定父子关系。只要逻辑通顺导图的层级可以跟笔记的标题层级不完全一致。 ### 3.3 大纲调整技巧什么是好的缩进结构 做思维导图的过程里真正花时间的不是敲代码而是调整大纲结构。我发现几个判断标准特别有用。 第一个标准是“每个节点都应该能被一句话说清楚”。如果一个节点文本长到要换两行说明它可能不该是一个节点应该拆成父节点加几个子节点。比如“TCP三次握手与四次挥手的区别”这个写法作为单一节点就很蠢拆成“TCP”下面挂“三次握手”和“四次挥手”两个子节点信息密度反而更高。 第二个标准是“同级节点的抽象层次应该一致”。还是用上面的例子“网络模型”下面挂“OSI七层模型”和“TCP/IP四层模型”这两个是同类东西。如果你在“核心协议”下面挂了“TCP”又挂了“三次握手过程”那层级就乱了“TCP”是协议“三次握手”是TCP的一个行为两者不在同一个抽象层。 第三个标准是“叶子节点的数量要克制”。我见过有人把一篇文章的每个句子都拆成一个节点最后画出来的图比文章还难读。导图的价值在于让人快速看到主干不是在节点里堆砌细节。细节留给正文导图只放关键词。 ### 3.4 批量文本转导图的快捷做法 如果你本来就用Markdown写大纲把大纲转成mindmap其实有很机械的步骤做一次就熟了。 快捷键是选中文档里的大纲部分用Tab和ShiftTab先调整缩进然后复制到一个新的mermaid代码块里。如果你用的是VS Code还能装一些“Markdown to Mermaid”的扩展自动把标题层级转成缩进列表这一步可以省掉不少重复劳动。 还有一个土办法我经常用先写成无序列表让每一层的“缩进层级组”都对齐再把- 替换成空字符剩下就全是缩进和文字。这个方法不需要任何插件在Typora里用查找替换就能完成。 ## 4. 实用增强让导图真正可读而不是“像导图” ### 4.1 通过形状做好节点分区 一张十几二十个节点的导图如果所有节点都是圆角矩形读起来其实相当费力。你会觉得哪里都是重点又哪里都不是重点。我在做了几张图之后慢慢养成了一个习惯用节点形状来做“语义分区”。 通常我是这么用的 | 节点类型 | 形状写法 | 用途 | |---------|----------|------| | 根节点 | ((根节点)) | 整棵树的主题保持唯一 | | 一级分类 | 默认文本 | 所有的主分支比如“输入”“加工”“输出” | | 关键节点 | ((关键节点)) | 里程碑、核心结论、风险点 | | 阶段节点 | {{阶段节点}} | 项目阶段、检查点、评审点 | 这么一做读者扫一眼图的形状分布就能知道哪里是普通内容哪里是重点。比如“项目规划”的导图里普通分支用默认圆角矩形几个关键交付节点用圆形几个评审节点用六边形层次感立马就出来了。 不过要提醒一点形状是有限的不要试图用形状来表达特别复杂的语义。一张图里有两三种形状就够了超过三种视觉上就凌乱了。 ### 4.2 适度使用图标与描述文本 图标和描述文本是给导图增加信息密度的两个工具但我发现大多数人一开始都会用过头我也是。 图标方面我现在的用法是在根节点或者一级分支上加一个用来快速传达该分支的主题。比如一个“旅行计划”导图“交通”分支加一个fa fa-plane“住宿”分支加一个fa fa-bed“景点”分支加一个fa fa-camera。这样这张图从头扫到尾你不需要读每个节点的文字靠图标就能大致了解每个分支在说什么。 描述文本则更适合用在需要补充说明的地方比如某个分支后面挂一句“以官方文档为准”某个节点后面挂一句“此项延期风险高”。它跟图标的区别是图标是主题化的标签描述文本才是正文的补充。在Typora里描述文本渲染出来会比节点文字小一号颜色也更浅天然适合做辅助信息。 ### 4.3 颜色、主题与背景控制你的预期 Typora对mindmap的样式控制是有边界的。如果你想像XMind那样自由改每个分支的颜色、改连接线的样式、给节点加底色边框在Typora里基本做不到。mindmap的配色由Mermaid主题决定你只能通过修改Typora的自定义CSS来影响部分样式但对单个节点级别的精细控制支持有限。 我的建议是不要在Typora里死磕导图美化。它的定位是“快速、够用、结构化”不是“精美设计”。你要的是把信息关系表达清楚而不是做一张海报。真需要精美导图用第6章讲到的方案把导图导出后丢给专业工具或设计软件处理成本低得多。 ## 5. 导出、排版与演示中的避坑记录 ### 5.1 PDF和HTML导出后导图尺寸失衡 这是我在Typora里画导图时踩过最大的坑。在编辑器里看一张mindmap大小适中位置居中一切都很完美。导出PDF之后图要么被压缩成一团看都看不清要么溢出页面边界被截断。 原因是Typora的Mermaid渲染在编辑器内是动态适应窗宽度的导出PDF时它按页面宽度重新排版而Mindmap这种树状图在缩小后特别容易糊成一团。解决办法根据使用场景分几种 - 如果只是自己看导出HTML通常比导出PDF效果好浏览器里可以用缩放。 - 如果必须用PDF尽量让导图的宽度控制在页面宽度的50%以内导出后图不会太塌。 - 如果你已经把导图嵌在文章里导出就要有心理准备这张图可能不适合直接打印建议把导图单独导出成PNG再插入。 Typora还支持右键Mermaid图区域“导出为图片”这会直接生成一张渲染好的PNG。我常用的是这个方式因为导出的图片分辨率由窗口大小决定可以先把窗口拉大一点再导出图会更清晰。 ### 5.2 中文换行和字体选错的烦恼 mindmap对中文的支持总体是好的但有一个细节特别烦人节点文本如果没有空格分隔中文长了之后在某些版本里不会自动在合适的位置断行导致节点被拉得很宽或者换行很丑。 我踩过的坑是导图里写了一个比较长的短语比如“基于微服务架构的订单系统设计方案”在Typora里看还好导出PDF后这个节点被撑成了一个大长条整张图的结构都变形了。 解决办法有两个方向。一个是手动在文本里加入空格或br/标签来控制换行比如 markdown mindmap root((订单系统)) 设计方案 基于微服务架构br/的订单系统设计另一个是减少单个节点的字数把超过十个字的节点拆成父节点加子节点的组合。不管哪种方式最终目标都是让每个节点在渲染时保持短小紧凑。字体方面如果你导出的PNG里中文显示成了方块通常是因为导出环境缺少对应的中文字体。Typora在Windows和macOS下一般会自动继承系统中文字体但在某些Linux环境或远程环境下可能会缺字体。遇到这个问题去系统里安装一个中文字体包就能解决。5.3 “无法折叠/缩放”的交互性局限很多人第一次在Typora里看到渲染好的mindmap会下意识用鼠标去点击分支想折叠起来。Typora渲染的Mermaid图默认是不带交互能力的。这意味着不能点击展开收起子节点。不能拖动节点改变位置。不能按住某个区域放大缩小。在导出后的HTML/PDF里这些交互一样都不存在。所以如果你准备用Typora做的导图去讲课、做演示现场需要逐层展开讲解的话一定要提前想好替代方案。我自己的做法是演示时先用整体导图讲结构如果某个分支要深入讲就单独把那个分支再画成一张独立的mindmap放在后面的幻灯片里。要想获得可点击展开的交互式导图请转到第6章提到的Markmap工具那是另一条路线。6. 进阶工作流Typora和Markmap、XMind怎么配合6.1 Markmap大纲一键变身可交互导图如果你舍不得身边这套Markdown工作流又想要可交互的导图Markmap是比XMind更顺手的补位方案。Markmap是一个能将Markdown大纲实时渲染成交互式思维导图的工具。它的核心逻辑是你能写Markdown标题层级它就能根据这个层级自动生成一棵可点击展开/折叠的树形导图。这跟Typora的mindmap相比交互体验完全是另一个级别节点可以折叠、可以展开、支持鼠标缩放拖拽。使用方式是先在Typora里把大纲写成标准Markdown标题结构然后复制到Markmap的网页版粘贴进去它自动生成一张可交互导图。如果你是VS Code用户可以直接装“Markmap Preview”插件左边写Markdown右边实时预览导图体验非常丝滑。Markmap还有一个优势是稳定支持中文换行。它本质上是基于浏览器排版中文字体的断行处理比Mermaid引擎要自然得多。所以如果你的导图文本里有大量中文长句Markmap往往比Typora的mindmap渲染得更好看。6.2 什么时候请出XMind虽然我在前文说了很多Typora画导图的好处但有一点必须认账如果是正儿八经的、要持续迭代的、动辄几百个节点的大导图XMind依然是最稳的选择。什么时候我建议你从Typora切到XMind第一导图是长期维护的“知识库地图”。比如你负责一个大型项目要对全组同事展示整个系统模块划分这种图每次版本更新都要改XMind的文件格式和交互编辑效率远高于文本形式。第二导图需要输出成高精度的演示素材。XMind导出PNG时可以设置极高的像素倍率还能自由调整布局、换主题、加备注导出的效果直接就能上台。Typora的mindmap精修空间有限达不到这个程度。第三导图里有很多“跨分支关联”。XMind里有一个功能是在两个分支之间画出一条连线表达它们之间存在联系。这种网状结构是mindmap天生不支持的你只能在文本里用括号备注画不出直观的连线。6.3 我现在的组合方案与理由这套组合方案我用了一两年已经比较稳定了。日常笔记、技术总结、课程学习统统先用Typora写Markdown。写的过程中自然会通过标题层级把结构理清楚。如果后续只需要给文档配一张结构图我直接在Typora里写好mindmap代码块渲染完就没别的事了。如果这张导图要给别人演示需要现场展开交互我就把Markdown大纲复制到Markmap网页版导出链接或录制预览画面。如果是一张长期维护的、面向团队的大图我会把Markdown大纲转成XMind文件用XMind做后续的迭代再走XMind的导出流水线出正式交付物。这个组合的关键逻辑是内容永远先以Markdown文本存在结构调整在文本阶段完成导图只是不同呈现阶段的一个视图。Typora扮演的不是导图工具而是“内容结构化编辑器”。这样无论最后落到哪个导图软件上你都不会被绑死在某一个工具的格式里。我实际操作下来体会到最能提升效率的不是学会某个工具的所有技巧而是想清楚“哪一步该用哪个工具”。Typora的mindmap适合内容生成阶段Markmap适合交互展示阶段XMind适合长期维护和重度美化阶段。想清楚这一点之后碰到“需要画一张思维导图”的需求我基本不再焦虑选什么工具的问题。
02
RELATED NEWS

相关资讯

更多网站建设与数字化升级内容

03
WHY YAOTU

想打造同款高转化官网?

懂行业、懂生意,从建站到增长一站式陪跑

场景化定制

不做模板站,围绕你的业务场景量身设计,小众不撞款。

营销型架构

以转化目标组织内容与路径,让官网真正带来询盘。

全周期服务

设计、开发、运营、运维一体,上线只是开始。

免费获取你的建站方案

留下需求,专属顾问 24 小时内为你输出方案建议。