typora的流程图语法

Markdown是码农最爱。码农当然离不开流程图,时序图,甘特图,而采用JavaScript实现的流程图库,一抓一大把,Mermaid.js是其中的佼佼者,风格清新,效果喜人。这里对markdown所能实现的图和语法进行梳理。

各类型图表的画法

1. mermaid(美人鱼)

1.1 横向

效果:

graph LR

A[方形] -->B(圆角)

    B --> C{条件a}

    C -->|a=1| D[结果1]

    C -->|a=2| E[结果2]

    F[横向流程图]

代码:

1
2
3
4
5
6
7
'''mermaid
graph LR
A[方形] -->B(圆角)
B --> C{条件a}
C -->|a=1| D[结果1]
C -->|a=2| E[结果2]
F[横向流程图]

1.2 纵向

效果:

graph TD
A[方形] -->B(圆角)
    B --> C{条件a}
    C -->|a=1| D[结果1]
    C -->|a=2| E[结果2]
    F[竖向流程图]

代码:

1
2
3
4
5
6
7
'''mermaid
graph TD
A[方形] -->B(圆角)
B --> C{条件a}
C -->|a=1| D[结果1]
C -->|a=2| E[结果2]
F[竖向流程图]

2. flow(流)标准流程图

这个对我来说暂时不甚常用

1
2
3
4
5
6
7
8
9
10
'''flow
st=>start: 开始框
op=>operation: 处理框
cond=>condition: 判断框(是或否?)
sub1=>subroutine: 子流程
io=>inputoutput: 输入输出框
e=>end: 结束框
st->op->cond
cond(yes)->io->e
cond(no)->sub1(right)->op

3. sequence(UML时序图)

语法:

1
2
3
4
5
6
7
8
9
10
11
12
'''sequence
Title: 标题:复杂使用
对象A->对象B: 对象B你好吗?(请求)
Note right of 对象B: 对象B的描述
Note left of 对象A: 对象A的描述(提示)
对象B-->对象A: 我很好(响应)
对象B->小三: 你好吗
小三-->>对象A: 对象B找我了
对象A->对象B: 你真的好吗?
Note over 小三,对象B: 我们是朋友
participant C
Note right of C: 没人陪我玩

4.mermaid+sequence(标准时序)

语法:

1
2
3
4
5
6
7
8
9
10
11
12
13
'''mermaid
%% 时序图例子,-> 直线,-->虚线,->>实线箭头
sequenceDiagram
participant 张三
participant 李四
张三->王五: 王五你好吗?
loop 健康检查
王五->王五: 与疾病战斗
end
Note right of 王五: 合理 食物 <br/>看医生...
李四-->>张三: 很好!
王五->李四: 你怎么样?
李四-->王五: 很好!

```