当前位置: 首页 > news >正文

Mermaid:用 Markdown 写图表,文档告别画图死

文章目录

  • Mermaid:用 Markdown 写图表,文档告别"画图死"
    • 为什么需要 Mermaid
    • 支持哪些图表
    • 实际体验
    • 适合谁用

Mermaid:用 Markdown 写图表,文档告别"画图死"

写文档最烦的就是画图。好不容易画好一张流程图,需求改了,图又得重画。改着改着,图就比代码落后了几个版本,最后干脆没人维护了。Mermaid 就是来解决这个问题的——用写 Markdown 的方式生成图表,改需求就改几行文字的事。

Mermaid 是一个 JavaScript 写的图表工具,GitHub 上已经积累了 89,000+ Star。它的用法很直观:用类似 Markdown 的文本描述图表结构,Mermaid 自动渲染成 SVG 或 HTML。流程图、时序图、甘特图、类图、状态图、饼图,甚至 Git 分支图都能搞定。

举个例子,画个流程图只要几行:

flowchart LR A[Hard] -->|Text| B(Round) B --> C{Decision} C -->|One| D[Result 1] C -->|Two| E[Result 2]

看起来和写 Markdown 列表差不多,但渲染出来是一张规范的流程图。

为什么需要 Mermaid

文档和代码脱节是软件行业的顽疾。画图成本高,更新成本更高,于是图表就成了文档里最先腐烂的部分。Mermaid 的思路是把图表变成文本——文本可以版本控制、可以 diff、可以嵌入代码注释、可以集成到 CI/CD 流程里。

比如你在 GitHub 上写 README,直接用 mermaid 代码块就能渲染图表:

sequenceDiagram Alice->>John: Hello John, how are you? John-->>Alice: Great!

GitHub 在 2022 年已经原生支持 Mermaid 渲染,不需要任何插件。

支持哪些图表

Mermaid 目前支持的图表类型覆盖了日常开发的大部分场景:

  • 流程图(Flowchart):最基本的流程图,支持方向、分支、子图
  • 时序图(Sequence Diagram):展示对象之间的交互顺序,API 调用链、协议交互都能画
  • 甘特图(Gantt):项目排期、任务依赖,适合项目管理
  • 类图(Class Diagram):UML 类关系,Java/Python 项目常用
  • 状态图(State Diagram):状态机、工作流
  • 饼图(Pie Chart):数据占比,简单直观
  • Git 分支图(Git Graph):可视化 Git 分支合并历史
  • C4 图:软件架构的层级描述,从系统上下文到容器、组件

每种图表都有在线编辑器可以实时预览,语法也不复杂,花 10 分钟看看例子就能上手。

实际体验

Mermaid 的语法设计得很克制。学过 Markdown 的人基本看一眼就能写。官方提供了 Live Editor,可以在浏览器里边写边看效果,零安装成本。

生产环境使用的话,可以直接引入 npm 包,或者在 CI 里用命令行工具把 .mmd 文件批量转成图片。文档项目可以统一用文本维护图表,再也不用手动截图替换了。

当然也有局限。复杂布局的图表(比如大型系统架构图)还是用专业绘图工具更顺手。Mermaid 的自动布局引擎适合中等复杂度的图表,太复杂的话布局会变得难以控制。但对于日常文档中 80% 的场景——流程图、时序图、甘特图——它完全够用。

适合谁用

  • 写技术文档的人:把图表纳入版本管理,告别文档腐烂
  • 项目经理:甘特图和流程图直接用文本维护,改排期不用重画
  • 开源项目维护者:README 里的架构图随代码一起更新
  • 任何想减少重复劳动的人:画图是个体力活,让机器干更划算

Mermaid 被 JS 开源奖评为 2019 年"最激动人心的技术应用",从结果看实至名归。它解决的是文档领域一个小而痛的缺口,方案也足够优雅——让图表回归文本,让文档重新跟上代码。

“最激动人心的技术应用”,从结果看实至名归。它解决的是文档领域一个小而痛的缺口,方案也足够优雅——让图表回归文本,让文档重新跟上代码。

http://www.jsqmd.com/news/1152967/

相关文章:

  • 鸿蒙新特性:Radio 单项选择组件——构建健康评估问卷
  • kconfigDetector错误类型详解:从type error到unmet dependence的完整解析
  • 冒泡排序:从经典到大数据,一文掌握多种解法与演进
  • 高光谱拼接算法(一)扫推式成像和航带拼接算法
  • okbiye 一站式毕业论文 AI 写作板块,解决毕业生全流程论文撰写难题
  • 计算机毕业设计之旅行社网站的设计与实现
  • 2026年写小说软件排行榜:实测7款ai写小说工具,小说软件生成器哪家强?
  • 手机号码定位查询系统:3步实现号码归属地精准查询的完整指南
  • Linux字符设备驱动开发实战:从Hello World到完整驱动框架
  • B站视频下载神器:3分钟掌握BiliDownloader的完整使用指南
  • H2database 2.1.210 以下版本漏洞剖析:从JNDI注入到CVE-2022-23221的完整攻击链
  • 开源电子课本解析工具:如何轻松获取国家中小学智慧教育平台PDF教材
  • 终极指南:高效获取国家中小学智慧教育平台电子课本的完整解决方案
  • TMC7300与PIC18F86J15构建的高效有刷直流电机控制方案
  • 考个NPDP证书要花多少钱?这笔账,算清楚再报名!
  • 导航树有没有在表单的“表单加载后”事件中加载导航树第一个节点的API
  • 3步免费获取国家中小学智慧教育平台电子课本PDF:教师必备的终极下载指南
  • Scikit-learn K-Means 实战:3 个关键参数调优与 2 种评估指标对比
  • 从软件到认知:WSaiOS智能操作系统的架构范式革命
  • RTSP 拉流与录制:IPC 摄像头本地录像完整方案
  • SRWE窗口编辑器完整指南:如何突破Windows窗口限制的终极解决方案
  • 不同AI工具在选股配套信息整理、复盘记录中的适配环节分析
  • Cursor vs Claude Code:从LLM底层token调度策略到IDE插件沙箱隔离机制,一文拆解二者在企业代码合规性审计中的致命差异
  • 专业级QMC音频解密实战指南:高效转换QQ音乐加密文件
  • Hermes智能体框架实战:从部署到验证持久记忆与技能自进化
  • 多门店小程序怎么做?门店管理、员工权限和会员数据对比
  • 参数服务:让配置与参数管理更安全、更敏捷
  • 计算机毕业设计旅游社区管理系统
  • 江苏与上海数据中台公司全景盘点:长三角数据治理生态图谱、厂商对比与选型指南 2025
  • SOC审计的技术框架:数据服务商的内控体系建设指南