Typora Mermaid图表教程:流程图/时序图/甘特图/类图完整速查
立即下载Typora 中文下载站 全平台支持 · 官方最新版
Typora的Mermaid图表到底怎么用
Typora从0.9.98版本开始支持Mermaid图表。打开Typora后,创建Mermaid图表只需两步:
1. 输入 ```mermaid (三个反引号+ mermaid)
2. 输入Mermaid语法代码
3. 在代码块外点击,Typora自动渲染为图表
效果:你写的是文本代码块,Typora实时渲染成精美的流程图、时序图、甘特图等可视化图表。
本文以速查表+实战案例为主,你可以直接复制粘贴文中代码修改使用。
Mermaid基础概念速查
代码块声明
```mermaid
flowchart TD
A[开始] --> B{判断}
B -->|是| C[执行]
B -->|否| D[结束]
```
图表方向
| 方向 | 语法 | 说明 |
|---|---|---|
| Top-Down(自上而下) | TD 或 TB |
默认,流程图最常用 |
| Bottom-Up(自下而上) | BT |
倒置布局 |
| Left-Right(从左到右) | LR |
时序图常用 |
| Right-Left | RL |
反向布局 |
节点形状速查
| 形状 | 语法 | 适用 |
|---|---|---|
| 矩形 | A[文字] |
普通步骤 |
| 圆角矩形 | A(文字) |
流程开始/结束 |
| 菱形(判断) | A{文字} |
条件分支 |
| 平行四边形 | A[/文字/] |
输入/输出 |
| 圆柱 | A[(数据库)] |
数据库 |
| 圆形 | A((文字)) |
起点 |
| 六边形 | A{{文字}} |
准备 |
| 梯形 | A[/文字\] |
手动操作 |
12个实战案例(直接复制用)
案例1:基本流程图
flowchart TD
A[用户访问网站] --> B{是否登录?}
B -->|是| C[显示主页]
B -->|否| D[跳转登录页]
D --> E[输入账号密码]
E --> F{验证通过?}
F -->|是| C
F -->|否| G[显示错误]
G --> E
案例2:数据处理流水线
flowchart LR
A[原始数据] --> B[数据清洗]
B --> C[数据转换]
C --> D[特征工程]
D --> E[模型训练]
E --> F{准确率达标?}
F -->|是| G[模型部署]
F -->|否| H[调整超参数]
H --> E
案例3:用户登录时序图
sequenceDiagram
participant U as 用户
participant B as 浏览器
participant S as 服务器
participant D as 数据库
U->>B: 输入账号密码
B->>S: POST /login
S->>D: 查询用户
D-->>S: 返回用户信息
S->>S: 验证密码哈希
alt 验证成功
S-->>B: 返回JWT Token
B-->>U: 显示登录成功
else 验证失败
S-->>B: 返回401
B-->>U: 显示错误
end
案例4:API调用时序图
sequenceDiagram
participant App as 移动App
participant GW as API网关
participant Auth as 认证服务
participant Order as 订单服务
participant Pay as 支付服务
App->>GW: POST /api/orders
GW->>Auth: 验证Token
Auth-->>GW: 用户ID
GW->>Order: 创建订单
Order->>Pay: 请求支付
Pay-->>Order: 支付链接
Order-->>GW: 订单结果
GW-->>App: 响应数据
案例5:项目甘特图
gantt
title 某App开发计划
dateFormat YYYY-MM-DD
section 设计阶段
需求分析 :a1, 2026-01-01, 7d
UI设计 :a2, after a1, 10d
section 开发阶段
后端开发 :b1, after a2, 20d
前端开发 :b2, after a2, 15d
测试环境部署 :b3, after b1, 3d
section 测试上线
功能测试 :c1, after b2, 7d
性能测试 :c2, after c1, 5d
正式上线 :milestone, after c2, 0d
案例6:OOP类图
classDiagram
class Animal {
+String name
+int age
+makeSound()
}
class Dog {
+String breed
+bark()
+fetch()
}
class Cat {
+String color
+meow()
+climb()
}
Animal <|-- Dog
Animal <|-- Cat
Dog ..|> Trainable : 实现
class Trainable {
<<interface>>
+train()
+perform()
}
案例7:订单状态机
stateDiagram-v2
[*] --> 待支付
待支付 --> 已支付 : 用户付款
待支付 --> 已取消 : 超时取消
已支付 --> 待发货 : 商家处理
待发货 --> 已发货 : 物流揽收
已发货 --> 已收货 : 用户确认
已支付 --> 申请退款 : 用户申请
申请退款 --> 已退款 : 商家同意
已收货 --> [*]
已退款 --> [*]
案例8:电商系统架构图
flowchart TB
subgraph 用户层
A1[Web端]
A2[移动App]
A3[小程序]
end
subgraph 网关层
B[API网关]
end
subgraph 业务层
C1[用户服务]
C2[商品服务]
C3[订单服务]
C4[支付服务]
end
subgraph 数据层
D1[(MySQL)]
D2[(Redis)]
D3[(Elasticsearch)]
end
A1 --> B
A2 --> B
A3 --> B
B --> C1
B --> C2
B --> C3
B --> C4
C1 --> D1
C2 --> D1
C3 --> D1
C1 --> D2
C2 --> D3
案例9:饼图(数据可视化)
pie title 浏览器市场份额
"Chrome" : 65
"Safari" : 18
"Edge" : 5
"Firefox" : 4
"其他" : 8
案例10:Git分支图
gitGraph
commit
commit
branch develop
checkout develop
commit
commit
checkout main
merge develop
commit
branch feature
checkout feature
commit
commit
checkout main
merge feature
commit
案例11:用户旅程图(Journey)
journey
title 用户从了解到付费的旅程
section 认识
浏览搜索结果: 3: 用户
阅读产品介绍: 4: 用户
section 考虑
对比竞品: 3: 用户
查看定价: 4: 用户
观看教程视频: 4: 用户
section 试用
注册免费账户: 5: 用户
体验核心功能: 4: 用户
section 购买
查看套餐: 3: 用户
完成支付: 5: 用户
案例12:C4架构图
flowchart LR
subgraph 外部用户
USER[终端用户]
end
subgraph 系统边界
WEB[Web应用]
API[API服务]
DB[(数据库)]
end
USER -->|使用| WEB
WEB -->|调用| API
API -->|读写| DB
Mermaid主题设置
Typora v1.0+支持切换Mermaid主题:
Typora → 偏好设置 → Markdown → Mermaid Theme:
• 默认 (Default)
• 森林 (Forest) — 适合白底文档
• 暗黑 (Dark) — 适合深色主题
• 中性 (Neutral)
或在代码块中临时指定:
```mermaid
%%{init: {'theme':'forest'}}%%
flowchart TD
A --> B
```
Mermaid导出注意事项
Typora导出PDF/HTML时,Mermaid图表的处理:
| 导出格式 | Mermaid处理 | 备注 |
|---|---|---|
| 嵌入为矢量,清晰 | Mermaid v9+ 在PDF中可能为图片 | |
| HTML | 渲染为SVG | 完美保留 |
| 图片(PNG/JPG) | 截图嵌入 | 注意字体回退 |
| Word(docx) | 通常转为图片 | 模糊不清晰 |
导出PDF的最佳实践:
- 用Typora 1.5+版本(Mermaid v10兼容性更好)
- 如果PDF中图表显示异常,改用HTML格式导出PDF(用Chromium)
常见Mermaid错误与修复
错误1:图表不渲染
原因:代码块第一行有空格或Tab
修复:确保 ```mermaid 顶格写
错误2:连线断错位置
flowchart TD
A --> B
B --> C
C --> D
错误3:特殊字符未转义
如果节点文字包含 ()[]{}| 等特殊字符:
flowchart TD
A["包含(括号)的文字"] --> B
用双引号包起来转义。
错误4:中文标点问题
中文逗号、句号在某些版本会破坏流程图。建议改用英文标点或用引号包裹:
flowchart TD
A["开始,处理用户请求"] --> B[保存到数据库]
错误5:时序图渲染失败
sequenceDiagram
Alice->>Bob: 你好
Alice、Bob中间->>不能有空格,且必须是大写开头的合法标识符或被引号包裹。
错误6:图表与文本混合渲染失败
确保Mermaid代码块与上下文本之间有空行,否则Typora可能识别为普通代码块。
Mermaid vs PlantUML vs Graphviz对比
| 工具 | 学习曲线 | Mermaid在Typora中 | 功能完整度 |
|---|---|---|---|
| Mermaid | ⭐ 简单 | ✅ 原生支持 | 中(够用) |
| PlantUML | 中等 | 需安装扩展 | 强(企业首选) |
| Graphviz | 较陡 | 需扩展 | 强(学术图) |
如果只是写文档配图,Mermaid是最简单快捷的选择。
进阶:Mermaid 10新功能(2024+)
如果你的Typora版本够新(Mermaid 10+),还能用这些高级功能:
子图与图块
flowchart TB
subgraph Frontend["前端"]
FE1[React]
FE2[Vue]
end
subgraph Backend["后端"]
BE1[Node.js]
BE2[Java]
end
FE1 --> BE1
FE2 --> BE2
注释
flowchart TD
A[开始] --> B[处理]
%% 这是注释
B --> C[结束]
时间轴
timeline
title 编程语言发展
1950 : Fortran
1970 : C
1990 : Python
2010 : Go
总结:Mermaid是Typora的“隐藏大招”
很多Typora用户买完软件,只用它写作常规Markdown,错过了Mermaid这个核心优势。Mermaid让你在Markdown里直接画流程图、时序图、架构图、甘特图,不需要额外工具,导出PDF/HTML时图表照样精美。
本文提供的12个模板覆盖了90%的常用图表场景。建议:
- 收藏本文,需要时查代码
- 自己常用的3-4个图表(流程图、时序图、类图、甘特图)代码记下来
- 在团队技术文档、需求文档、设计文档中大量使用
下次写技术文档不用再画Visio或PPT架构图了——Typora + Mermaid,纯文本出图,所见即所得。
这篇教程有帮助吗?立即下载Typora 中文下载站试试吧!
全平台支持 · 安全无毒 · 官方最新版