Mermaid.js 图表完整指南

学习使用简单的文本语法创建专业图表

什么是 Mermaid.js?

Mermaid 是一款基于 JavaScript 的制图与图表工具,使用受 Markdown 启发的文本定义来动态创建和修改图表。这是一个开源项目,可让你用简单的文本描述生成图表。

无需复杂的绘图工具,只需编写类似代码的语法来描述图表,Mermaid 就会将其渲染为可视化图表。这种方式让图表易于版本控制、更新方便,非常适合文档。

Mermaid 可无缝集成到文档平台、Wiki 和 Markdown 文件中,因此深受开发者和技术写作者的喜爱。

为什么使用 Mermaid.js?

  • 版本控制:图表是文本文件,因此可以与代码一起在 Git 中跟踪
  • 快速更新:修改几行文本即可,无需重画整个图表
  • 一致性:Mermaid 自动处理布局与样式,确保图表一致
  • 无需设计工具:不需要 Visio、Lucidchart 等昂贵工具
  • 文档即代码:将图表与文档放在同一仓库中
  • 跨平台:可在浏览器和 Node.js 中运行,并可与多种平台集成
  • 免费开源:无需许可费用,社区活跃
  • 多种图表类型:支持流程图、时序图、类图等

支持的图表类型

Mermaid 支持多种图表类型,以满足不同的文档需求:

流程图

用节点和边可视化工作流、流程和决策树。

flowchart TD
    A[Start] --> B{Decision}
    B -->|Yes| C[Process]
    B -->|No| D[Alternative]
    C --> E[End]
    D --> E

使用场景: 流程流转、算法、决策逻辑

时序图

展示不同参与者或系统随时间的交互。

sequenceDiagram
    participant User
    participant API
    participant DB
    User->>API: Request data
    API->>DB: Query
    DB-->>API: Results
    API-->>User: Response

使用场景: API 交互、系统通信、用户流程

类图

用类、属性和关系建模面向对象系统。

classDiagram
    class Animal {
        +String name
        +int age
        +makeSound()
    }
    class Dog {
        +bark()
    }
    Animal <|-- Dog

使用场景: 软件架构、OOP 设计、数据库架构

状态图

表示系统或流程中的状态与转移。

stateDiagram-v2
    [*] --> Idle
    Idle --> Loading: Start
    Loading --> Success: Complete
    Loading --> Error: Fail
    Success --> [*]
    Error --> Idle: Retry

使用场景: 状态机、生命周期管理、UI 状态

实体关系图

建模数据库结构及实体之间的关系。

erDiagram
    CUSTOMER ||--o{ ORDER : places
    ORDER ||--|{ LINE_ITEM : contains
    CUSTOMER {
        int id
        string name
        string email
    }

使用场景: 数据库设计、数据建模、系统架构

甘特图

规划并可视化项目进度和时间线。

gantt
    title Project Timeline
    dateFormat YYYY-MM-DD
    section Phase 1
    Design :a1, 2024-01-01, 30d
    Development :a2, after a1, 45d

使用场景: 项目规划、迭代时间线、路线图

饼图

以可视化方式展示比例数据和百分比。

pie title Distribution
    "Category A" : 42
    "Category B" : 30
    "Category C" : 28

使用场景: 调查结果、市场份额、资源分配

Git 图

可视化 Git 分支策略和提交历史。

gitGraph
    commit
    branch develop
    checkout develop
    commit
    checkout main
    merge develop

使用场景: Git 工作流文档、分支策略

开始使用 Mermaid

1. 选择图表类型

首先确定最能表达你想展示内容的图表类型。每种图表类型都以特定关键字开头,例如 'flowchart'、'sequenceDiagram' 或 'classDiagram'。

2. 编写文本语法

使用 Mermaid 的简单语法来描述图表。语法直观,几乎像自然语言。例如,'A --> B' 会创建从 A 指向 B 的箭头。

3. 预览图表

使用我们的在线查看器或任何兼容 Mermaid 的工具实时渲染并查看你的图表。根据需要调整,直到满意为止。

4. 导出与分享

将图表导出为 SVG 或 PNG 用于演示,或与团队分享 URL。你也可以直接将 Mermaid 嵌入到 Markdown 文件中。

最佳实践

  • 让图表聚焦于单一概念或工作流
  • 使用能够描述真实业务逻辑的有意义标签
  • 将复杂图表拆分为更小、相互关联的图表
  • 使用 %% 添加注释以解释复杂部分
  • 在图表中使用一致的命名约定
  • 在目标环境中测试图表后再定稿
  • 需要时加入方向提示(TD, LR)以控制布局
  • 在流程图中使用 subgraph 对相关节点进行分组
  • 样式选项适度使用,以保持可读性
  • 将图表源文件与代码一起进行版本控制

常见使用场景

软件文档

在代码旁记录系统架构、API 流程和组件交互。

项目规划

使用甘特图进行迭代规划、项目时间线和资源分配。

技术提案

可视化拟议解决方案、系统设计和架构决策。

用户旅程

绘制用户流程、客户体验和交互模式。

数据库设计

建模实体关系、架构结构和数据依赖。

流程文档

记录业务流程、工作流和标准操作流程。

教育材料

为教程和技术课程创建清晰、可版本控制的图表。

API 文档

说明请求/响应流程、认证序列和端点交互。

更多资源

常见问题

关于使用 Mermaid Viewer 和创建图表的常见问题

准备好创建你的第一个图表了吗?

试试我们的免费在线 Mermaid 查看器,几分钟内开始创建专业图表。

打开 Mermaid Viewer