0%

用Typora的MarkDown绘制Diagrams(图解)

简介

最近在研究软件设计领域常用各种图解,发现Typorad对MarkDown渲染diagrams的支持特别好,于是整理了一下,方便以后查阅使用,目前(测试版本0.9.9.18.1(1088))支持以下几大类图解:

  • Sequence
  • Flowchart
  • Mermaid
    • sequence (时序图)
    • flowchart (流程图)
    • gantt (甘特图)

Sequence由js-sequence驱动

Flowchart由flowchart.js驱动

Mermaid由mermaid驱动,支持sequence,flowchart,gantt

Sequence – 时序图

UML时序图(sequence)

1
2
3
4
5
对象A->对象B: 对象B你好吗?(请求)
Note right of 对象B: 对象B的描述
Note left of 对象A: 对象A的描述(提示)
对象B-->对象A: 我很好(响应)
对象A->对象B: 你真的好吗?

UML_sequence_01

UML时序图复杂(sequence)

1
2
3
4
5
6
7
8
9
10
11
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: 没人陪我玩

UML_sequence_02

UML标准时序图(mermaid)

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

语法说明:

1
2
3
4
5
Title: Here is a title
A->B: Normal line
B-->C: Dashed line
C->>D: Open arrow
D-->>A: Dashed open arrow

UML_mermaid

flowchart – 流程图

横向流程图(mermaid)

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

flowchart_mermaid_01

竖向流程图(mermaid)

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

flowchart_mermaid_02

标准流程图(flow)

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

flowchart_flow_01

标准流程图-横向(flow)

1
2
3
4
5
6
7
8
9
10

st=>start: 开始框
op=>operation: 处理框
cond=>condition: 判断框(是或否?)
sub1=>subroutine: 子流程
io=>inputoutput: 输入输出框
e=>end: 结束框
st(right)->op(right)->cond
cond(yes)->io(bottom)->e
cond(no)->sub1(right)->op

flowchart_flow_02

甘特图样例 (gantt)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
%% 语法示例
gantt
dateFormat YYYY-MM-DD
title 软件开发甘特图

section 设计
需求:done, des1, 2014-01-06,2014-01-08
原型:active, des2, 2014-01-09, 3d
UI设计: des3, after des2, 5d
未来任务: des4, after des3, 5d

section 开发
学习准备理解需求 :crit, done, 2014-01-06,24h
设计框架 :crit, done, after des2, 2d
开发 :crit, active, 3d
未来任务 :crit, 5d
耍 :2d

section 测试
功能测试 :active, a1, after des3, 3d
压力测试 :after a1 , 20h
测试报告 : 48h

Gantt

不错的画图工具网站

参考资料