news 2026/8/29 16:07:52

Mermaid 实践手册:五分钟上手文本驱动图表渲染

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
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 class="mermaid"> flowchart TD 订单创建 --> 风控校验 风控校验 -->|通过| 生成运单 风控校验 -->|拦截| 人工复核 </pre> <script type="module"> import mermaid from './node_modules/mermaid/dist/mermaid.core.mjs'; mermaid.initialize({ startOnLoad: true }); // 关键项:页面加载后自动渲染 </script>

pre.mermaid里的文本就是图表定义,startOnLoad: true会让它在 DOM 就绪后自动渲染所有带这个 class 的元素。如果页面里只有一张图,这两行就是全部接入成本。

三类常见需求,分开看

先别急着背语法,按"你要解决什么问题"分三组更省事。

理清流程:flowchart

描述审批、工单、状态流转这类"先做什么、后做什么":

节点形状由括号决定:[]矩形、{}判断、()圆角、[( ]圆柱,基本够用。

描述交互:sequenceDiagram

跨系统调用的顺序、同步还是异步,时序图比流程图更准确:

虚线箭头表示返回消息,loop块表达重试逻辑,这是写接口文档时最常用的两个语法。

呈现结构与计划:ER、类图、甘特图

表结构用 ER 图,对象模型用类图,排期用甘特图。它们语法各自独立,但写法风格一致:第一行声明图类型,后面逐行写定义。

速查一下最常用的几种:

图表名一句话用途典型场景上手难度
流程图表达步骤与分支审批流、工单流
时序图表达调用顺序接口文档、联调
类图表达结构关系对象建模、SDK 设计
状态图表达状态迁移订单状态机
ER 图表达表与关系数据库评审
甘特图表达任务排期版本计划

把 Mermaid 接进自己的项目

前端框架里用 render API

React、Vue 这类场景一般不靠startOnLoad,而是手动渲染。官方推荐 v10 起的mermaid.render

import 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 / neutral
securityLevel脚本安全策略strict / loose / antiscript
startOnLoad加载后是否自动渲染true / false
flowchart.useMaxWidth流程图是否自适应宽度true / false
fontFamily全局字体指定中文友好字体栈
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),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/8/29 16:05:48

Godot 引擎 4 步上手:从零到发布你的第一个 2D/3D 游戏

Godot 引擎 4 步上手&#xff1a;从零到发布你的第一个 2D/3D 游戏 【免费下载链接】godot Godot Engine – Multi-platform 2D and 3D game engine 项目地址: https://gitcode.com/GitHub_Trending/go/godot 想做一个能跑起来的小游戏&#xff0c;却卡在第一步&#xf…

作者头像 李华
网站建设 2026/8/29 16:04:29

DeepSeek涨价后:缓存命中率与模型路由驱动的API成本控制指南

最近开发者群里的热门话题&#xff0c;从“DeepSeek 又出新模型”变成了“DeepSeek 又涨价了”。紧跟着的问题也很有画面感&#xff1a;CC Switch 里的配置要不要改&#xff1f;Codex 接入 DeepSeek 的成本还能不能扛&#xff1f;VSCode 里那套 AI 插件是不是得换个模型后端&am…

作者头像 李华
网站建设 2026/8/29 15:59:00

8款高效AI论文平台横向实测,本硕博避坑必备指南

前言&#xff1a;AI 写论文乱象频发&#xff0c;实测 8 款工具理清适配边界 每到毕业季&#xff0c;本科生、硕博生都会集中寻找 AI 论文辅助工具&#xff0c;市面各类写作软件层出不穷。然而&#xff0c;这些工具普遍存在几类硬伤&#xff1a;虚假参考文献、无法匹配本校格式、…

作者头像 李华
网站建设 2026/8/29 15:55:48

OpenSEO新手教程:从创建项目到查看关键词数据的完整指南

OpenSEO新手教程&#xff1a;从创建项目到查看关键词数据的完整指南 【免费下载链接】open-seo Open source alternative to Semrush and Ahrefs 项目地址: https://gitcode.com/GitHub_Trending/op/open-seo OpenSEO 是一款开源的 SEO 工具&#xff0c;被视为 Semrush …

作者头像 李华
网站建设 2026/8/29 15:54:24

C++ vector动态数组:从核心原理到高效使用指南

1. 项目概述&#xff1a;为什么vector是C初学者的“定心丸”&#xff1f; 刚接触C那会儿&#xff0c;最让我头疼的不是指针&#xff0c;而是处理一堆数据。比如要记录一个班级50个学生的成绩&#xff0c;用C语言的老办法&#xff0c;你得先声明一个固定大小的数组 int scores[…

作者头像 李华