基础语法
图及方向
# graph 代指流程图,固定写法
# TD等同于 TB(Top to Bottom), 就是说自上而下的流程图
graph TD
Start --> Stop
支持的方向有这么些:
**
- TB - top bottom(自上而下)
- BT - bottom top(自下而上)
- RL - right left(自右向左)
- LR - left right(自左向右)
- TD - same as TB(自上而下)
节点
默认节点
不加修饰的节点就是默认节点,展示风格为方框
graph LR
id
文本节点
文本节点的展示就是加上一个修饰符 []
graph LR
id[我是一个文本节点]
圆角节点
圆角节点的展示就是加上一个修饰符()
graph LR
id(我是一个圆角节点)
圆形节点
圆角节点的展示就是加上一个修饰符(())
graph TD
test((我是一个圆形节点))
书签形状节点
官方的叫法(A node in an asymetric shape-> 轴形节点?测量形节点),还备注了该形式在未来可能会变化。
该节点的展示就是加上一个修饰符>]
graph TD
test>我是书签形的节点]
菱形节点
菱形节点的展示就是加上一个修饰符{}
graph TD
test{我是一个菱形节点}
六边形节点(非等宽)
六边形节点的展示就是加上一个修饰符{{}}
graph TD
test{{我是一个六边形节点}}
平行四边形节点
平行四边形节点的展示就是加上一个修饰符[//]
graph TD
test[/我是一个平行四边形节点/]
反向平行四边形节点
反向平行四边形节点的展示就是加上一个修饰符[\]
graph TD
test[\我是一个反向平行四边形节点\]
梯形节点
梯形节点的展示就是加上一个修饰符[/]
graph TD
test[/我是一个梯形节点\]
反向梯形节点
反向梯形节点的展示就是加上一个修饰符[\/]
graph TD
test[\反向梯形节点/]
节点链接
带箭头的单向链接
两节点之间增加修饰符—>
graph LR
A --> B
不带箭头连接线
两节点之间增加修饰符—-
graph LR
A --- B
带文本信息的连接线
两节点之间增加修饰符—text—, 亦或者—- |text|
# 姿势1
graph LR
A -- 我是线条文本 --- B
# 姿势2
graph LR
A ---|我是线条文本| B
带箭头和文本单向链接
两节点之间增加修饰符—text—>, 亦或者—>|text|
# 姿势1
graph LR
A -- 我是线条文本 --> B
# 姿势2
graph LR
A -->|我是线条文本| B
带箭头的虚线单向链接
两节点之间增加修饰符-.->
graph LR
A -.-> B
带箭头和文本的虚线单向链接
两节点之间增加修饰符-.->
graph LR
A -. 我是文本内容 .-> B
带箭头加粗单向链接
两节点之间增加修饰符==>
graph LR
A ==> B
连续线
这个就是综合运用了
graph LR
A ==> B
B --我是测试文本--> C
C -.我也是测试文本.-> A
A ==唉==> D((惊喜不))
文本传入特殊字符
传入一些默认会被转义的,可以用双引号括起来,包括 unicode
graph TD
A ==> B[/"🎹emoji 也支持"\]
B --"(呵呵哒)"--> C
C -."给你一颗心:#9829;".-> A
A ==唉==> D((惊喜不))
子图(组)
简单点理解就是拆成小组合,可以画出更复杂的图(图与图之间的联系)
# 子组写法, 这样一个闭合就是一个子组
subgraph 名字
流图 do sth ...
end
graph TD
subgraph 组合1
A ==> B[/"🎹emoji 也支持"\]
end
subgraph 组合2
B --"(呵呵哒)"--> C
C -."给你一颗心:#9829;".-> A
end
subgraph 组合3
A ==唉==> D((惊喜不))
D --你好啊--> B
end
注释
mermaid里面的注释只支持单行注释, 采用修饰符%%开头
graph BT
%% 这是一条注释,我在页面上不渲染
A -- "听说你很吊?" --> B
节点行内样式
节点支持样式装饰,支持调整的属性是 svg
的填充属性
graph BT
%% 这是一条注释,我在页面上不渲染
A -- "听说你很吊?" --> B
style A fill:#F00,stroke:#CCC,color:#FFF
style B fill:#C3F,stroke-width:2px,stroke-dasharray: 5, 5
当然也支持 class(类)来装饰,不过这个就要耦合外部文件了,不喜欢
节点图标
mermaid 节点支持调用 fontawesome 的图标库,修饰符["fa:fa-twitter text"],
在语雀上展示不出来,没有这个字库。
graph TD
A-->B[\"fa:fa-ban 谷歌"/]
B-->C(("fa:fa-user 用户"))
总结
mermaid 是 js 实现的,所以也支持事件交互,不过用的场景不多。
这里就不扯了,我不用。