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