sirena 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +7 -0
- data/.github/workflows/build_deploy.yml +59 -0
- data/.github/workflows/links.yml +85 -0
- data/.github/workflows/rake.yml +15 -0
- data/.github/workflows/release.yml +27 -0
- data/.gitignore +68 -0
- data/.rspec +3 -0
- data/.rubocop.yml +14 -0
- data/.rubocop_todo.yml +70 -0
- data/ARCHITECTURE.md +744 -0
- data/Gemfile +12 -0
- data/LICENSE +25 -0
- data/README.adoc +357 -0
- data/Rakefile +11 -0
- data/docs/.gitignore +1 -0
- data/docs/Gemfile +13 -0
- data/docs/_config.yml +182 -0
- data/docs/_diagram_types/architecture-diagram.adoc +314 -0
- data/docs/_diagram_types/block-diagram.adoc +345 -0
- data/docs/_diagram_types/c4-diagram.adoc +559 -0
- data/docs/_diagram_types/class-diagram.adoc +816 -0
- data/docs/_diagram_types/er-diagram.adoc +719 -0
- data/docs/_diagram_types/error-diagram.adoc +114 -0
- data/docs/_diagram_types/examples/flowchart-examples.adoc +29 -0
- data/docs/_diagram_types/flowchart.adoc +488 -0
- data/docs/_diagram_types/gantt-chart.adoc +502 -0
- data/docs/_diagram_types/git-graph.adoc +600 -0
- data/docs/_diagram_types/index.adoc +192 -0
- data/docs/_diagram_types/info-diagram.adoc +103 -0
- data/docs/_diagram_types/kanban-diagram.adoc +262 -0
- data/docs/_diagram_types/mindmap.adoc +603 -0
- data/docs/_diagram_types/packet-diagram.adoc +378 -0
- data/docs/_diagram_types/pie-chart.adoc +335 -0
- data/docs/_diagram_types/quadrant-chart.adoc +406 -0
- data/docs/_diagram_types/radar-chart.adoc +528 -0
- data/docs/_diagram_types/requirement-diagram.adoc +416 -0
- data/docs/_diagram_types/sankey-diagram.adoc +357 -0
- data/docs/_diagram_types/sequence-diagram.adoc +664 -0
- data/docs/_diagram_types/state-diagram.adoc +658 -0
- data/docs/_diagram_types/timeline.adoc +352 -0
- data/docs/_diagram_types/treemap-diagram.adoc +462 -0
- data/docs/_diagram_types/user-journey.adoc +602 -0
- data/docs/_features/index.adoc +129 -0
- data/docs/_guides/cli-reference.adoc +203 -0
- data/docs/_guides/index.adoc +56 -0
- data/docs/_guides/installation.adoc +100 -0
- data/docs/_guides/quick-start.adoc +132 -0
- data/docs/_pages/comparison.adoc +441 -0
- data/docs/_pages/compatibility.adoc +300 -0
- data/docs/_pages/index.adoc +39 -0
- data/docs/_references/index.adoc +103 -0
- data/docs/_tutorials/index.adoc +57 -0
- data/docs/index.adoc +166 -0
- data/docs/lychee.toml +54 -0
- data/examples/.gitignore +10 -0
- data/examples/README.adoc +196 -0
- data/examples/README.md +64 -0
- data/examples/architecture/01-basic-services.mmd +9 -0
- data/examples/architecture/01-basic-services.svg +37 -0
- data/examples/architecture/02-service-groups.mmd +16 -0
- data/examples/architecture/02-service-groups.svg +55 -0
- data/examples/architecture/README.adoc +79 -0
- data/examples/block/01-basic-blocks.mmd +13 -0
- data/examples/block/01-basic-blocks.svg +44 -0
- data/examples/block/02-block-shapes.mmd +13 -0
- data/examples/block/02-block-shapes.svg +47 -0
- data/examples/block/README.adoc +85 -0
- data/examples/c4/01-context-diagram.mmd +10 -0
- data/examples/c4/01-context-diagram.svg +45 -0
- data/examples/c4/02-container-diagram.mmd +24 -0
- data/examples/c4/02-container-diagram.svg +105 -0
- data/examples/c4/README.adoc +92 -0
- data/examples/class_diagram/01-basic-classes.mmd +61 -0
- data/examples/class_diagram/01-basic-classes.svg +117 -0
- data/examples/class_diagram/02-relationships.mmd +61 -0
- data/examples/class_diagram/02-relationships.svg +129 -0
- data/examples/class_diagram/README.adoc +93 -0
- data/examples/er_diagram/01-basic-entities.mmd +64 -0
- data/examples/er_diagram/01-basic-entities.svg +5 -0
- data/examples/er_diagram/02-cardinality.mmd +57 -0
- data/examples/er_diagram/02-cardinality.svg +125 -0
- data/examples/er_diagram/README.adoc +88 -0
- data/examples/error/01-basic-error.mmd +1 -0
- data/examples/error/01-basic-error.svg +13 -0
- data/examples/error/02-error-display.mmd +1 -0
- data/examples/error/02-error-display.svg +13 -0
- data/examples/error/README.adoc +71 -0
- data/examples/error_message_example.svg +13 -0
- data/examples/flowchart/00-original.mmd +13 -0
- data/examples/flowchart/00-original.svg +5 -0
- data/examples/flowchart/01-basic-flow.mmd +7 -0
- data/examples/flowchart/01-basic-flow.svg +52 -0
- data/examples/flowchart/01-basic-flow.yml +13 -0
- data/examples/flowchart/02*.svg +87 -0
- data/examples/flowchart/02-node-shapes.mmd +9 -0
- data/examples/flowchart/02-node-shapes.svg +33 -0
- data/examples/flowchart/03-edge-types.mmd +7 -0
- data/examples/flowchart/03-edge-types.svg +53 -0
- data/examples/flowchart/04-subgraphs.mmd +9 -0
- data/examples/flowchart/04-subgraphs.svg +33 -0
- data/examples/flowchart/05-styling.mmd +9 -0
- data/examples/flowchart/05-styling.svg +33 -0
- data/examples/flowchart/06-complex-flow.mmd +8 -0
- data/examples/flowchart/06-complex-flow.svg +59 -0
- data/examples/flowchart/README.adoc +167 -0
- data/examples/gantt/01-simple-timeline.* +14 -0
- data/examples/gantt/01-simple-timeline.mmd +6 -0
- data/examples/gantt/01-simple-timeline.svg +26 -0
- data/examples/gantt/02-task-dependencies.mmd +6 -0
- data/examples/gantt/02-task-dependencies.svg +26 -0
- data/examples/gantt/README.adoc +86 -0
- data/examples/git_graph/01-linear-history.mmd +12 -0
- data/examples/git_graph/01-linear-history.svg +26 -0
- data/examples/git_graph/02-branching.mmd +12 -0
- data/examples/git_graph/02-branching.svg +26 -0
- data/examples/git_graph/README.adoc +73 -0
- data/examples/info/02-showinfo.mmd +1 -0
- data/examples/info/02-showinfo.svg +10 -0
- data/examples/info/README.adoc +58 -0
- data/examples/info_showinfo_example.svg +10 -0
- data/examples/kanban/01-simple-board.mmd +8 -0
- data/examples/kanban/01-simple-board.svg +43 -0
- data/examples/kanban/02-workflow.mmd +8 -0
- data/examples/kanban/02-workflow.svg +43 -0
- data/examples/kanban/README.adoc +79 -0
- data/examples/mindmap/01-simple-tree.mmd +19 -0
- data/examples/mindmap/01-simple-tree.svg +61 -0
- data/examples/mindmap/02-knowledge-map.mmd +19 -0
- data/examples/mindmap/02-knowledge-map.svg +61 -0
- data/examples/mindmap/README.adoc +77 -0
- data/examples/packet/01-basic-packet.* +17 -0
- data/examples/packet/01-basic-packet.mmd +4 -0
- data/examples/packet/01-basic-packet.svg +82 -0
- data/examples/packet/README.adoc +58 -0
- data/examples/pie/01-simple-chart.mmd +5 -0
- data/examples/pie/01-simple-chart.svg +17 -0
- data/examples/pie/02-labeled-slices.mmd +6 -0
- data/examples/pie/02-labeled-slices.svg +19 -0
- data/examples/pie/README.adoc +75 -0
- data/examples/quadrant/01-basic-quadrant.mmd +13 -0
- data/examples/quadrant/01-basic-quadrant.svg +33 -0
- data/examples/quadrant/02-positioned-items.mmd +14 -0
- data/examples/quadrant/02-positioned-items.svg +35 -0
- data/examples/quadrant/README.adoc +84 -0
- data/examples/radar/01-simple-radar.* +5 -0
- data/examples/radar/01-simple-radar.mmd +3 -0
- data/examples/radar/01-simple-radar.svg +25 -0
- data/examples/radar/02-multiple-curves.mmd +4 -0
- data/examples/radar/02-multiple-curves.svg +43 -0
- data/examples/radar/README.adoc +75 -0
- data/examples/requirement/01-basic-requirements.mmd +23 -0
- data/examples/requirement/01-basic-requirements.svg +49 -0
- data/examples/requirement/02-risk-levels.mmd +23 -0
- data/examples/requirement/02-risk-levels.svg +49 -0
- data/examples/requirement/README.adoc +85 -0
- data/examples/sankey/01-simple-flow.mmd +7 -0
- data/examples/sankey/01-simple-flow.svg +34 -0
- data/examples/sankey/02-multi-stage.mmd +11 -0
- data/examples/sankey/02-multi-stage.svg +44 -0
- data/examples/sankey/README.adoc +74 -0
- data/examples/sequence/01-basic-sequence.mmd +27 -0
- data/examples/sequence/01-basic-sequence.svg +5 -0
- data/examples/sequence/02-activations.mmd +17 -0
- data/examples/sequence/02-activations.svg +78 -0
- data/examples/sequence/README.adoc +86 -0
- data/examples/state_diagram/01-simple-states.mmd +29 -0
- data/examples/state_diagram/01-simple-states.svg +5 -0
- data/examples/state_diagram/02-composite.mmd +19 -0
- data/examples/state_diagram/02-composite.svg +81 -0
- data/examples/state_diagram/README.adoc +90 -0
- data/examples/timeline/01-simple-timeline.mmd +11 -0
- data/examples/timeline/01-simple-timeline.svg +36 -0
- data/examples/timeline/02-periods.mmd +15 -0
- data/examples/timeline/02-periods.svg +47 -0
- data/examples/timeline/README.adoc +78 -0
- data/examples/treemap/01-basic-treemap.mmd +12 -0
- data/examples/treemap/01-basic-treemap.svg +59 -0
- data/examples/treemap/README.adoc +59 -0
- data/examples/user_journey/01-simple-journey.mmd +23 -0
- data/examples/user_journey/01-simple-journey.svg +5 -0
- data/examples/user_journey/02-multi-actor.mmd +18 -0
- data/examples/user_journey/02-multi-actor.svg +129 -0
- data/examples/user_journey/README.adoc +81 -0
- data/examples/xychart/01-line-chart.mmd +5 -0
- data/examples/xychart/01-line-chart.svg +43 -0
- data/examples/xychart/02-bar-chart.mmd +7 -0
- data/examples/xychart/02-bar-chart.svg +48 -0
- data/examples/xychart/README.adoc +80 -0
- data/exe/sirena +7 -0
- data/lib/sirena/cli.rb +138 -0
- data/lib/sirena/commands/batch.rb +117 -0
- data/lib/sirena/commands/render.rb +80 -0
- data/lib/sirena/commands/types.rb +29 -0
- data/lib/sirena/commands/version.rb +24 -0
- data/lib/sirena/diagram/architecture.rb +46 -0
- data/lib/sirena/diagram/base.rb +61 -0
- data/lib/sirena/diagram/block.rb +81 -0
- data/lib/sirena/diagram/c4.rb +328 -0
- data/lib/sirena/diagram/class_diagram.rb +385 -0
- data/lib/sirena/diagram/er_diagram.rb +238 -0
- data/lib/sirena/diagram/error.rb +38 -0
- data/lib/sirena/diagram/flowchart.rb +160 -0
- data/lib/sirena/diagram/gantt.rb +71 -0
- data/lib/sirena/diagram/git_graph.rb +36 -0
- data/lib/sirena/diagram/info.rb +38 -0
- data/lib/sirena/diagram/kanban.rb +178 -0
- data/lib/sirena/diagram/mindmap.rb +54 -0
- data/lib/sirena/diagram/packet.rb +79 -0
- data/lib/sirena/diagram/pie.rb +115 -0
- data/lib/sirena/diagram/quadrant.rb +138 -0
- data/lib/sirena/diagram/radar.rb +52 -0
- data/lib/sirena/diagram/requirement.rb +133 -0
- data/lib/sirena/diagram/sankey.rb +217 -0
- data/lib/sirena/diagram/sequence.rb +242 -0
- data/lib/sirena/diagram/state_diagram.rb +237 -0
- data/lib/sirena/diagram/timeline.rb +171 -0
- data/lib/sirena/diagram/treemap.rb +84 -0
- data/lib/sirena/diagram/user_journey.rb +149 -0
- data/lib/sirena/diagram/xy_chart.rb +76 -0
- data/lib/sirena/diagram.rb +8 -0
- data/lib/sirena/diagram_registry.rb +101 -0
- data/lib/sirena/engine.rb +292 -0
- data/lib/sirena/parser/architecture.rb +41 -0
- data/lib/sirena/parser/base.rb +41 -0
- data/lib/sirena/parser/block.rb +72 -0
- data/lib/sirena/parser/c4.rb +53 -0
- data/lib/sirena/parser/class_diagram.rb +63 -0
- data/lib/sirena/parser/er_diagram.rb +40 -0
- data/lib/sirena/parser/error.rb +49 -0
- data/lib/sirena/parser/flowchart.rb +71 -0
- data/lib/sirena/parser/gantt.rb +60 -0
- data/lib/sirena/parser/git_graph.rb +95 -0
- data/lib/sirena/parser/grammars/architecture.rb +145 -0
- data/lib/sirena/parser/grammars/block.rb +190 -0
- data/lib/sirena/parser/grammars/c4.rb +226 -0
- data/lib/sirena/parser/grammars/class_diagram.rb +284 -0
- data/lib/sirena/parser/grammars/common.rb +84 -0
- data/lib/sirena/parser/grammars/er_diagram.rb +114 -0
- data/lib/sirena/parser/grammars/error.rb +40 -0
- data/lib/sirena/parser/grammars/flowchart.rb +298 -0
- data/lib/sirena/parser/grammars/gantt.rb +252 -0
- data/lib/sirena/parser/grammars/git_graph.rb +167 -0
- data/lib/sirena/parser/grammars/info.rb +58 -0
- data/lib/sirena/parser/grammars/kanban.rb +83 -0
- data/lib/sirena/parser/grammars/mindmap.rb +115 -0
- data/lib/sirena/parser/grammars/packet.rb +73 -0
- data/lib/sirena/parser/grammars/pie.rb +128 -0
- data/lib/sirena/parser/grammars/quadrant.rb +199 -0
- data/lib/sirena/parser/grammars/radar.rb +150 -0
- data/lib/sirena/parser/grammars/requirement.rb +188 -0
- data/lib/sirena/parser/grammars/sankey.rb +104 -0
- data/lib/sirena/parser/grammars/sequence.rb +247 -0
- data/lib/sirena/parser/grammars/state_diagram.rb +172 -0
- data/lib/sirena/parser/grammars/timeline.rb +142 -0
- data/lib/sirena/parser/grammars/treemap.rb +120 -0
- data/lib/sirena/parser/grammars/xy_chart.rb +120 -0
- data/lib/sirena/parser/info.rb +49 -0
- data/lib/sirena/parser/kanban.rb +97 -0
- data/lib/sirena/parser/mindmap.rb +106 -0
- data/lib/sirena/parser/packet.rb +76 -0
- data/lib/sirena/parser/pie.rb +49 -0
- data/lib/sirena/parser/quadrant.rb +57 -0
- data/lib/sirena/parser/radar.rb +104 -0
- data/lib/sirena/parser/requirement.rb +70 -0
- data/lib/sirena/parser/sankey.rb +64 -0
- data/lib/sirena/parser/sequence.rb +51 -0
- data/lib/sirena/parser/state_diagram.rb +69 -0
- data/lib/sirena/parser/timeline.rb +57 -0
- data/lib/sirena/parser/transforms/architecture.rb +97 -0
- data/lib/sirena/parser/transforms/block.rb +254 -0
- data/lib/sirena/parser/transforms/c4.rb +347 -0
- data/lib/sirena/parser/transforms/class_diagram.rb +352 -0
- data/lib/sirena/parser/transforms/er_diagram.rb +169 -0
- data/lib/sirena/parser/transforms/error.rb +58 -0
- data/lib/sirena/parser/transforms/flowchart.rb +293 -0
- data/lib/sirena/parser/transforms/gantt.rb +215 -0
- data/lib/sirena/parser/transforms/git_graph.rb +160 -0
- data/lib/sirena/parser/transforms/info.rb +58 -0
- data/lib/sirena/parser/transforms/kanban.rb +176 -0
- data/lib/sirena/parser/transforms/mindmap.rb +227 -0
- data/lib/sirena/parser/transforms/packet.rb +63 -0
- data/lib/sirena/parser/transforms/pie.rb +143 -0
- data/lib/sirena/parser/transforms/quadrant.rb +177 -0
- data/lib/sirena/parser/transforms/radar.rb +126 -0
- data/lib/sirena/parser/transforms/requirement.rb +272 -0
- data/lib/sirena/parser/transforms/sankey.rb +122 -0
- data/lib/sirena/parser/transforms/sequence.rb +342 -0
- data/lib/sirena/parser/transforms/state_diagram.rb +292 -0
- data/lib/sirena/parser/transforms/timeline.rb +177 -0
- data/lib/sirena/parser/transforms/treemap.rb +81 -0
- data/lib/sirena/parser/transforms/xy_chart.rb +132 -0
- data/lib/sirena/parser/treemap.rb +98 -0
- data/lib/sirena/parser/user_journey.rb +120 -0
- data/lib/sirena/parser/xy_chart.rb +114 -0
- data/lib/sirena/parser.rb +8 -0
- data/lib/sirena/renderer/architecture.rb +251 -0
- data/lib/sirena/renderer/base.rb +251 -0
- data/lib/sirena/renderer/block.rb +286 -0
- data/lib/sirena/renderer/c4.rb +490 -0
- data/lib/sirena/renderer/class_diagram.rb +499 -0
- data/lib/sirena/renderer/er_diagram.rb +417 -0
- data/lib/sirena/renderer/error.rb +131 -0
- data/lib/sirena/renderer/flowchart.rb +301 -0
- data/lib/sirena/renderer/gantt.rb +331 -0
- data/lib/sirena/renderer/git_graph.rb +368 -0
- data/lib/sirena/renderer/info.rb +93 -0
- data/lib/sirena/renderer/kanban.rb +295 -0
- data/lib/sirena/renderer/mindmap.rb +396 -0
- data/lib/sirena/renderer/packet.rb +239 -0
- data/lib/sirena/renderer/pie.rb +235 -0
- data/lib/sirena/renderer/quadrant.rb +292 -0
- data/lib/sirena/renderer/radar.rb +323 -0
- data/lib/sirena/renderer/requirement.rb +371 -0
- data/lib/sirena/renderer/sankey.rb +255 -0
- data/lib/sirena/renderer/sequence.rb +424 -0
- data/lib/sirena/renderer/state_diagram.rb +328 -0
- data/lib/sirena/renderer/timeline.rb +304 -0
- data/lib/sirena/renderer/treemap.rb +152 -0
- data/lib/sirena/renderer/user_journey.rb +331 -0
- data/lib/sirena/renderer/xy_chart.rb +452 -0
- data/lib/sirena/renderer.rb +8 -0
- data/lib/sirena/svg/circle.rb +41 -0
- data/lib/sirena/svg/document.rb +103 -0
- data/lib/sirena/svg/element.rb +65 -0
- data/lib/sirena/svg/ellipse.rb +33 -0
- data/lib/sirena/svg/group.rb +71 -0
- data/lib/sirena/svg/line.rb +49 -0
- data/lib/sirena/svg/path.rb +76 -0
- data/lib/sirena/svg/polygon.rb +43 -0
- data/lib/sirena/svg/polyline.rb +35 -0
- data/lib/sirena/svg/rect.rb +57 -0
- data/lib/sirena/svg/style.rb +44 -0
- data/lib/sirena/svg/text.rb +72 -0
- data/lib/sirena/svg.rb +19 -0
- data/lib/sirena/text_measurement.rb +71 -0
- data/lib/sirena/theme/builtin/dark.yml +70 -0
- data/lib/sirena/theme/builtin/default.yml +80 -0
- data/lib/sirena/theme/builtin/high_contrast.yml +70 -0
- data/lib/sirena/theme/builtin/light.yml +70 -0
- data/lib/sirena/theme/color_palette.rb +48 -0
- data/lib/sirena/theme/effect_styles.rb +28 -0
- data/lib/sirena/theme/registry.rb +41 -0
- data/lib/sirena/theme/shape_styles.rb +28 -0
- data/lib/sirena/theme/spacing_config.rb +24 -0
- data/lib/sirena/theme/typography.rb +30 -0
- data/lib/sirena/theme.rb +69 -0
- data/lib/sirena/transform/architecture.rb +273 -0
- data/lib/sirena/transform/base.rb +199 -0
- data/lib/sirena/transform/block.rb +215 -0
- data/lib/sirena/transform/c4.rb +288 -0
- data/lib/sirena/transform/class_diagram.rb +296 -0
- data/lib/sirena/transform/er_diagram.rb +204 -0
- data/lib/sirena/transform/error.rb +39 -0
- data/lib/sirena/transform/flowchart.rb +161 -0
- data/lib/sirena/transform/gantt.rb +253 -0
- data/lib/sirena/transform/git_graph.rb +283 -0
- data/lib/sirena/transform/info.rb +39 -0
- data/lib/sirena/transform/kanban.rb +180 -0
- data/lib/sirena/transform/mindmap.rb +251 -0
- data/lib/sirena/transform/packet.rb +185 -0
- data/lib/sirena/transform/pie.rb +62 -0
- data/lib/sirena/transform/quadrant.rb +167 -0
- data/lib/sirena/transform/radar.rb +227 -0
- data/lib/sirena/transform/requirement.rb +233 -0
- data/lib/sirena/transform/sankey.rb +212 -0
- data/lib/sirena/transform/sequence.rb +143 -0
- data/lib/sirena/transform/state_diagram.rb +228 -0
- data/lib/sirena/transform/timeline.rb +139 -0
- data/lib/sirena/transform/treemap.rb +120 -0
- data/lib/sirena/transform/user_journey.rb +207 -0
- data/lib/sirena/transform/xy_chart.rb +273 -0
- data/lib/sirena/transform.rb +8 -0
- data/lib/sirena/version.rb +5 -0
- data/lib/sirena.rb +328 -0
- data/lib/tasks/benchmark.rake +532 -0
- data/lib/tasks/examples.rake +468 -0
- data/lib/tasks/generate_mermaid_fixtures.rake +363 -0
- data/lib/tasks/mermaid_fixtures.rake +46 -0
- data/scripts/extract_mermaid_tests.rb +493 -0
- data/scripts/rename_to_sirena.rb +73 -0
- data/sirena.gemspec +47 -0
- metadata +529 -0
|
@@ -0,0 +1,502 @@
|
|
|
1
|
+
= Gantt chart diagrams
|
|
2
|
+
:toc:
|
|
3
|
+
:toclevels: 3
|
|
4
|
+
|
|
5
|
+
== Overview
|
|
6
|
+
|
|
7
|
+
Gantt chart diagrams in Sirena visualize project schedules, showing tasks over time with dependencies, sections, and status indicators. Gantt charts are essential for project management and timeline visualization.
|
|
8
|
+
|
|
9
|
+
Gantt charts are useful for:
|
|
10
|
+
|
|
11
|
+
* Project planning and scheduling
|
|
12
|
+
* Task dependency visualization
|
|
13
|
+
* Timeline management
|
|
14
|
+
* Resource allocation tracking
|
|
15
|
+
* Progress monitoring
|
|
16
|
+
* Milestone tracking
|
|
17
|
+
|
|
18
|
+
== Syntax specification
|
|
19
|
+
|
|
20
|
+
=== Diagram declaration
|
|
21
|
+
|
|
22
|
+
Gantt charts are declared using the `gantt` keyword:
|
|
23
|
+
|
|
24
|
+
[source,mermaid]
|
|
25
|
+
----
|
|
26
|
+
gantt
|
|
27
|
+
<configuration>
|
|
28
|
+
<sections-and-tasks>
|
|
29
|
+
----
|
|
30
|
+
|
|
31
|
+
=== Configuration directives
|
|
32
|
+
|
|
33
|
+
==== Title
|
|
34
|
+
|
|
35
|
+
Sets the diagram title:
|
|
36
|
+
|
|
37
|
+
[source,mermaid]
|
|
38
|
+
----
|
|
39
|
+
gantt
|
|
40
|
+
title Project Timeline
|
|
41
|
+
----
|
|
42
|
+
|
|
43
|
+
==== Date format
|
|
44
|
+
|
|
45
|
+
Specifies the date format for task dates:
|
|
46
|
+
|
|
47
|
+
[source,mermaid]
|
|
48
|
+
----
|
|
49
|
+
gantt
|
|
50
|
+
dateFormat YYYY-MM-DD
|
|
51
|
+
----
|
|
52
|
+
|
|
53
|
+
Common date formats:
|
|
54
|
+
|
|
55
|
+
* `YYYY-MM-DD` - ISO date format (2024-01-15)
|
|
56
|
+
* `YYYY-MM-DD HH:mm` - Date with time
|
|
57
|
+
* `DD/MM/YYYY` - European format
|
|
58
|
+
* `MM/DD/YYYY` - US format
|
|
59
|
+
|
|
60
|
+
==== Axis format
|
|
61
|
+
|
|
62
|
+
Specifies how dates are displayed on the timeline axis:
|
|
63
|
+
|
|
64
|
+
[source,mermaid]
|
|
65
|
+
----
|
|
66
|
+
gantt
|
|
67
|
+
axisFormat %m-%d
|
|
68
|
+
----
|
|
69
|
+
|
|
70
|
+
Format specifiers:
|
|
71
|
+
|
|
72
|
+
* `%Y` - Full year (2024)
|
|
73
|
+
* `%m` - Month (01-12)
|
|
74
|
+
* `%d` - Day (01-31)
|
|
75
|
+
* `%H` - Hour (00-23)
|
|
76
|
+
* `%M` - Minute (00-59)
|
|
77
|
+
|
|
78
|
+
==== Tick interval
|
|
79
|
+
|
|
80
|
+
Sets the interval between timeline ticks:
|
|
81
|
+
|
|
82
|
+
[source,mermaid]
|
|
83
|
+
----
|
|
84
|
+
gantt
|
|
85
|
+
tickInterval 1day
|
|
86
|
+
tickInterval 1week
|
|
87
|
+
tickInterval 1month
|
|
88
|
+
----
|
|
89
|
+
|
|
90
|
+
==== Excludes
|
|
91
|
+
|
|
92
|
+
Excludes certain days from the timeline:
|
|
93
|
+
|
|
94
|
+
[source,mermaid]
|
|
95
|
+
----
|
|
96
|
+
gantt
|
|
97
|
+
excludes weekends
|
|
98
|
+
excludes weekdays
|
|
99
|
+
excludes 2024-01-10
|
|
100
|
+
----
|
|
101
|
+
|
|
102
|
+
==== Today marker
|
|
103
|
+
|
|
104
|
+
Adds a marker for the current date:
|
|
105
|
+
|
|
106
|
+
[source,mermaid]
|
|
107
|
+
----
|
|
108
|
+
gantt
|
|
109
|
+
todayMarker on
|
|
110
|
+
todayMarker off
|
|
111
|
+
----
|
|
112
|
+
|
|
113
|
+
=== Section declarations
|
|
114
|
+
|
|
115
|
+
Sections group related tasks:
|
|
116
|
+
|
|
117
|
+
[source,mermaid]
|
|
118
|
+
----
|
|
119
|
+
gantt
|
|
120
|
+
section Planning
|
|
121
|
+
Task 1 :2024-01-01, 30d
|
|
122
|
+
Task 2 :2024-01-15, 20d
|
|
123
|
+
|
|
124
|
+
section Development
|
|
125
|
+
Task 3 :2024-02-01, 45d
|
|
126
|
+
----
|
|
127
|
+
|
|
128
|
+
=== Task definitions
|
|
129
|
+
|
|
130
|
+
Tasks can be defined in multiple formats:
|
|
131
|
+
|
|
132
|
+
==== Basic task with dates and duration
|
|
133
|
+
|
|
134
|
+
[source,mermaid]
|
|
135
|
+
----
|
|
136
|
+
Task description :task_id, start_date, duration
|
|
137
|
+
----
|
|
138
|
+
|
|
139
|
+
Example:
|
|
140
|
+
|
|
141
|
+
[source,mermaid]
|
|
142
|
+
----
|
|
143
|
+
Design phase :des1, 2024-01-01, 30d
|
|
144
|
+
----
|
|
145
|
+
|
|
146
|
+
==== Task with start and end dates
|
|
147
|
+
|
|
148
|
+
[source,mermaid]
|
|
149
|
+
----
|
|
150
|
+
Task description :task_id, start_date, end_date
|
|
151
|
+
----
|
|
152
|
+
|
|
153
|
+
Example:
|
|
154
|
+
|
|
155
|
+
[source,mermaid]
|
|
156
|
+
----
|
|
157
|
+
Implementation :impl, 2024-01-15, 2024-02-15
|
|
158
|
+
----
|
|
159
|
+
|
|
160
|
+
==== Task with dependencies
|
|
161
|
+
|
|
162
|
+
[source,mermaid]
|
|
163
|
+
----
|
|
164
|
+
Task description :task_id, after other_task_id, duration
|
|
165
|
+
----
|
|
166
|
+
|
|
167
|
+
Example:
|
|
168
|
+
|
|
169
|
+
[source,mermaid]
|
|
170
|
+
----
|
|
171
|
+
Testing :test, after impl, 15d
|
|
172
|
+
----
|
|
173
|
+
|
|
174
|
+
==== Task with status tags
|
|
175
|
+
|
|
176
|
+
Tasks can have status tags that affect their appearance:
|
|
177
|
+
|
|
178
|
+
* `done` - Completed task (green)
|
|
179
|
+
* `active` - Currently active task (blue)
|
|
180
|
+
* `crit` - Critical task (red)
|
|
181
|
+
* `milestone` - Milestone marker (diamond shape)
|
|
182
|
+
|
|
183
|
+
[source,mermaid]
|
|
184
|
+
----
|
|
185
|
+
Completed task :done, task1, 2024-01-01, 10d
|
|
186
|
+
Active task :active, task2, 2024-01-11, 5d
|
|
187
|
+
Critical task :crit, task3, 2024-01-16, 3d
|
|
188
|
+
Project milestone :milestone, m1, 2024-01-20, 0d
|
|
189
|
+
----
|
|
190
|
+
|
|
191
|
+
==== Duration formats
|
|
192
|
+
|
|
193
|
+
* `30d` - 30 days
|
|
194
|
+
* `2w` - 2 weeks
|
|
195
|
+
* `48h` - 48 hours
|
|
196
|
+
* `1M` - 1 month
|
|
197
|
+
|
|
198
|
+
=== Task dependencies
|
|
199
|
+
|
|
200
|
+
Tasks can depend on other tasks using the `after` keyword:
|
|
201
|
+
|
|
202
|
+
[source,mermaid]
|
|
203
|
+
----
|
|
204
|
+
gantt
|
|
205
|
+
section Tasks
|
|
206
|
+
Task A :a, 2024-01-01, 10d
|
|
207
|
+
Task B :b, after a, 5d
|
|
208
|
+
Task C :c, after b, 3d
|
|
209
|
+
----
|
|
210
|
+
|
|
211
|
+
Tasks can also use `until` to end when another task starts:
|
|
212
|
+
|
|
213
|
+
[source,mermaid]
|
|
214
|
+
----
|
|
215
|
+
gantt
|
|
216
|
+
section Tasks
|
|
217
|
+
Task A :a, 2024-01-01, 10d
|
|
218
|
+
Task B :b, 2024-01-05, until a
|
|
219
|
+
----
|
|
220
|
+
|
|
221
|
+
== Examples
|
|
222
|
+
|
|
223
|
+
=== Basic Gantt chart
|
|
224
|
+
|
|
225
|
+
.Simple project timeline
|
|
226
|
+
[example]
|
|
227
|
+
====
|
|
228
|
+
[source,mermaid]
|
|
229
|
+
----
|
|
230
|
+
gantt
|
|
231
|
+
title Simple Project Timeline
|
|
232
|
+
dateFormat YYYY-MM-DD
|
|
233
|
+
|
|
234
|
+
section Planning
|
|
235
|
+
Requirements :a1, 2024-01-01, 30d
|
|
236
|
+
Design :a2, after a1, 20d
|
|
237
|
+
|
|
238
|
+
section Development
|
|
239
|
+
Implementation :b1, after a2, 45d
|
|
240
|
+
Testing :b2, after b1, 15d
|
|
241
|
+
----
|
|
242
|
+
|
|
243
|
+
This creates a basic Gantt chart with two sections and sequential tasks.
|
|
244
|
+
====
|
|
245
|
+
|
|
246
|
+
=== Gantt chart with task statuses
|
|
247
|
+
|
|
248
|
+
.Project with status indicators
|
|
249
|
+
[example]
|
|
250
|
+
====
|
|
251
|
+
[source,mermaid]
|
|
252
|
+
----
|
|
253
|
+
gantt
|
|
254
|
+
title Project Progress
|
|
255
|
+
dateFormat YYYY-MM-DD
|
|
256
|
+
|
|
257
|
+
section Completed
|
|
258
|
+
Analysis :done, a1, 2024-01-01, 10d
|
|
259
|
+
Design :done, a2, 2024-01-11, 15d
|
|
260
|
+
|
|
261
|
+
section In Progress
|
|
262
|
+
Development :active, b1, 2024-01-26, 30d
|
|
263
|
+
|
|
264
|
+
section Pending
|
|
265
|
+
Testing :crit, b2, after b1, 10d
|
|
266
|
+
Deployment :milestone, m1, after b2, 0d
|
|
267
|
+
----
|
|
268
|
+
|
|
269
|
+
This example shows:
|
|
270
|
+
|
|
271
|
+
* Completed tasks marked with `done` tag (green)
|
|
272
|
+
* Active task marked with `active` tag (blue)
|
|
273
|
+
* Critical task marked with `crit` tag (red)
|
|
274
|
+
* Milestone marker with zero duration
|
|
275
|
+
====
|
|
276
|
+
|
|
277
|
+
=== Complex Gantt chart with dependencies
|
|
278
|
+
|
|
279
|
+
.Multi-phase project
|
|
280
|
+
[example]
|
|
281
|
+
====
|
|
282
|
+
[source,mermaid]
|
|
283
|
+
----
|
|
284
|
+
gantt
|
|
285
|
+
title Software Development Project
|
|
286
|
+
dateFormat YYYY-MM-DD
|
|
287
|
+
axisFormat %m-%d
|
|
288
|
+
|
|
289
|
+
section Planning
|
|
290
|
+
Requirements gathering :done, req, 2024-01-01, 15d
|
|
291
|
+
System design :done, des, after req, 20d
|
|
292
|
+
|
|
293
|
+
section Development
|
|
294
|
+
Backend development :active, be, after des, 30d
|
|
295
|
+
Frontend development :active, fe, after des, 35d
|
|
296
|
+
Integration :int, after be, after fe, 10d
|
|
297
|
+
|
|
298
|
+
section Testing
|
|
299
|
+
Unit testing :crit, ut, after be, 5d
|
|
300
|
+
Integration testing :crit, it, after int, 7d
|
|
301
|
+
UAT :uat, after it, 10d
|
|
302
|
+
|
|
303
|
+
section Deployment
|
|
304
|
+
Staging deployment :sd, after uat, 2d
|
|
305
|
+
Production deployment :milestone, pd, after sd, 0d
|
|
306
|
+
----
|
|
307
|
+
|
|
308
|
+
This demonstrates:
|
|
309
|
+
|
|
310
|
+
* Multiple sections organizing the project
|
|
311
|
+
* Task dependencies using `after` keyword
|
|
312
|
+
* Mixed task statuses (done, active, crit)
|
|
313
|
+
* Milestone marker for deployment
|
|
314
|
+
* Custom axis format for date display
|
|
315
|
+
====
|
|
316
|
+
|
|
317
|
+
=== Gantt chart with excludes
|
|
318
|
+
|
|
319
|
+
.Project excluding weekends
|
|
320
|
+
[example]
|
|
321
|
+
====
|
|
322
|
+
[source,mermaid]
|
|
323
|
+
----
|
|
324
|
+
gantt
|
|
325
|
+
title Development Sprint
|
|
326
|
+
dateFormat YYYY-MM-DD
|
|
327
|
+
excludes weekends
|
|
328
|
+
|
|
329
|
+
section Week 1
|
|
330
|
+
Sprint planning :done, 2024-01-08, 1d
|
|
331
|
+
Feature A :active, 2024-01-09, 4d
|
|
332
|
+
|
|
333
|
+
section Week 2
|
|
334
|
+
Feature B :2024-01-15, 5d
|
|
335
|
+
Code review :2024-01-22, 2d
|
|
336
|
+
----
|
|
337
|
+
|
|
338
|
+
This shows how to exclude weekends from the timeline calculation.
|
|
339
|
+
====
|
|
340
|
+
|
|
341
|
+
== Features
|
|
342
|
+
|
|
343
|
+
=== Task identification
|
|
344
|
+
|
|
345
|
+
Tasks can have IDs for referencing in dependencies:
|
|
346
|
+
|
|
347
|
+
[source,mermaid]
|
|
348
|
+
----
|
|
349
|
+
gantt
|
|
350
|
+
section Tasks
|
|
351
|
+
First task :task1, 2024-01-01, 10d
|
|
352
|
+
Second task :task2, after task1, 5d
|
|
353
|
+
Third task :after task2, 3d
|
|
354
|
+
----
|
|
355
|
+
|
|
356
|
+
=== Multiple task tags
|
|
357
|
+
|
|
358
|
+
Tasks can have multiple status tags:
|
|
359
|
+
|
|
360
|
+
[source,mermaid]
|
|
361
|
+
----
|
|
362
|
+
gantt
|
|
363
|
+
section Critical Path
|
|
364
|
+
Important task :crit, active, t1, 2024-01-01, 10d
|
|
365
|
+
Completed critical :crit, done, t2, 2024-01-11, 5d
|
|
366
|
+
----
|
|
367
|
+
|
|
368
|
+
=== Flexible date formats
|
|
369
|
+
|
|
370
|
+
Supports various date input formats:
|
|
371
|
+
|
|
372
|
+
[source,mermaid]
|
|
373
|
+
----
|
|
374
|
+
gantt
|
|
375
|
+
dateFormat YYYY-MM-DD
|
|
376
|
+
section Tasks
|
|
377
|
+
Task 1 :2024-01-01, 10d
|
|
378
|
+
Task 2 :2024-01-15, 2024-01-30
|
|
379
|
+
Task 3 :after Task 2, 1w
|
|
380
|
+
----
|
|
381
|
+
|
|
382
|
+
=== Timeline customization
|
|
383
|
+
|
|
384
|
+
Customize timeline appearance:
|
|
385
|
+
|
|
386
|
+
[source,mermaid]
|
|
387
|
+
----
|
|
388
|
+
gantt
|
|
389
|
+
title Customized Timeline
|
|
390
|
+
dateFormat YYYY-MM-DD
|
|
391
|
+
axisFormat %d/%m
|
|
392
|
+
tickInterval 1week
|
|
393
|
+
|
|
394
|
+
section Tasks
|
|
395
|
+
Task 1 :2024-01-01, 30d
|
|
396
|
+
----
|
|
397
|
+
|
|
398
|
+
== Limitations
|
|
399
|
+
|
|
400
|
+
=== Currently not supported
|
|
401
|
+
|
|
402
|
+
The following Mermaid Gantt chart features are not yet supported in Sirena:
|
|
403
|
+
|
|
404
|
+
* Click events and interactivity
|
|
405
|
+
* Custom styling with `style` directives
|
|
406
|
+
* Accessibility tags beyond basic support
|
|
407
|
+
* Comments using `%%`
|
|
408
|
+
* Custom themes per diagram
|
|
409
|
+
|
|
410
|
+
=== Known issues
|
|
411
|
+
|
|
412
|
+
* Very long task names may overflow in some layouts
|
|
413
|
+
* Complex dependency chains may require manual adjustment
|
|
414
|
+
* Timeline scaling with many tasks may need optimization
|
|
415
|
+
|
|
416
|
+
== Best practices
|
|
417
|
+
|
|
418
|
+
=== Use meaningful task names
|
|
419
|
+
|
|
420
|
+
Use clear, descriptive names for tasks:
|
|
421
|
+
|
|
422
|
+
[source,mermaid]
|
|
423
|
+
----
|
|
424
|
+
gantt
|
|
425
|
+
%% Good
|
|
426
|
+
Requirements analysis :done, 2024-01-01, 10d
|
|
427
|
+
|
|
428
|
+
%% Less clear
|
|
429
|
+
Task 1 :done, 2024-01-01, 10d
|
|
430
|
+
----
|
|
431
|
+
|
|
432
|
+
=== Organize with sections
|
|
433
|
+
|
|
434
|
+
Group related tasks into logical sections:
|
|
435
|
+
|
|
436
|
+
[source,mermaid]
|
|
437
|
+
----
|
|
438
|
+
gantt
|
|
439
|
+
section Planning
|
|
440
|
+
<planning tasks>
|
|
441
|
+
|
|
442
|
+
section Development
|
|
443
|
+
<development tasks>
|
|
444
|
+
|
|
445
|
+
section Testing
|
|
446
|
+
<testing tasks>
|
|
447
|
+
----
|
|
448
|
+
|
|
449
|
+
=== Use status tags appropriately
|
|
450
|
+
|
|
451
|
+
Apply status tags to provide visual context:
|
|
452
|
+
|
|
453
|
+
* `done` for completed work
|
|
454
|
+
* `active` for current work
|
|
455
|
+
* `crit` for critical path items
|
|
456
|
+
* `milestone` for key dates
|
|
457
|
+
|
|
458
|
+
=== Set appropriate date formats
|
|
459
|
+
|
|
460
|
+
Choose date formats that match your audience:
|
|
461
|
+
|
|
462
|
+
[source,mermaid]
|
|
463
|
+
----
|
|
464
|
+
gantt
|
|
465
|
+
%% For international audience
|
|
466
|
+
dateFormat YYYY-MM-DD
|
|
467
|
+
axisFormat %Y-%m-%d
|
|
468
|
+
|
|
469
|
+
%% For US audience
|
|
470
|
+
dateFormat MM/DD/YYYY
|
|
471
|
+
axisFormat %m/%d
|
|
472
|
+
----
|
|
473
|
+
|
|
474
|
+
=== Keep timelines readable
|
|
475
|
+
|
|
476
|
+
Avoid overcrowding:
|
|
477
|
+
|
|
478
|
+
* Limit to 20-30 tasks per diagram
|
|
479
|
+
* Use appropriate tick intervals
|
|
480
|
+
* Consider splitting long projects into phases
|
|
481
|
+
|
|
482
|
+
=== Leverage dependencies
|
|
483
|
+
|
|
484
|
+
Use task dependencies instead of manual date calculation:
|
|
485
|
+
|
|
486
|
+
[source,mermaid]
|
|
487
|
+
----
|
|
488
|
+
gantt
|
|
489
|
+
%% Good - uses dependencies
|
|
490
|
+
Task A :a, 2024-01-01, 10d
|
|
491
|
+
Task B :b, after a, 5d
|
|
492
|
+
|
|
493
|
+
%% Less maintainable - hardcoded dates
|
|
494
|
+
Task A :a, 2024-01-01, 10d
|
|
495
|
+
Task B :b, 2024-01-11, 5d
|
|
496
|
+
----
|
|
497
|
+
|
|
498
|
+
== Related documentation
|
|
499
|
+
|
|
500
|
+
* <<index.adoc#,Diagram types overview>>
|
|
501
|
+
* <<flowchart.adoc#,Flowchart diagrams>>
|
|
502
|
+
* link:https://mermaid.js.org/syntax/gantt.html[Official Mermaid Gantt chart documentation]
|