Typora 中文网 v1.10.8 已更新(2026-07-20)—— 新增文件树面板改进,优化表格编辑体验,立即更新

Typora Mermaid图表完全教程:流程图、时序图、甘特图一键绘制

立即下载Typora 中文网 全平台支持 · 官方最新版

为什么要在Typora中使用Mermaid

在撰写技术文档、项目方案或学术论文时,图表往往比纯文字更直观。传统做法是在Visio、ProcessOn等工具中画好图,再导出为图片插入文档。但这种方式存在几个痛点:

Mermaid是一款基于JavaScript的图表绘制工具,它允许你用类似Markdown的文本语法来定义图表。Typora从0.9.98版本开始内置支持Mermaid,这意味着你可以在Typora中直接编写图表代码,实时渲染出专业图表,且导出时保持矢量清晰度。

Typora中启用Mermaid支持

检查Mermaid是否已启用

Typora默认开启Mermaid支持,但如果你的图表没有正确渲染,可以检查以下设置:

  1. 打开Typora → 文件 → 偏好设置
  2. 切换到「Markdown」标签页
  3. 确认「Markdown扩展语法」中「图表(Sequence、Flowchart等)」已勾选
  4. 重启Typora使设置生效

Mermaid代码块格式

在Typora中使用Mermaid非常简单,只需创建一个代码块并指定语言为mermaid:

```mermaid
graph TD
    A[开始] --> B[处理]
    B --> C[结束]

Typora会自动识别并渲染这段代码为流程图。

## 流程图(Flowchart)

流程图是Mermaid中最常用的图表类型,适合表示算法、业务流程或决策路径。

### 基本语法

```mermaid
graph TD
    A[开始] --> B{判断条件}
    B -->|条件成立| C[执行操作1]
    B -->|条件不成立| D[执行操作2]
    C --> E[结束]
    D --> E

流程图方向

方向关键字 含义 示例
TB / TD 从上到下 graph TD
BT 从下到上 graph BT
LR 从左到右 graph LR
RL 从右到左 graph RL

节点形状

语法 形状 用途
id[文本] 矩形 普通步骤
id(文本) 圆角矩形 开始/结束
id{文本} 菱形 判断/决策
id((文本)) 圆形 连接点
id>文本] 旗帜形 输出/显示
id[/文本/] 平行四边形 输入/输出

在Typora中绘制复杂流程图

以下是一个用户注册流程的完整示例:

graph TD
    Start([开始]) --> Input[输入手机号]
    Input --> Validate{格式正确?}
    Validate -->|否| Input
    Validate -->|是| SendCode[发送验证码]
    SendCode --> InputCode[输入验证码]
    InputCode --> CheckCode{验证码正确?}
    CheckCode -->|否| InputCode
    CheckCode -->|是| SetPwd[设置密码]
    SetPwd --> PwdStrong{密码强度足够?}
    PwdStrong -->|否| SetPwd
    PwdStrong -->|是| CreateAccount[创建账户]
    CreateAccount --> Success([注册成功])

时序图(Sequence Diagram)

时序图用于描述对象之间的交互顺序,特别适合表示API调用、系统交互或业务流程中各角色的协作关系。

基本语法

sequenceDiagram
    participant A as 客户端
    participant B as 服务器
    participant C as 数据库

    A->>B: 发送请求
    B->>C: 查询数据
    C-->>B: 返回结果
    B-->>A: 响应数据

常用箭头类型

语法 含义
->> 实线箭头(同步消息)
-->> 虚线箭头(返回消息)
-x 实线带叉(删除/销毁)
--x 虚线带叉(异步返回)

在Typora中绘制API调用时序图

sequenceDiagram
    autonumber
    actor U as 用户
    participant F as 前端页面
    participant API as 网关API
    participant Auth as 认证服务
    participant DB as 用户数据库

    U->>F: 点击登录按钮
    F->>API: POST /api/login
    API->>Auth: 验证用户名密码
    Auth->>DB: 查询用户信息
    DB-->>Auth: 返回用户数据
    Auth-->>API: 签发JWT令牌
    API-->>F: 返回Token和用户信息
    F->>F: 保存Token到本地存储
    F-->>U: 跳转至首页

甘特图(Gantt Diagram)

甘特图是项目管理中最常用的图表,用于展示任务的时间安排和进度。

基本语法

gantt
    title 项目开发计划
    dateFormat YYYY-MM-DD
    section 需求阶段
    需求分析     :a1, 2026-09-01, 7d
    原型设计     :a2, after a1, 5d
    section 开发阶段
    前端开发     :a3, after a2, 14d
    后端开发     :a4, after a2, 14d
    接口联调     :a5, after a3, 5d
    section 测试阶段
    功能测试     :a6, after a5, 7d
    上线部署     :a7, after a6, 2d

甘特图常用配置

配置项 说明 示例
dateFormat 日期格式 YYYY-MM-DD
axisFormat 坐标轴格式 %m-%d
todayMarker 今日标记 自动显示
excludes 排除日期 weekends

Typora中的项目甘特图示例

gantt
    title 网站重构项目排期
    dateFormat YYYY-MM-DD
    excludes weekends

    section 准备阶段
    技术调研       :done, prep1, 2026-08-01, 5d
    方案评审       :done, prep2, after prep1, 3d

    section 开发阶段
    数据库设计     :active, dev1, after prep2, 4d
    API开发        :dev2, after dev1, 10d
    前端页面开发   :dev3, after dev1, 12d

    section 测试上线
    集成测试       :test1, after dev2, 5d
    用户验收       :test2, after test1, 3d
    正式上线       :milestone, deploy, after test2, 0d

类图(Class Diagram)

类图用于展示面向对象系统中的类结构和关系,是软件设计文档的重要组成部分。

基本语法

classDiagram
    class Animal {
        +String name
        +int age
        +makeSound()
        +move()
    }

    class Dog {
        +String breed
        +fetch()
    }

    class Cat {
        +String color
        +climb()
    }

    Animal <|-- Dog
    Animal <|-- Cat

类关系符号

符号 关系 示例
<|-- 继承 父类 |> 子类
*-- 组合 强拥有关系
o-- 聚合 弱拥有关系
--> 关联 知道对方
..> 依赖 使用对方

Typora中的类图示例

classDiagram
    class User {
        -String id
        -String email
        -String passwordHash
        +login()
        +logout()
        +updateProfile()
    }

    class Order {
        -String orderId
        -Date createTime
        -float totalAmount
        +pay()
        +cancel()
        +refund()
    }

    class Product {
        -String sku
        -String name
        -float price
        +getDetails()
    }

    User "1" --> "*" Order : 拥有
    Order "*" --> "1" Product : 包含

其他常用图表类型

饼图(Pie Chart)

适合展示比例分布:

pie title 用户设备分布
    "Windows" : 45
    "macOS" : 25
    "Android" : 20
    "iOS" : 8
    "Linux" : 2

状态图(State Diagram)

适合表示状态转换:

stateDiagram-v2
    [*] --> 草稿
    草稿 --> 审核中 : 提交审核
    审核中 --> 已发布 : 审核通过
    审核中 --> 草稿 : 审核驳回
    已发布 --> 已归档 : 过期归档
    已归档 --> [*]

实体关系图(ER Diagram)

适合数据库设计:

erDiagram
    CUSTOMER ||--o{ ORDER : places
    CUSTOMER {
        string id PK
        string name
        string email
    }
    ORDER {
        string id PK
        string customerId FK
        date orderDate
        float total
    }

Typora中Mermaid的实用技巧

图表导出设置

Typora导出文档时,Mermaid图表的处理方式:

导出格式 Mermaid处理方式 建议
PDF 矢量渲染,清晰度好 推荐
HTML 保留Mermaid代码,浏览器渲染 需引入Mermaid.js
Word 转为图片插入 清晰度取决于设置
图片(PNG) 直接渲染为图片 分辨率可设置

解决图表渲染问题

如果Mermaid图表在Typora中无法正常显示:

  1. 检查语法错误:Mermaid对语法很严格,缺少分号或括号不匹配都会导致渲染失败
  2. 更新Typora:旧版本可能不支持某些Mermaid新特性
  3. 使用在线编辑器调试:访问Mermaid Live Editor(mermaid.live)在线测试代码
  4. 简化图表:过于复杂的图表可能导致渲染超时,尝试拆分

与Markdown内容的配合

在Typora文档中,建议将Mermaid图表与文字说明结合使用:

  1. 在图表前用H3标题说明图表内容
  2. 图表后用文字解释关键节点或流程
  3. 复杂图表添加图例说明符号含义
  4. 使用Typora的「大纲」功能快速导航到各图表

总结

Mermaid让在Typora中绘制专业图表变得前所未有的简单。从基础的流程图到复杂的类图、时序图,你只需要掌握文本语法就能创建出清晰美观的可视化内容。最重要的是,这些图表以代码形式存在,方便版本控制、团队协作和后续修改。建议从流程图和时序图开始练习,逐步掌握更多图表类型,让你的Typora文档更加专业和易读。

这篇教程有帮助吗?立即下载Typora 中文网试试吧!

全平台支持 · 安全无毒 · 官方最新版