使用mermaid在markdown中画流程图
在使用markdown写文章的时候经常需要添加一些流程图、时序图等,markdown中画流程图可以使用flowchart
,时序图可以使用sequence
画图,另外可以使用mermaid
进行绘图,mermaid
是一个用户画流程图、状态图、时序图、甘特图等多种图的库,使用JS进行本地渲染。下面具体介绍一下mermaid
的使用。
流程图
流程图方向定义
下面这段代码声明了一个流程图和流程图的方向顺序。定义的方向是自上而下。
|
|
可以使用的方向有以下几种
- TB - Top Bottom 自上而下
- BT - Bottom Top 自下而上
- RL - Right Left 自右向左
- LR - Left Right 自左向右
- TD - 与TB相同,Top Down 自上而下
节点形状定义
节点形状 | 表示 | 描述 |
---|---|---|
默认方形节点 | id | 默认节点是方形节点,id直接作为描述显示在方形节点中 |
带自定义文本的方形节点 | id[name] | id为节点的标示,name为节点上的描述文字 |
圆角节点 | id(name) | id为节点标示,name显示在圆角节点中 |
原形节点 | id((name)) | id为节点标示,name显示在圆形节点中 |
不对称节点 | id>name] | 目前只有左边的图形可用,反过来的镜像图形不可用,后面的版本可能会发生变化 |
菱形节点 | id{name} | id为节点标示,name显示在菱形节点中 |
下面是一个示例
|
|
节点连线定义
节点之间可以使用连接线连接。可以使用多种不同的连接线连接两个图形。
连线可以分为实线和虚线,带箭头不带箭头,细线和粗线,带文字和不带文字的区别,下面我们一一介绍
箭头在mermaid
中以>
结束,不带箭头以-
结束。
实线在mermaid
中以--
表示,虚线以-.-
表示
细线在mermaid
中以-
表示,粗线以=
表示
连线上带有文字有两种表达方式,一种是在连线中间加上文字--文字-->
,一种是在连线后用双竖线表示---|文字|
下面列举几个具体的例子
|
|
特殊字符
如果描述文字中有关键字字符,可以使用引号来将它引起来,如:
|
|
在节点描述等的定义中也可以使用转义字符
|
|
子流程图
子流程图的语法定义如下:
|
|
下面是一个示例
|
|
对fontawesome
的支持
在定义流程图中,可以添加fontawesome
定义的图标,通过fa:#icon class name#
来访问
|
|
其他语法说明
- 在定义图形时,语句现在也可以不使用分号作为结束。在发布0.2.16版本以后,语句结束时需要添加分号只是可选的。
- 节点和链接之间允许有单个空格。但是,节点及其文本和链接及其文本之间不应该有任何空格。这个新的特性也是可选的,是为了提高可读性而引入的。
时序图
参与者
参与者可以隐式定义也可以显示定义。在隐式定义时参与者或者Actor按照图源文本中的外观顺序呈现。有时候可能希望以与消息出现顺序不同的顺序显示参与者。这时候可以通过执行显示定义来指定Actors的外观显示顺序。
隐式定义:
|
|
显示定义:
|
|
参与者可以有一个方便的标识符和一个描述性标签。
|
|
消息
消息可以使用实线或者虚线来表示。具体表示方式为
[Actor][Arrow][Actor]:Message text
目前mermaid
支持六种不同方式的连线箭头
类型 | 描述 |
---|---|
-> | 没有箭头的实线 |
–> | 没有箭头的虚线 |
-» | 有箭头的实线 |
–» | 有箭头的虚线 |
-x | 带叉号的实线(异步) |
–x | 带叉号的虚线(异步) |
|
|
对象激活
在时序图中可以激活和去激活一个参与者,激活/去激活使用各自单独的声明
|
|
也可以使用在消息箭头后追加+/-
的方式来激活去激活对象
|
|
激活去激活在同一个Actor上可以叠加的
|
|
Notes注释
可以为一个时序图图形添加注释,添加的方式为:Note [right of | left of | over] [Actor]: Text in note content
|
|
也可以创建一个横跨两个参与者的注释
|
|
循环
循环使用的方式为:
|
|
下面是一个示例
|
|
条件判断Alt
与Opt
Alt
使用方式
|
|
Opt
使用方式
|
|
|
|