Mermaid 图表完整指南

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

广告

什么是 Mermaid?

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

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

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

为什么使用 Mermaid?

  • 版本控制:图表是文本文件,因此可以与代码一起在 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 编辑器真的免费吗?
是的,完全免费。你可以无限创建图表、导出为 SVG/PNG、通过 URL 分享,并且无需注册或付费即可使用全部功能。该工具由不干扰体验的广告支持。
需要安装什么吗?
不需要安装任何东西。这是一个完全在浏览器中运行的网页工具。打开网站即可开始创建图表,桌面端、平板和手机都可用。
如何保存我的图表?
你可以通过多种方式保存:1)导出为 SVG 或 PNG;2)通过 URL 分享(图表代码编码在 URL 中);3)复制 Mermaid 文本代码到自己的文件;4)上传/下载 .mmd 或 .mermaid 文件。
可以在文档中使用这些图吗?
当然可以。将图表导出为 SVG(可缩放)或 PNG 后,可用于文档、演示或网站。你也可以在 GitHub、GitLab、Notion 等平台直接嵌入 Mermaid 代码。
SVG 和 PNG 有什么区别?
SVG 是矢量格式,任意缩放都清晰,非常适合文档和网页。PNG 是位图格式,便于快速分享,但缩放后会有画质损失。
为什么图表没有渲染出来?
请检查 Mermaid 代码中的语法错误。常见问题包括:引号未闭合、缺少冒号或分号、节点 ID 错误、或使用了不受支持的语法。可先简化图表定位问题。
可以和他人协作吗?
虽然不支持实时协作,但你可以通过 URL 轻松共享图表。其他人可以打开、编辑并回传他们的版本。Mermaid 是文本格式,也非常适合用 Git 协作。
可以离线使用吗?
首次加载需要联网。加载完成后,基础编辑通常可离线使用。但导出等部分功能可能仍需要网络连接。
如何学习 Mermaid 语法?
建议先阅读我们的 Mermaid 完整指南,里面有各类图表示例。也可以使用模板面板快速开始,并结合 mermaid.js.org 的官方文档学习。
可以自定义图表外观吗?
可以。图表会跟随网站主题:通过顶部栏的“主题”按钮在浅色与深色之间切换,图表会以对应的 Mermaid 主题重新渲染。若需高级自定义,可使用 %%{init:...}%% 指令设置颜色、字体和其他视觉属性。
支持哪些图表类型?
该编辑器支持 Mermaid 的主要图表类型:流程图、时序图、类图、状态图、ER 图、甘特图、饼图、Git 图、用户旅程图等。
我的图表数据是私密的吗?
你的图表代码不会发送到我们的服务器。所有渲染都在你的浏览器本地完成。通过 URL 分享时,代码保存在 URL 本身中;我们不会存储或跟踪你的图表内容。
为什么使用文本化图表?
文本化图表有很多优势:可版本控制(非常适合 Git)、更新快、风格一致、可搜索、轻量,并可通过程序自动生成。在 Pull Request 中也更易审阅。
可以把 Mermaid 嵌入网站吗?
可以。你可以在网站中引入 Mermaid JavaScript 库并添加 Mermaid 代码块。很多平台已原生支持 Mermaid,如 GitHub、GitLab、Notion、Obsidian 等。
建议的最大图表规模是多少?
没有硬性上限,但非常大的图表(约 100+ 节点)在某些设备上可能渲染较慢。对于复杂系统,建议拆分为多个更小、更聚焦的图表。

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

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

打开 Mermaid Viewer