工欲善其事-4-绘制程序流程图

这是工具系列的第四篇,本来最近没有想再分享这个系列,不过最近朋友给我推荐了一个绘制流程图的神器,忍不住推荐给大家。

绘制程序流程图、时序图、甘特图一直是我比较头疼的问题,一直使用viso,用着一直非常不爽:

  • 默认框图不好看,每次需要手动去调颜色、字体等

  • 需要仔细拖动框图对齐,虽然后自动对齐,不过还是很麻烦

  • 添加到markdown的笔记中很麻烦,需要保存图片再加载

  • ubuntu没有找到比visio好的绘图软件,只能用双系统解决

  • 没办法源码管理,只能作为二进制文件管理

好吧,虽然体验不好,不过还是坚持用了好多年,直到朋友给我推荐了markdown的插件mermaid,还要啥visio呀。

吐槽了很多,开始我们正式的分享,作为markdown的插件,不是所有的md编辑器都支持的,所幸我们有宇宙第一文本编辑器typora,它原生支持mermaid

用法很简单,只需要插入一个代码块,将语法设置为mermaid,typora就会自动进行渲染。

废话不多说,我们看看实际的效果吧,这里我直接引用了mermaid官方教程中的demo,给大家看看效果,是不是大家想要的,觉得能满足需求就继续学习它。

流程图

graph TD;
    A-->B;
    A-->C;
    B-->D;
    C-->D;
    C-->E;
    

时序图

sequenceDiagram
    participant Alice
    participant Bob
    Alice->>John: Hello John, how are you?
    loop Healthcheck
        John->>John: Fight against hypochondria
    end
    Note right of John: Rational thoughts <br/>prevail!
    John-->>Alice: Great!
    John->>Bob: How about you?
    Bob-->>John: Jolly good!

甘特图

gantt
dateFormat  YYYY-MM-DD
title Adding GANTT diagram to mermaid
excludes weekdays 2014-01-10

section A section
Completed task            :done,    des1, 2014-01-06,2014-01-08
Active task               :active,  des2, 2014-01-09, 3d
Future task               :         des3, after des2, 5d
Future task2               :         des4, after des3, 5d

类图

classDiagram
Class01 <|-- AveryLongClass : Cool
Class03 *-- Class04
Class05 o-- Class06
Class07 .. Class08
Class09 --> C2 : Where am i?
Class09 --* C3
Class09 --|> Class07
Class07 : equals()
Class07 : Object[] elementData
Class01 : size()
Class01 : int chimp
Class01 : int gorilla
Class08 <--> C2: Cool label

饼状图

pie
    title Key elements in Product X
    "Calcium" : 42.96
    "Potassium" : 50.05
    "Magnesium" : 10.01
    "Iron" :  5

由于微信公众号不支持插入这个渲染,所以我直接将效果保存为图片插入,大家可以从mermaid官网复制demo在typora上看效果

https://mermaid-js.github.io/mermaid/#/

我的微信公众号,文章同步更新,欢迎关注。

微信公众号