

























Mermaid(美人鱼)是一套markdown语法规范,用来在markdown文档中定义图形,包括流程图、序列图、甘特图等等。
它的官方网站是 https://mermaid-js.github.io/mermaid/#/
另外有一个在线的测试网站 https://mermaid.live
强烈建议用这个来编写,因为有语法智能提示,还能实时看到效果。写好后,再复制到你的文档里面来,mermaid 还提供了可以将图形文本生成网页地址,或者图形链接的功能,可以很方便地进行分享
博客园默认就支持mermaid,它的语法很简单,下面是一个简单的例子
mermaid graph LR; A[博客园支持 Mermaid] --> B[访问 https://mermaidjs.github.io/ 了解更多];
在文章中呈现的样子如下
graph LR; A[博客园支持 Mermaid] --> B[访问 https://mermaidjs.github.io/ 了解更多];
用来描述一个系统流程,通常在需求分析阶段很有用
graph LR
A(员工发起审批)--> B{经理是否审批}
B --> |同意| C[财务报销]
B --> |拒绝| A
C --> E(结束)
graph LR A(员工发起审批)--> B{经理是否审批} B --> |同意| C[财务报销] B --> |拒绝| A C --> E(结束)
还支持 --- , -- 文字 --> 等组合用法
还支持([]), [[]],(()),[()],{{}},{//},{\},((())) 等多种组合用法
序列图是一种交互图,它显示了进程如何相互作用以及以何种顺序运行。
sequenceDiagram
actor user as 小明
participant client as Outlook 客户端
participant website as Azure Blob storage
participant aad as Azure Active Directory
participant sbux as Starbucks backend service
user ->> client : 打开星巴克插件
client->>+ website : 访问网页
website-->>- user : 要求登录
user->>+ aad : 身份验证
aad-->>- website : 授权成功
user->>+ website : 门店查询
website-->> sbux : 接口调用
sbux -->> website : 返回门店列表
website -->> user : 返回
sequenceDiagram actor user as 小明 participant client as Outlook 客户端 participant website as Azure Blob storage participant aad as Azure Active Directory participant sbux as Starbucks backend service user ->> client : 打开星巴克插件 client->>+ website : 访问网页 website-->>- user : 要求登录 user->>+ aad : 身份验证 aad-->>- website : 授权成功 user->>+ website : 门店查询 website-->> sbux : 接口调用 sbux -->> website : 返回门店列表 website -->> user : 返回
actor是指人,participant一般是指系统, 用 as 语法可以重命名->,-->,->>,-->>,-x,--x,-),--), 两个短线表示虚线,一个短线表示实线+,- 指的是UML中的 activate 的意思par语法,循环 loop 语法等,可以参考官方文档甘特图用来表示项目计划或进度
gantt
title 项目进度
dateFormat YYYY-MM-DD
axisFormat %m-%d
excludes sunday,monday,tuesday,friday,2014-03-01
section 第一阶段
需求分析 :crit, a1, 2014-01-01, 30d
设计评审 :after a1, 20d
section 第二阶段
第一批测试 :done, 2014-01-12 , 12d
第二批测试 :24d
客户验收 :milestone,2h
gantt title 项目进度 dateFormat YYYY-MM-DD axisFormat %m-%d excludes sunday,monday,tuesday,friday,2014-03-01 section 第一阶段 需求分析 :crit, a1, 2014-01-01, 30d 设计评审 :after a1, 20d section 第二阶段 第一批测试 :done, 2014-01-12 , 12d 第二批测试 :24d 客户验收 :milestone,2h
任务名称:别名,开始日期,天数active(表示还没有完成,会显示为蓝色), done(表示已完成, 会显示为灰色),crit(表示关键任务,会显示为红色)a1 ,然后在其他任务中可以引用依赖,例如 after a1excludes 是指要排除哪些日期,可以写具体的日期,也可以写 weekends(周末),或具体的工作日,如 sunday,monday 这样的语法,可以写多种的组合milestone 表示里程碑此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。