流程图
撰写时间:2023-09-04
修订时间:2023-09-05
节点
Mermaid的语法与Markdown类似。关键字title用于整个图形的标题。
使用%%来注释,这是行级的注释。
使用关键字flowchart来标识时序图。也可使用关键字graph。LR表示左右方向,具体如下表。
| 符号 | 含义 |
|---|---|
| TB | 上下(top bottom) |
| TD | 上下(top down) |
| BT | 下上 |
| LR | 左右 |
| RL | 右左 |
声明了node1及node2两个节点(Node)。其中,node1
及node2
表示节点的id。node1后面没有文本,渲染时直接渲染其名称。node2后面有文本,渲染时则渲染这些文本。
注意,如果带有文本,则节点id与开始的中括号之间不能带有空格。
可以使用Markdown的文本。
Markdown文本须使用"`text`"
的格式来标识。上面出现了多余的空格,可通过设置初始参数来调整。
节点类型
如果节点文本内容正好包括了这些特殊符号,可使用双引号"
将文本包围起来:
节点文本可以使用转义字符:
连线
基本连线
箭头一般使用3个字符来表示。第1种有箭头,第2种无箭头,第3种不显示连线。
连线中的文本
根据不同的边线,连线中的文本有不同的语法。
无箭头连线
前面用两个字符来表现--,后面是完整的---。
或者:
先写完整的连线---,接着使用|文本|插入文本。---与|文本|之间的空格可以省略。这种方式比较规范、易记,且后面的几种类型均可使用这种方式,推荐使用。
有箭头连线
或者:
虚连线
无文本:
有文本:
粗连线
无文本:
有文本:
连线的串连
单项串连
多项串连
一对多的串连:
使用&来表示同时串连。在权重上,&要高于连线(但在语法上,不能添加括号()
)。因此,先将B与C视为一个整体,A分别连向B与C,B与C再各自连向D。
这等同于:
多对多的串连:
等同于:
其他类型的连线
Mermaid支持双向连线,只需在前面添加表示连线类型的字符即可。
连线的长度
B到E的连线太短,不好看,这是因为B同时连向C与E,导致后两者节点都默认排在同一等级(rank)上。要改变后者的长度,可通过增加-
的方式加大E的等级:
---->的结果是增加了2个等级。且Mermaid自动智能地避开连线的交叉。
对于虚线,则需改变连线中的点即可:-...->
Subgraph
基本使用方法
注意,subgraph的id与标题之间可以带有空格。
各个subgraph的元素之间可以自由连接,subgraph也可连接另外的subgraph。
一个WebGL例子
subgraph可以嵌套。
Subgraph内的方向
subgraph内可以使用direction来改变默认方向。
Subgraph的方向会改变
outside连向了subgraph2的top,导致subgraph2的方向被忽略。相反,它将继承父节点的方向。
设置样式
设置连线样式
使用linkStyle来设置连线的样式,后面的数字为所声明的连线的索引顺序,从0开始计算。同时设置多个连线的样式时,使用逗号,
隔开数字,不能有空格。
设置连线的曲线样式
如果连线不是直线,则可设置其曲线的样式。
可用的样式有:
- basis
- bumpX
- bumpY
- cardinal
- catmullRom
- linear
- monotoneX
- monotoneY
- natural
- step
- stepAfter
- stepBefore
设置节点样式
方法1:
使用style后接节点的id来设置样式。
方法2:
使用classDef来声明样式,使用:::让具体的节点应用样式,也可使用class为多个节点应用样式。
如果声明了名为default
的类,则所有的节点均应用该样式。
方法3:
先在HTML中声明:
然后再应用该样式。
