Mermaid
Mermaid 是一种基于文本的图表绘制工具,通过类似 Markdown 的语法创建流程图、时序图、甘特图等多种图表。核心优势是"图表即代码"——用纯文本描述图表结构,版本控制系统可以直接追踪变更,无需维护图片文件。适用于技术文档中的架构图、流程说明、API 交互序列等场景。
图表类型
流程图 是使用频率最高的类型:节点形状表达语义(矩形=过程、菱形=判断),连线表达流转方向,subgraph 划分模块,适合业务流程、系统流程说明。
序列图 描述对象间交互的时间顺序:参与者竖线 + 消息横线,配合 loop/alt/opt/par 结构块表达循环、分支、并行,是 API 交互文档的标准图示。
类图 描述类的结构与关系:成员定义静态结构,<|-- 继承、*-- 组合、o-- 聚合、..> 依赖、..|> 实现,适合架构设计与代码评审。
其他图表 覆盖低频场景:状态图(状态流转)、甘特图(项目进度)、饼图(占比)、用户旅行图(体验流程)——需要时按分册语法直接使用。
适用场景
| 场景 | 推荐图表类型 | 原因 |
|---|---|---|
| 业务流程说明 | 流程图 | 直观展示流程走向和判断分支 |
| API 交互序列 | 序列图 | 清晰展示请求-响应时间顺序 |
| 系统架构设计 | 类图 | 展示类结构和依赖关系 |
| 项目进度管理 | 其他图表(甘特图) | 展示任务时间安排和依赖 |
| 对象状态流转 | 其他图表(状态图) | 展示状态转换条件和路径 |
FAQ
Q: Mermaid 和 draw.io 有什么区别? A: Mermaid 用纯文本描述图表("图表即代码"),版本控制系统可以直接追踪变更,无需维护图片文件;draw.io 是可视化拖拽绘图,操作直观但生成的是图片或 XML 文件,不便版本管理。Mermaid 适合嵌入 Markdown 文档,draw.io 适合复杂布局的独立图表。
Q: Mermaid 支持哪些渲染环境? A: GitHub、GitLab、Obsidian、Typora、Notion、飞书文档等主流平台都原生支持 Mermaid 渲染。不支持的环境可以用 Mermaid Live Editor 导出为 SVG/PNG 图片。
Q: 流程图的方向 TB 和 LR 有什么区别? A: TB(Top to Bottom)从上到下布局,适合流程步骤多、逻辑线性的场景;LR(Left to Right)从左到右布局,适合宽度大于高度的流程。最常用的是 TB 和 LR,根据文档排版空间选择。
跳出 Mermaid 本身看:Markdown 是它的载体(Mermaid 代码块嵌在 Markdown 中渲染);配合 Git 的版本管理,文档的"文+图"全部可追踪——这正是 效率工具 体系里文档写作的黄金搭档。