Mermaid 简介
1. 什么是 Mermaid
Mermaid 允许你使用文本和代码创建图表和可视化。
它是一个基于 JavaScript 的制图和图表工具,可以渲染受 Markdown 启发的文本定义,动态地创建和修改图表。
如果你熟悉 Markdown,那么学习 Mermaid 的语法应该没有问题。
这里还有一个官方的 在线 Mermaid 编辑器,你可以在这里尝试 Mermaid 的语法。它还提供了更换主题、导出 SVG 等功能。
Mermaid 是一个基于 JavaScript 的图表工具,它使用 Markdown 启发的文本定义和一个渲染器来创建和修改复杂的图表。Mermaid 的主要目的是帮助文档赶上开发。
绘制图表和文档要花费开发人员宝贵的时间,而且很快就会过时。但是,没有图表或文档会破坏生产力,损害组织学习。
Mermaid 通过使用户能够创建易于修改的图表来解决这个问题,它也可以成为生产脚本(和其他代码片段)的一部分。
2. 示例图表
2.1 流程图
graph TD
A-->B
A-->C
B-->D
C-->D
2.2 序列图
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!
2.3 Gantt 图
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
2.4 类图
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
2.5 Git 图
gitGraph
commit
commit
branch develop
commit
commit
commit
checkout main
commit
commit
2.6 ER 图
erDiagram
CUSTOMER ||--o{ ORDER : places
ORDER ||--|{ LINE-ITEM : contains
CUSTOMER }|..|{ DELIVERY-ADDRESS : uses
2.7 用户旅程图
journey
title My working day
section Go to work
Make tea: 5: Me
Go upstairs: 3: Me
Do work: 1: Me, Cat
section Go home
Go downstairs: 5: Me
Sit down: 5: Me
3. 文档写作指南
如果你需要实际表达 Mermaid 图表,可以直接使用反引号包裹的代码块表示:
```mermaid
graph LR
A-->B
```
如果你需要展示代码,可以配合 @vuepress/plugin-shiki
插件,将任意名称标注在 mermaid:
的后面即可得到代码块而不是图表。
```mermaid:no-line-numbers
graph LR
A-->B
```
graph LR
A-->B