教程

使用 Mermaid 绘制甘特图:项目管理可视化完全指南

2025年12月1日
4 分钟阅读
mermaid2img

甘特图是项目管理可视化的基石。它将任务映射到时间线上,展示依赖关系、突出里程碑,并让资源分配对整个团队透明可见。传统上在 Microsoft Project 或 Excel 中制作,而现在甘特图可以完全用代码来创建——使其可版本控制、可自动化,并且易于嵌入文档中。

本指南将教你使用 Mermaid 构建专业甘特图所需的一切知识,从基础语法到高级项目规划模式。

为什么要用 Mermaid 画甘特图?

传统的甘特图工具将你的数据锁定在专有文件格式中。Mermaid 彻底改变了这一范式。

  • 文本化源码:你的进度计划保存在 Git 中,支持 Pull Request 审查和变更追踪。
  • 快速迭代:调整截止日期或添加任务只需几秒钟,无需在嵌套菜单中点击。
  • 文档原生:直接将实时甘特图嵌入 README、Wiki 或技术规范中。
  • CI/CD 兼容:从里程碑数据自动生成项目报告。

基础语法

每个甘特图都以 gantt 关键字开头,接着是日期格式声明和任务定义。

gantt
    title 网站重构项目
    dateFormat YYYY-MM-DD
    section 设计阶段
    线框图               :a1, 2025-12-01, 7d
    视觉设计             :a2, after a1, 10d
    section 开发阶段
    前端开发             :a3, after a2, 14d
    后端 API             :a4, after a2, 10d
    section 测试阶段
    QA 测试              :a5, after a3, 7d
    Bug 修复             :a6, after a5, 5d

关键组件说明

组件语法用途
titletitle 项目名称显示图表标题
dateFormatdateFormat YYYY-MM-DD定义日期解析方式
sectionsection 阶段名称将相关任务分组显示
任务名称任务名称图表上的人类可读标签
任务 ID:id,可选标识符,用于依赖引用
开始日期2025-12-01after id任务开始时间
持续时间7d, 2w, 1m任务运行时长

支持的日期格式

Mermaid 接受多种日期格式模式,选择与你数据源匹配的即可。

格式模式示例适用场景
YYYY-MM-DD2025-12-01ISO 标准,无歧义
MM-DD-YYYY12-01-2025美式数据源
DD-MM-YYYY01-12-2025欧洲数据源
YYYY/MM/DD2025/12/01替代分隔符风格

始终在图表顶部用 dateFormat 声明你选择的格式。

任务依赖关系

依赖关系是甘特图发挥真正威力的地方。Mermaid 支持两种依赖类型。

使用 after 的顺序依赖

使用 after taskId 让某个任务在另一个任务完成后才开始。

gantt
    dateFormat YYYY-MM-DD
    调研                 :r1, 2025-12-01, 5d
    分析                 :r2, after r1, 3d
    撰写报告             :r3, after r2, 4d

多前置任务依赖

一个任务可以依赖多个前置任务,它会在最后一个依赖完成后才开始。

gantt
    dateFormat YYYY-MM-DD
    前端开发             :f1, 2025-12-01, 10d
    后端开发             :b1, 2025-12-01, 8d
    集成测试             :i1, after f1 b1, 5d

任务状态指示器

Mermaid 允许你用视觉状态标签标记任务。

状态语法视觉效果
进行中Active, taskId, ...粗体彩色条
已完成Done, taskId, ...条纹或浅色条
关键路径Crit, taskId, ...红色高亮条
gantt
    dateFormat YYYY-MM-DD
    section 冲刺 1
    规划                 :done, p1, 2025-12-01, 2d
    核心功能             :active, c1, after p1, 5d
    安全审计             :crit, s1, after c1, 3d
    文档编写             :d1, after c1, 4d

里程碑

里程碑代表零持续时间的事件,如截止日期、发布节点或评审关口。

gantt
    dateFormat YYYY-MM-DD
    Alpha 开发           :a1, 2025-12-01, 14d
    Alpha 发布           :milestone, am, after a1, 0d
    Beta 开发            :b1, after am, 10d
    Beta 发布            :milestone, bm, after b1, 0d

里程碑在时间线上渲染为菱形形状,使其作为检查点一目了然。

实战案例:产品发布

以下是一个典型的产品发布甘特图,跨越三个月。

gantt
    title 2026 Q1 产品发布
    dateFormat YYYY-MM-DD

    section 策略
    市场调研             :done, mr, 2026-01-05, 10d
    竞品分析             :done, ca, after mr, 7d
    发布策略             :active, ls, after ca, 5d

    section 产品
    功能冻结             :milestone, ff, 2026-01-28, 0d
    QA 测试              :qa, 2026-01-29, 14d
    Bug 修复冲刺         :bf, after qa, 7d
    发布候选版           :milestone, rc, after bf, 0d

    section 市场
    内容创作             :cc, 2026-02-01, 14d
    落地页开发           :lp, after cc, 7d
    邮件营销             :ec, after lp, 5d

    section 发布
    新闻稿               :pr, 2026-02-24, 3d
    社交媒体推广         :sm, after pr, 2d
    正式发布             :milestone, ol, 2026-03-01, 0d

甘特图的最佳实践

遵循以下指南,让你的甘特图保持可读性和可维护性。

使用有意义的任务 ID。对于小型图表,r1dev1qa2 这样的 ID 已经足够。对于复杂项目,请使用描述性 ID,如 frontend_devsecurity_audit

使用 section 分组。分组创建视觉分隔。一个包含 20 个未分组任务的图表令人不知所措;同样的任务分成 4 个 section 后变得一目了然。

保持持续时间现实。Mermaid 不会验证你的进度计划是否可行。将其作为可视化层,覆盖在来自项目管理工具的现实估算之上。

与其他图表结合使用。将甘特图链接到包含流程图的需求文档,或开发阶段的 API 交互时序图。

导出给利益相关者。Mermaid2Img 让你可以将甘特图导出为 PNG 或 PDF,用于 PowerPoint 演示、邮件更新或打印报告。

常见陷阱

陷阱解决方案
缺少 dateFormat在任何任务之前始终声明 dateFormat
循环依赖确保 after 引用不会形成闭环
任务 ID 重复每个 ID 在图表内必须唯一
无效持续时间单位使用 d 表示天,w 表示周,m 表示月,y 表示年
未声明的前置任务after 中引用的任务必须在依赖任务之前存在

相关文章