您的位置:

利用Mermaid实现流程图优化

流程图一种可以将复杂的流程图形化的方式,可读性强,易于理解,很适合对于复杂的业务流程,算法流程,以及商业流程进行图形化展示。Mermaid是一套比较流行的用于生成流程图的JavaScript库,支持多种语言的流程图形式,包括甘特图、时序图、类图、状态图等等,而且Mermaid生成的流程图不用类似于visio等商业软件,则更加轻量、简单。

一、优点

1、Mermaid生成的流程图不用类似于visio等商业软件,则更加轻量、简单。

2、Mermaid支持的语言种类众多,可以满足几乎所有的流程图需求。

3、Mermaid生成的流程图可以直接以代码形式进行编辑,便于团队协作以及版本管理。

4、Mermaid可以配合Markdown等文本编辑器使用,提升文本可读性。

二、用法示例

下面以一个简单的甘特图为例,展示Mermaid的用法

<div class="mermaid">
 gantt
 dateFormat YYYY-MM-DD
 title 项目计划表

 section 设计
 设计概念 :done, des1, 2020-01-01,2020-01-10
 设计蓝图 :done, des2, 2020-01-11,2020-02-02
 设计开发 :des3, 2020-02-03, 20d

 section 实施
 概念验证 :crit, done, 2020-02-06,24h
 系统开发 :active, 2020-02-07, 30d
 系统集成和测试 :2020-03-10, 20d
 系统发布 :2020-03-19, 5d

 section 维护与支持
 用户培训 :2020-03-23, 1d
 操作文档 :20d
 支持和维护 :2020-04-08, 365d
 任务清单:2022-01-01, 365d
</div>

以上代码将会生成如下一个甘特图

gantt dateFormat YYYY-MM-DD title 项目计划表 section 设计 设计概念 :done, des1, 2020-01-01,2020-01-10 设计蓝图 :done, des2, 2020-01-11,2020-02-02 设计开发 :des3, 2020-02-03, 20d section 实施 概念验证 :crit, done, 2020-02-06,24h 系统开发 :active, 2020-02-07, 30d 系统集成和测试 :2020-03-10, 20d 系统发布 :2020-03-19, 5d section 维护与支持 用户培训 :2020-03-23, 1d 操作文档 :20d 支持和维护 :2020-04-08, 365d 任务清单:2022-01-01, 365d

三、其他语言的使用样例

除了如上所述的甘特图,Mermaid还支持时序图,状态图、类图、流程图、饼图等多种形式,下面随便展示几个示例

1、时序图[1]

<div class="mermaid">
sequenceDiagram
Alice->>John:欢迎John加入我们
Alice<<-John:感谢你的欢迎,Alice。这很高兴
Alice-->x:土豆泥
命令dnf install不去执行 Note right of x:糟糕的情况 Bob-->John:John,用双倍奖励向上介绍你 </div>
sequenceDiagram Alice->>John:欢迎John加入我们 Alice<<-John:感谢你的欢迎,Alice。这很高兴 Alice-->>x:土豆泥
命令dnf install不去执行 Note right of x:糟糕的情况 Bob-->>John:John,用双倍奖励向上介绍你

2、状态图[2]

<div class="mermaid">
stateDiagram-v2
[*]->还车
还车 ->结账
结账 ->完结
[*]->取消
[*]->超时无反应
state 已确认
state 待还车
state 已结账
state 已取消
state 已完结
</div>
stateDiagram-v2 [*]->还车 还车 ->结账 结账 ->完结 [*]->取消 [*]->超时无反应 state 已确认 state 待还车 state 已结账 state 已取消 state 已完结

参考文献

[1]Mermaid. (2021). Sequence Diagrams. [online] Available at: https://mermaid-js.github.io/mermaid/#/sequenceDiagram

[2]Mermaid. (2021). State Diagram. [online] Available at: https://mermaid-js.github.io/mermaid/#/flowchart