平常使用Typora
撰写内容的时候,偶尔会用到流程图,原来一直使用Word来作图,在插入到文档中,昨天偶然间了解到Typora
支持使用mermaid
来绘制流程图,才发现自己差点Out了。此处整理一下如何使用Typora
进行图表的绘制。
mermaid
支持三种图形的绘制:流程图、 时序图、甘特图。
流程图方向定义:字母反过来就是相应箭头方向相反
基本图形
节点连线
# 基本语法说明
graph LR
A0[A] --> B0[B]
A1[A] --- B1[B]
A4[A] -.- B4[B]
A5[A] -.-> B5[B]
A7[A] ==> B7[B]
A2[A] -- 描述 --- B2[B]
A3[A] -- 描述 --> B3[B]
A6[A] -. 描述 .-> B6[B]
A8[A] == 描述 ==> B8[B]
样式渲染
style id1 fill:#f9f,stroke:#000,stroke-width:2px,stroke-dasharray:5,5;
fill:#f9f 表示框框中填充的颜色,由RGB表示,但只有0~F,如#f00表示填充红色
stroke:#000 表示外框的颜色,也是由RGB表示
stroke-width:2px 表示外框短线的宽度为2个像素,
stroke-dasharray:5,5 表示外框短线的长度,等于方框的边长除以5
# 设置宏定义一样的格式
graph LR
classDef className fill:#f9f,stroke:#333,stroke-width:4px;
class nodeId className; //对结点nodeId使用样式类
class nodeId1,nodeId2 className; ////对多个结点nodeId使用样式类
# 上面例子改写后如下
graph LR
classDef className fill:#f9f,stroke:#333,stroke-width:4px;
class nodeId className;
id1(Start)-->id2(Stop)
class id1 className;
style id2 fill:#f00,stroke:#000,stroke-width:2px,stroke-dasharray:5,5;
完整示例如下:
graph LR
A[理财测试开始] --> B1(奋斗小鲜肉)
A[理财测试开始] --> B2(奋斗老腊肉)
A[理财测试开始] --> B3(高薪小鲜肉)
A[理财测试开始] --> B4(高薪老腊肉)
B1 --> C1{可投资金}
C1 --> |资金不多| D1{大额支出}
D1 --> |有计划| E1[乖乖型]
D1 --> |无计划| E2[稳健型]
C1 --> |资金充裕| D2{大额支出}
D2 --> |有计划| E2[稳健型]
D2 --> |无计划| E3[赌徒型]
B2 --> C2{可投资金}
C2 --> |资金不多| E4[乖乖型]
C2 --> |资金充裕| D4{大额支出}
D4 --> |有计划| E4[乖乖型]
D4 --> |无计划| E5[稳健型]
B3 --> C3{可投资金}
C3 --> |资金不多| E6[稳健型]
C3 --> |资金充裕| E7[赌徒型]
B4 --> C4{可投资金}
C4 --> |资金不多| D7{大额支出}
D7 --> |有计划| E8[乖乖型]
D7 --> |无计划| E9[稳健型]
C4 --> |资金充裕| D8{大额支出}
D8 --> |有计划| E9[稳健型]
D8 --> |无计划| E10[赌徒型]
在甘特图里,开始日期和截止日期是必填项
# 基本语法如下
gantt
dateFormat YYYY-MM-DD
title XX项目计划甘特图
section 系统设计
需求 :done, des1, 2020-01-06,2020-01-10
原型 :active, des2, 2020-01-09, 3d
UI设计 :des3, after des2, 5d
环境部署 :des4, after des3, 5d
section 软件开发
需求理解 :crit, done, 2020-01-06,120h
设计框架 :crit, done, after des2, 2d
编码 :crit, active, 3d
代码审查 :crit, 5d
section 软件测试
功能测试 :active, a1, after des3, 3d
压力测试 :after a1, 20h
测试报告 :48h
需要使用 mermaid
解析,并在开头使用关键字 sequenceDiagram
指明
连线的样式
->
: 实线连接-->
:虚线连接->>
:实线箭头指向-->>
:虚线箭头指向Title: 我是标题
participant A :声明对象
# 时序图使用语法说明
sequenceDiagram
Title: 登录流程
participant 客户端
participant 服务端
participant 认证中心
Note over 客户端: 输入账号、密码
客户端 ->> 认证中心: 发送账号、密码
Note over 认证中心: 验证账号、密码
认证中心-->>客户端: 返回token
客户端->>服务端: 发送token
服务端->>认证中心: 验证token
认证中心-->>服务端: 验证成功
服务端-->>客户端: 登陆成功
1、横向流程图源码格式:
2、竖向流程图源码格式:
3、标准流程图源码格式:
4、标准流程图源码格式(横向):
5、UML时序图源码样例:
6、UML时序图源码复杂样例:
7、UML标准时序图样例: