如何仅通过Mermaid语法隐藏Gantt图指定日期前后部分,渲染特定时间范围?
Mermaid Gantt图时间范围过滤方案
以下是纯Mermaid语法实现Gantt图时间范围过滤的两种方案,完全匹配你的需求:
1. 隐藏指定日期前内容,仅展示特定时间范围
核心是使用Mermaid Gantt原生的dateRange参数强制限定图表的显示区间,超出区间的历史任务会被自动隐藏,只保留目标范围内的内容。
示例:以今日为起始展示后续计划
gantt dateFormat YYYY-MM-DD dateRange today, +120d // 从今日开始,往后120天的范围 title 近期项目执行计划 section 开发任务 模块A开发 :active, a1, today, 30d 模块B开发 : a2, after a1, 40d 集成测试 : test, after a2, 20d section 上线准备 预发布验证 : pre-deploy, after test, 15d 正式上线 : deploy, after pre-deploy, 10d
示例:自定义起始日期隐藏历史内容
gantt dateFormat YYYY-MM-DD dateRange 2024-06-01, 2024-09-30 // 仅展示2024年中到Q3末 title 项目中期执行计划 section 已完成(自动隐藏) 需求梳理 :done, req, 2024-03-01, 45d 原型定稿 :done, proto, after req, 20d section 当前执行 后端迭代 :active, back-end, 2024-06-05, 50d 前端适配 : front-end, after back-end, 35d section 后续安排 性能测试 : perf-test, after front-end, 25d 版本发布 : release, after perf-test, 10d
说明:dateRange支持多种格式:固定日期(YYYY-MM-DD)、相对日期(如+90d表示90天后)、today关键字(自动识别当前日期)。超出该区间的任务不会在图表中渲染,仅保留区间内的任务和时间轴。
2. 隐藏指定日期前/后内容,过滤长项目无关部分
针对长项目计划,只需调整dateRange的起止值,即可灵活隐藏指定日期之前或之后的内容,无需修改任务本身。
示例:隐藏指定日期之后的内容(仅展示上半年)
gantt dateFormat YYYY-MM-DD dateRange 2024-01-01, 2024-06-30 // 仅展示上半年内容,自动隐藏下半年任务 title 项目上半年复盘 section Q1任务 启动筹备 :done, q1-1, 2024-01-05, 30d 核心模块开发 :done, q1-2, after q1-1, 45d section Q2任务 功能迭代 :done, q2-1, 2024-04-10, 35d 内部测试 :done, q2-2, after q2-1, 25d section Q3任务(自动隐藏) 外部验收 : q3-1, 2024-07-05, 20d 版本迭代 : q3-2, after q3-1, 30d
关键注意点
dateRange是Mermaid原生参数,完全基于语法实现过滤,无需第三方工具- 跨区间的任务会被自动截断,仅显示落在
dateRange内的部分 - 可结合
axisFormat参数调整时间轴显示格式(如axisFormat %m/%d),让长区间图表更简洁
内容的提问来源于stack exchange,提问作者Maxim Volgin
相关产品推荐
相关产品推荐

