Typora Mermaid图表完全教程:流程图、时序图、甘特图一键绘制
立即下载Typora 中文网 全平台支持 · 官方最新版
为什么要在Typora中使用Mermaid
在撰写技术文档、项目方案或学术论文时,图表往往比纯文字更直观。传统做法是在Visio、ProcessOn等工具中画好图,再导出为图片插入文档。但这种方式存在几个痛点:
- 图片不够清晰,放大后模糊
- 修改图表需要重新导出和替换
- 版本控制中图片是二进制文件,无法diff对比
- 导出PDF或HTML时图片可能丢失
Mermaid是一款基于JavaScript的图表绘制工具,它允许你用类似Markdown的文本语法来定义图表。Typora从0.9.98版本开始内置支持Mermaid,这意味着你可以在Typora中直接编写图表代码,实时渲染出专业图表,且导出时保持矢量清晰度。
Typora中启用Mermaid支持
检查Mermaid是否已启用
Typora默认开启Mermaid支持,但如果你的图表没有正确渲染,可以检查以下设置:
- 打开Typora → 文件 → 偏好设置
- 切换到「Markdown」标签页
- 确认「Markdown扩展语法」中「图表(Sequence、Flowchart等)」已勾选
- 重启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处理方式 | 建议 |
|---|---|---|
| 矢量渲染,清晰度好 | 推荐 | |
| HTML | 保留Mermaid代码,浏览器渲染 | 需引入Mermaid.js |
| Word | 转为图片插入 | 清晰度取决于设置 |
| 图片(PNG) | 直接渲染为图片 | 分辨率可设置 |
解决图表渲染问题
如果Mermaid图表在Typora中无法正常显示:
- 检查语法错误:Mermaid对语法很严格,缺少分号或括号不匹配都会导致渲染失败
- 更新Typora:旧版本可能不支持某些Mermaid新特性
- 使用在线编辑器调试:访问Mermaid Live Editor(mermaid.live)在线测试代码
- 简化图表:过于复杂的图表可能导致渲染超时,尝试拆分
与Markdown内容的配合
在Typora文档中,建议将Mermaid图表与文字说明结合使用:
- 在图表前用H3标题说明图表内容
- 图表后用文字解释关键节点或流程
- 复杂图表添加图例说明符号含义
- 使用Typora的「大纲」功能快速导航到各图表
总结
Mermaid让在Typora中绘制专业图表变得前所未有的简单。从基础的流程图到复杂的类图、时序图,你只需要掌握文本语法就能创建出清晰美观的可视化内容。最重要的是,这些图表以代码形式存在,方便版本控制、团队协作和后续修改。建议从流程图和时序图开始练习,逐步掌握更多图表类型,让你的Typora文档更加专业和易读。
这篇教程有帮助吗?立即下载Typora 中文网试试吧!
全平台支持 · 安全无毒 · 官方最新版