相关文档
语句末尾分号是可选的。%% 行注释。
流程图
语法说明
图表方向
Mermaid 支持多种图表的方向,语法如下:
| 1 | graph 方向描述 | 
其中“方向描述”为
| 用词 | 含义 | 
|---|---|
| TB | 从上到下 | 
| BT | 从下到上 | 
| RL | 从右到左 | 
| LR | 从左到右 | 
节点定义
即流程图中每个文本块,包括开始、结束、处理、判断等。Mermaid 中每个节点都有一个 id,以及节点的文字。
| 表述 | 说明 | 
|---|---|
| id[文字] | 矩形节点 | 
| id(文字) | 圆角矩形节点 | 
| id((文字)) | 圆形节点 | 
| id>文字] | 右向旗帜状节点 | 
| id{文字} | 菱形节点 | 
需要注意的是,如果节点的文字中包含标点符号,需要时用双引号包裹起来。
另外如果希望在文字中使用换行,请使用
替换换行
节点间的连线
| 表述 | 说明 | 
|---|---|
| > | 添加尾部箭头 | 
| - | 不添加尾部箭头 | 
| -- | 单线 | 
| --text-- | 单线上加文字 | 
| == | 粗线 | 
| ==text== | 粗线加文字 | 
| -.- | 虚线 | 
| -.text.- | 虚线加文字 | 
子图表
使用以下语法添加子图表
| 1 | subgraph 子图表名称 | 
对 font awesome 的支持
使用 fa: #图表名称# 的语法添加 fontawesome。
| 1 | graph TD; | 

方向
- TB/TD - top bottom
- BT - bottom top
- RL - right left
- LR - left right
| 1 | graph TB | 

节点
| 1 | graph LR | 

| 1 | graph LR | 

| 1 | graph LR | 

| 1 | graph LR | 

| 1 | graph LR | 

| 1 | graph LR | 

连接线
实线,箭头,无文字
| 1 | graph LR | 

实线,无箭头,无文字
| 1 | graph LR | 

实线,无箭头,文字
前面两个 -,后面三个 -
| 1 | graph LR | 
或
| 1 | graph LR | 

实线,箭头,文字
| 1 | graph LR | 
或
| 1 | graph LR | 

虚线,箭头,无文字
| 1 | graph LR; | 

虚线,箭头,文字
| 1 | graph LR | 

大箭头,无文字
| 1 | graph LR | 

大箭头,文字
| 1 | graph LR | 

特殊语法
引号
文字里用引号避免一些特殊字符的错误。比如矩形节点里有 () 时就无法渲染,所以加上引号。
| 1 | graph LR | 

实体字符
可以使用 HTML 中的实体字符。
| 1 | graph LR | 

子图
| 1 | graph TB | 

样式
linkStyle 后面的数字表示第几根线,从 0 开始。可以指定颜色和粗细。
| 1 | graph TD; | 

可以设置节点背景,边框颜色,粗细,实线还是虚线
| 1 | graph LR | 

样式类
| 1 | graph LR | 

| 1 | classDef default fill:#f9f,stroke:#333,stroke-width:4px; | 
定义一个名为 default 的类,节点没有指定特定样式类时,将都会应用这个样式类。
图标
可以使用 Font Awesome 图标。语法 fa:icon class name。
| 1 | graph TD | 

时序图
| 1 | sequenceDiagram | 

参与者
如果不显示声明,参与者将根据第一次出现的顺序排列,如:
| 1 | sequenceDiagram | 

第一条语句出现了两个参与者角色,而在这条语句中,Alice 在 John 之前,所以图中也是这个顺序。如果不想根据第一次出现的顺序来排,可以主动声明以定义顺序:
| 1 | sequenceDiagram | 

别名
可以给角色写一个简短的别名以方便书写。
| 1 | sequenceDiagram | 

消息
消息连线有六种样式。
有一个-是实线,两个-是虚线。
| 1 | sequenceDiagram | 

活动期
| 1 | sequenceDiagram | 

使用 +/- 的更方便的写法:
| 1 | sequenceDiagram | 

可以嵌套:
| 1 | sequenceDiagram | 

备注
语法:Note [ right of | left of | over ] [Actor]。
| 表述 | 含义 | 
|---|---|
| right of | 右侧 | 
| left of | 左侧 | 
| over | 在当中,可以横跨多个参与者 | 
| 1 | sequenceDiagram | 

over 可用于单独一个角色上,也可以用于相邻两个角色间:
| 1 | sequenceDiagram | 

循环
语法:
| 1 | loop Loop text | 

选择
语法:
| 1 | alt Describing text | 
可选条件,比如在没有 else 分支的情况下使用,有点类似 java 中的 switch 的 default 分支,代表剩下所有情况。
| 1 | opt Describing text | 
