Mermaid 流程图语法:节点、连线与分支怎么写
Mermaid 流程图的结构只有三件事:声明方向、定义节点、连起来。语法看起来像伪代码,但它是纯文本——这意味着流程图可以进 git、可以 code review、可以跟着代码一起演进。
最小可用示例
graph TD
A[开始] --> B{是否登录}
B -->|是| C[进入首页]
B -->|否| D[跳转登录页]
D --> B
graph TD 声明方向(Top-Down)。A[开始] 定义一个矩形节点,B{是否登录} 是菱形(判断)。箭头后的 |是| 给连线加标签。
把这五行粘进左侧就能出图,不需要任何配置。
节点形状与语义
A[文本]:矩形,普通步骤。A(文本):圆角矩形,开始/结束。A{文本}:菱形,判断。A((文本)):圆形,连接点。A[(文本)]:圆柱,数据库。A>文本]:旗帜形,少见但可用于标注。
形状不是装饰:判断用菱形、数据存储用圆柱,读者不看文字也能猜到节点性质。全用矩形会让流程图失去可读性。
方向与布局
graph TD 从上到下,LR 从左到右,BT 从下到上,RL 从右到左。
方向选错会让图变成一条又长又窄的带子。流程步骤多、分支少时用 TD;横向链路(如数据管道、请求链路)用 LR。
布局由引擎自动排,不能手动拖节点位置。需要精确控制位置时,Mermaid 不是合适的工具——它擅长「结构清晰」,不擅长「视觉排版」。
子图与分组
graph LR
subgraph 前端
A[页面] --> B[请求层]
end
subgraph 后端
C[网关] --> D[服务]
end
B --> C
subgraph 把节点分组并画出边框,适合表达「这几步属于同一个系统」。分组太多会显得杂乱,两三层足够。
上面这些都不用装软件,也不用注册:打开页面就能用。
打开流程图与 Mermaid 图表生成 →常见问题
节点文字里有括号或冒号会报错吗?
会。括号、引号、花括号在语法里有含义,文字里出现时要用双引号包起来,如 A["函数 f(x)"]。冒号一般安全,但加引号更稳。
能让两个节点之间的连线不交叉吗?
布局由引擎自动计算,无法手动指定走线。减少交叉的办法是调整节点声明顺序、拆分子图、或换方向(TD 与 LR 互换)。
流程图能链接到外部页面吗?
strict 模式下图形内的链接与点击交互被限制,不会执行也不会跳转。这是安全取舍——粘贴来路不明的源码时不该能触发跳转。