Mermaid 实践手册:五分钟上手文本驱动图表渲染 Mermaid 实践手册五分钟上手文本驱动图表渲染【免费下载链接】mermaidGeneration of diagrams like flowcharts or sequence diagrams from text in a similar manner as markdown项目地址: https://gitcode.com/GitHub_Trending/me/mermaid周五下午的架构评审你被要求画一张支付调用链图。翻了半小时旧文档发现图还是上个迭代的样子。Mermaid 解决的就是这类问题它是用类 Markdown 文本描述图表、再渲染成 SVG 的 JavaScript 工具图直接放在代码仓库里改动和 diff 都能走正常的提交流程。五分钟出图两步装好 Mermaid打开终端先把依赖装进来npm install mermaid # 也可以从源码构建 # git clone https://gitcode.com/GitHub_Trending/me/mermaid再写一个最小页面保存后用任意静态服务器打开就能看到流程图pre classmermaid flowchart TD 订单创建 -- 风控校验 风控校验 --|通过| 生成运单 风控校验 --|拦截| 人工复核 /pre script typemodule import mermaid from ./node_modules/mermaid/dist/mermaid.core.mjs; mermaid.initialize({ startOnLoad: true }); // 关键项页面加载后自动渲染 /scriptpre.mermaid里的文本就是图表定义startOnLoad: true会让它在 DOM 就绪后自动渲染所有带这个 class 的元素。如果页面里只有一张图这两行就是全部接入成本。三类常见需求分开看先别急着背语法按你要解决什么问题分三组更省事。理清流程flowchart描述审批、工单、状态流转这类先做什么、后做什么节点形状由括号决定[]矩形、{}判断、()圆角、[( ]圆柱基本够用。描述交互sequenceDiagram跨系统调用的顺序、同步还是异步时序图比流程图更准确虚线箭头表示返回消息loop块表达重试逻辑这是写接口文档时最常用的两个语法。呈现结构与计划ER、类图、甘特图表结构用 ER 图对象模型用类图排期用甘特图。它们语法各自独立但写法风格一致第一行声明图类型后面逐行写定义。速查一下最常用的几种图表名一句话用途典型场景上手难度流程图表达步骤与分支审批流、工单流低时序图表达调用顺序接口文档、联调低类图表达结构关系对象建模、SDK 设计中状态图表达状态迁移订单状态机中ER 图表达表与关系数据库评审中甘特图表达任务排期版本计划低把 Mermaid 接进自己的项目前端框架里用 render APIReact、Vue 这类场景一般不靠startOnLoad而是手动渲染。官方推荐 v10 起的mermaid.renderimport mermaid from mermaid; mermaid.initialize({ startOnLoad: false }); // 关掉自动渲染自己控制时机 const { svg } await mermaid.render(订单流程图, 编辑器里的文本); container.innerHTML svg;预期效果编辑器内容一变就重新调用一次图跟着更新。Markdown 文档站里直接写大多数静态文档站VitePress、Docusaurus 等都有 mermaid 插件开好后在 Markdown 里直接嵌围栏代码块![mermaid](https://web-api.gitcode.com/mermaid/svg/eNpLT8wrKeFSUCjJLMlJVXg2Zf2T3TOeTdn5smHBy_ae5yu6ny-aCJQtTk0uyczPU3iyo-HZnPlAgafrd77YsuzF9onPOncqWKXk56XqKJQY6igYGRiZ6BoY6xoA2YYGKQC0Sip4)保存后刷新页面围栏代码块就地渲染成图无需任何额外配置。CI 里批量导出图片要给 PPT、邮件、Wiki 用 PNG 时用官方 CLI 包导出npx mermaid-js/mermaid-cli -i 订单流程.mmd -o 订单流程.svg # 需要高清位图时追加 --scale 2放进发布流水线图表和代码一起构建、一起更新评审 PPT 里的图永远不会是上个版本的。常用配置速查配置项作用常用值theme整体配色default / forest / dark / neutralsecurityLevel脚本安全策略strict / loose / antiscriptstartOnLoad加载后是否自动渲染true / falseflowchart.useMaxWidth流程图是否自适应宽度true / falsefontFamily全局字体指定中文友好字体栈flowchart.curve连线弯曲方式basis / linear 等避坑清单新手最常碰的五件事渲染出来是空白控制台有报错。根因定义文本里有语法错误报错会带出行号。 解法按行号修文本大段定义可以先丢进官方 Live Editor 验证再粘回项目。节点文字溢出边框、被裁掉。根因SVG 默认按容器宽度缩放宽图被压扁。 解法flowchart.useMaxWidth: false让图按内容撑开。点击跳转不生效怀疑版本问题。根因默认securityLevel是 strict点击、脚本类交互被拦。 解法确认是内部可信内容后改为loose并在代码里注释说明理由。同页多张图ID 冲突或样式串台。根因多个图共用自动生成的标记 ID。 解法开启deterministicIds: true必要时配deterministicIDSeed固定布局。中文显示成方框或衬线字体。根因默认字体栈对中文支持有限。 解法fontFamily指定PingFang SC, Microsoft YaHei, sans-serif这类栈。几个进阶用法一句话说明适用条件图超过 15 个节点时用subgraph分层比继续加连线可读得多。全公司统一视觉时用themeVariables覆写主色别每个图单独调。需要给设计稿交付精确尺寸时用 CLI 的--scale而不是浏览器截图。追求 CI 截图稳定时deterministicIds加固定 seed布局才可复现。评审那天你不再翻旧文档了——直接把.mmd文件推到仓库流水线里导出最新的 SVG 贴上 PPT。它适合把图当代码管的团队如果你需要的是像素级自由排版文本语法反而不如专业绘图工具顺手。【免费下载链接】mermaidGeneration of diagrams like flowcharts or sequence diagrams from text in a similar manner as markdown项目地址: https://gitcode.com/GitHub_Trending/me/mermaid创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考