什么是 Mermaid

Mermaid 是一个基于 JavaScript 的图表和图解工具,可以让你使用文本和代码创建图表和可视化内容。它使用受 Markdown 启发的文本定义来动态创建和修改图表。如果你熟悉 Markdown,学习 Mermaid 的语法应该不成问题。

Mermaid 的主要目的是帮助文档跟上开发的步伐。Doc-Rot 是一个 Mermaid 帮助解决的 Catch-22 问题。绘图和文档编写会占用宝贵的开发时间,并且很快就会过时。但是没有图表或文档会降低生产力并损害组织的学习能力。Mermaid 通过让用户能够创建易于修改的图表来解决这个问题,它也可以成为生产脚本(以及其他代码片段)的一部分。Mermaid 甚至允许非程序员通过 Mermaid Live Editor 轻松创建详细的图表。

图表类型

Mermaid 支持多种类型的图表,包括:

  1. 流程图 (Flowchart)
  2. 序列图 (Sequence diagram)
  3. 甘特图 (Gantt diagram)
  4. 类图 (Class diagram)
  5. Git 图 (Git graph)
  6. 实体关系图 (Entity Relationship Diagram) - 实验性
  7. 用户旅程图 (User Journey Diagram)
  8. 象限图 (Quadrant Chart)
  9. XY 图 (XY Chart)

下面我们将详细介绍每种图表类型及其示例。

1. 流程图 (Flowchart)

流程图用于描述过程的步骤和决策点。下面是一个简单的流程图示例:

A
B
C
D

2. 序列图 (Sequence diagram)

序列图用于显示对象之间的交互以及交互发生的顺序。下面是一个简单的序列图示例:

Alice John Hello John, how are you? Great! Alice John

3. 甘特图 (Gantt diagram)

甘特图常用于项目管理,用于显示项目的时间表和里程碑。下面是一个简单的甘特图示例:

2014-01-05 2014-01-12 2014-01-19 2014-01-26 2014-02-02 2014-02-09 2014-02-16 A task Another task Section A Gantt Diagram

4. 类图 (Class diagram)

类图用于描述系统的静态结构,显示系统的类、它们的属性、操作以及它们之间的关系。下面是一个简单的类图示例:

Animal
+int age
+String gender
+isMammal()
+mate()
Duck
+String beakColor
+swim()
+quack()
Fish
-int sizeInFeet
-canEat()
Zebra
+bool is_wild
+run()

5. Git 图 (Git graph)

Git 图用于可视化 Git 分支和合并历史。下面是一个简单的 Git 图示例:

master, 9e31086

1de180d

1bad6b9

427a977

newbranch, 749bd3c

08ed6b6

6. 实体关系图 (Entity Relationship Diagram)

实体关系图(ERD)用于描述系统中的实体及其关系。这是一个实验性功能。下面是一个简单的 ERD 示例:

CUSTOMER ORDER LINE-ITEM DELIVERY-ADDRESS places contains uses

7. 用户旅程图 (User Journey Diagram)

用户旅程图描述用户与系统交互的过程。下面是一个简单的用户旅程图示例:

Cat Me
Go to work
Go to work
Me
Make tea
Make tea
Me
Go upstairs
Go upstairs
Me Cat
Do work
Do work
Go home
Go home
Me
Go downstairs
Go downstairs
Me
Sit down
Sit down
My working day

8. 象限图 (Quadrant Chart)

象限图可用于比较不同选项的优先级或对选项进行分类。下面是一个简单的象限图示例:

quadrantChart
    title Reach and engagement of campaigns
    x-axis Low Reach --> High Reach
    y-axis Low Engagement --> High Engagement
    quadrant-1 We should expand
    quadrant-2 Need to promote
    quadrant-3 Re-evaluate
    quadrant-4 May be improved
    Campaign A: [0.3, 0.6]
    Campaign B: [0.45, 0.23]
    Campaign C: [0.57, 0.69]
    Campaign D: [0.78, 0.34]
    Campaign E: [0.40, 0.34]
    Campaign F: [0.35, 0.78]

9. XY 图 (XY Chart)

XY 图用于显示两个变量之间的关系。下面是一个简单的 XY 图示例:

xychart-beta
    title "Sales Revenue"
    x-axis [jan, feb, mar, apr, may, jun, jul, aug, sep, oct, nov, dec]
    y-axis "Revenue (in $)" 4000 --> 11000
    bar [5000, 6000, 7500, 8200, 9500, 10500, 11000, 10200, 9200, 8500, 7000, 6000]
    line [5000, 6000, 7500, 8200, 9500, 10500, 11000, 10200, 9200, 8500, 7000, 6000]

这些只是 Mermaid 支持的图表类型的一小部分示例。Mermaid 的文档提供了更多详细信息和高级用法。

安装和使用

Mermaid 可以通过 CDN 或 npm 安装。详细的安装和使用指南可以在 Mermaid 的文档中找到。

Mermaid 还有一个在线编辑器 Mermaid Live Editor,即使是非程序员也可以轻松创建图表。

此外,Mermaid 可以与许多流行的应用程序集成,如 GitHub、GitLab、Visual Studio Code 等。社区集成列表提供了更多信息。

贡献和支持

Mermaid 是一个开源项目,欢迎社区贡献。如果你想参与 Mermaid 的开发,可以查看贡献指南。

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐