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,192 @@
|
|
|
1
|
+
---
|
|
2
|
+
layout: default
|
|
3
|
+
title: Diagram Types
|
|
4
|
+
nav_order: 5
|
|
5
|
+
has_children: true
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
== Diagram Types
|
|
9
|
+
|
|
10
|
+
Complete reference documentation for all 19 diagram types supported by Sirena.
|
|
11
|
+
|
|
12
|
+
== What's in This Section
|
|
13
|
+
|
|
14
|
+
Detailed syntax and examples for:
|
|
15
|
+
|
|
16
|
+
* Flowchart diagrams
|
|
17
|
+
* Sequence diagrams
|
|
18
|
+
* Class diagrams
|
|
19
|
+
* State diagrams
|
|
20
|
+
* ER diagrams
|
|
21
|
+
* User journey diagrams
|
|
22
|
+
* Git graph diagrams
|
|
23
|
+
* Pie charts
|
|
24
|
+
* Gantt charts
|
|
25
|
+
* Quadrant charts
|
|
26
|
+
* Requirement diagrams
|
|
27
|
+
* C4 diagrams
|
|
28
|
+
* Mindmaps
|
|
29
|
+
* Timeline diagrams
|
|
30
|
+
* Sankey diagrams
|
|
31
|
+
* XY charts
|
|
32
|
+
* Block diagrams
|
|
33
|
+
* Architecture diagrams
|
|
34
|
+
* Kanban boards
|
|
35
|
+
|
|
36
|
+
Plus additional specialized types:
|
|
37
|
+
|
|
38
|
+
* Radar charts
|
|
39
|
+
* Treemap diagrams
|
|
40
|
+
* Packet diagrams
|
|
41
|
+
* Info diagrams
|
|
42
|
+
* Error diagrams
|
|
43
|
+
|
|
44
|
+
== Diagram Type Documentation Format
|
|
45
|
+
|
|
46
|
+
Each diagram type page includes:
|
|
47
|
+
|
|
48
|
+
* **Overview** - What the diagram type is for
|
|
49
|
+
* **Use cases** - When to use this type
|
|
50
|
+
* **Syntax specification** - Complete syntax reference
|
|
51
|
+
* **Elements** - Available node/element types
|
|
52
|
+
* **Relationships** - Connection and edge types
|
|
53
|
+
* **Examples** - From basic to advanced
|
|
54
|
+
* **Features** - Special capabilities
|
|
55
|
+
* **Limitations** - Current constraints
|
|
56
|
+
* **Best practices** - Recommended usage patterns
|
|
57
|
+
|
|
58
|
+
== Quick Reference
|
|
59
|
+
|
|
60
|
+
[cols="2,3,2"]
|
|
61
|
+
|===
|
|
62
|
+
|Diagram Type |Primary Use Case |Keyword
|
|
63
|
+
|
|
64
|
+
|link:{% link _diagram_types/flowchart.adoc %}[Flowchart]
|
|
65
|
+
|Process flows and decision trees
|
|
66
|
+
|`graph`, `flowchart`
|
|
67
|
+
|
|
68
|
+
|link:{% link _diagram_types/sequence-diagram.adoc %}[Sequence]
|
|
69
|
+
|Message interactions over time
|
|
70
|
+
|`sequenceDiagram`
|
|
71
|
+
|
|
72
|
+
|link:{% link _diagram_types/class-diagram.adoc %}[Class]
|
|
73
|
+
|Object-oriented design
|
|
74
|
+
|`classDiagram`
|
|
75
|
+
|
|
76
|
+
|link:{% link _diagram_types/state-diagram.adoc %}[State]
|
|
77
|
+
|State machines
|
|
78
|
+
|`stateDiagram-v2`
|
|
79
|
+
|
|
80
|
+
|link:{% link _diagram_types/er-diagram.adoc %}[ER Diagram]
|
|
81
|
+
|Database design
|
|
82
|
+
|`erDiagram`
|
|
83
|
+
|
|
84
|
+
|link:{% link _diagram_types/user-journey.adoc %}[User Journey]
|
|
85
|
+
|User experience flows
|
|
86
|
+
|`journey`
|
|
87
|
+
|
|
88
|
+
|link:{% link _diagram_types/git-graph.adoc %}[Git Graph]
|
|
89
|
+
|Repository history
|
|
90
|
+
|`gitGraph`
|
|
91
|
+
|
|
92
|
+
|link:{% link _diagram_types/pie-chart.adoc %}[Pie Chart]
|
|
93
|
+
|Proportional data
|
|
94
|
+
|`pie`
|
|
95
|
+
|
|
96
|
+
|link:{% link _diagram_types/gantt-chart.adoc %}[Gantt]
|
|
97
|
+
|Project timelines
|
|
98
|
+
|`gantt`
|
|
99
|
+
|
|
100
|
+
|link:{% link _diagram_types/quadrant-chart.adoc %}[Quadrant]
|
|
101
|
+
|Priority matrices
|
|
102
|
+
|`quadrantChart`
|
|
103
|
+
|
|
104
|
+
|link:{% link _diagram_types/requirement-diagram.adoc %}[Requirement]
|
|
105
|
+
|Requirements traceability
|
|
106
|
+
|`requirementDiagram`
|
|
107
|
+
|
|
108
|
+
|link:{% link _diagram_types/c4-diagram.adoc %}[C4]
|
|
109
|
+
|Software architecture
|
|
110
|
+
|`C4Context`, `C4Container`, `C4Component`, `C4Dynamic`, `C4Deployment`
|
|
111
|
+
|
|
112
|
+
|link:{% link _diagram_types/mindmap.adoc %}[Mindmap]
|
|
113
|
+
|Hierarchical ideas
|
|
114
|
+
|`mindmap`
|
|
115
|
+
|
|
116
|
+
|link:{% link _diagram_types/timeline.adoc %}[Timeline]
|
|
117
|
+
|Historical events
|
|
118
|
+
|`timeline`
|
|
119
|
+
|
|
120
|
+
|link:{% link _diagram_types/sankey-diagram.adoc %}[Sankey]
|
|
121
|
+
|Flow quantities
|
|
122
|
+
|`sankey-beta`
|
|
123
|
+
|
|
124
|
+
|link:{% link _diagram_types/xy-chart.adoc %}[XY Chart]
|
|
125
|
+
|Data plotting
|
|
126
|
+
|`xychart-beta`
|
|
127
|
+
|
|
128
|
+
|link:{% link _diagram_types/block-diagram.adoc %}[Block]
|
|
129
|
+
|Component relationships
|
|
130
|
+
|`block-beta`
|
|
131
|
+
|
|
132
|
+
|link:{% link _diagram_types/architecture-diagram.adoc %}[Architecture]
|
|
133
|
+
|System architecture
|
|
134
|
+
|`architecture-beta`
|
|
135
|
+
|
|
136
|
+
|link:{% link _diagram_types/kanban-diagram.adoc %}[Kanban]
|
|
137
|
+
|Workflow boards
|
|
138
|
+
|`kanban`
|
|
139
|
+
|===
|
|
140
|
+
|
|
141
|
+
== Choosing the Right Diagram Type
|
|
142
|
+
|
|
143
|
+
=== For Processes and Workflows
|
|
144
|
+
|
|
145
|
+
* **Flowchart** - General process flows
|
|
146
|
+
* **Sequence** - Time-based interactions
|
|
147
|
+
* **State** - State transitions
|
|
148
|
+
* **User Journey** - User experience flows
|
|
149
|
+
|
|
150
|
+
=== For Structure and Relationships
|
|
151
|
+
|
|
152
|
+
* **Class** - Object relationships
|
|
153
|
+
* **ER Diagram** - Data relationships
|
|
154
|
+
* **Block** - Component relationships
|
|
155
|
+
* **Architecture** - System structure
|
|
156
|
+
|
|
157
|
+
=== For Data Visualization
|
|
158
|
+
|
|
159
|
+
* **Pie Chart** - Proportions
|
|
160
|
+
* **XY Chart** - Data points
|
|
161
|
+
* **Sankey** - Flow quantities
|
|
162
|
+
* **Quadrant** - Priority/complexity matrices
|
|
163
|
+
|
|
164
|
+
=== For Planning and Tracking
|
|
165
|
+
|
|
166
|
+
* **Gantt** - Project schedules
|
|
167
|
+
* **Timeline** - Historical events
|
|
168
|
+
* **Kanban** - Workflow status
|
|
169
|
+
* **Requirement** - Requirements traceability
|
|
170
|
+
|
|
171
|
+
=== For Software Development
|
|
172
|
+
|
|
173
|
+
* **C4** - Architecture documentation
|
|
174
|
+
* **Git Graph** - Repository history
|
|
175
|
+
* **Class** - Code structure
|
|
176
|
+
* **Sequence** - API interactions
|
|
177
|
+
|
|
178
|
+
== Mermaid.js Compatibility
|
|
179
|
+
|
|
180
|
+
All diagram types maintain syntax compatibility with Mermaid.js. See link:{% link _pages/compatibility.adoc %}[Compatibility Guide] for detailed comparison.
|
|
181
|
+
|
|
182
|
+
== Examples
|
|
183
|
+
|
|
184
|
+
Find complete examples in the GitHub repository:
|
|
185
|
+
|
|
186
|
+
* https://github.com/claricle/sirena/tree/main/examples[Example Diagrams]
|
|
187
|
+
|
|
188
|
+
== Need Help?
|
|
189
|
+
|
|
190
|
+
* Check link:{% link _tutorials/creating-first-diagram.adoc %}[Creating Your First Diagram] tutorial
|
|
191
|
+
* See link:{% link _guides/best-practices.adoc %}[Best Practices] guide
|
|
192
|
+
* Visit https://github.com/claricle/sirena/issues[GitHub Issues] for support
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
= Info Diagram
|
|
2
|
+
:toc:
|
|
3
|
+
:toclevels: 3
|
|
4
|
+
|
|
5
|
+
== Purpose
|
|
6
|
+
|
|
7
|
+
Info diagrams display simple informational messages or status information in Mermaid syntax. They are utility diagrams used to show system information, help text, or status messages.
|
|
8
|
+
|
|
9
|
+
== Syntax
|
|
10
|
+
|
|
11
|
+
=== Basic info diagram
|
|
12
|
+
|
|
13
|
+
The simplest form displays just an info indicator:
|
|
14
|
+
|
|
15
|
+
[source,mermaid]
|
|
16
|
+
----
|
|
17
|
+
info
|
|
18
|
+
----
|
|
19
|
+
|
|
20
|
+
=== Info with showInfo flag
|
|
21
|
+
|
|
22
|
+
You can enable the `showInfo` flag to display additional information:
|
|
23
|
+
|
|
24
|
+
[source,mermaid]
|
|
25
|
+
----
|
|
26
|
+
info showInfo
|
|
27
|
+
----
|
|
28
|
+
|
|
29
|
+
The `showInfo` flag can also be specified on a separate line:
|
|
30
|
+
|
|
31
|
+
[source,mermaid]
|
|
32
|
+
----
|
|
33
|
+
info
|
|
34
|
+
showInfo
|
|
35
|
+
----
|
|
36
|
+
|
|
37
|
+
== Features
|
|
38
|
+
|
|
39
|
+
=== Visual representation
|
|
40
|
+
|
|
41
|
+
Info diagrams render as:
|
|
42
|
+
|
|
43
|
+
* A centered box with informational styling (light blue background)
|
|
44
|
+
* "Info" text or "Info: showInfo enabled" when the flag is set
|
|
45
|
+
* Clean, minimal design suitable for displaying status messages
|
|
46
|
+
|
|
47
|
+
=== Theme integration
|
|
48
|
+
|
|
49
|
+
Info diagrams integrate with Sirena's theme system:
|
|
50
|
+
|
|
51
|
+
* `node_bg`: Background color for the info box (default: light blue)
|
|
52
|
+
* `node_stroke`: Border color for the info box (default: blue)
|
|
53
|
+
* `label_text`: Text color for the message (default: dark blue)
|
|
54
|
+
* Typography settings for font family and size
|
|
55
|
+
|
|
56
|
+
== Implementation details
|
|
57
|
+
|
|
58
|
+
=== Parser
|
|
59
|
+
|
|
60
|
+
The info diagram parser (`Sirena::Parser::InfoParser`) uses Parslet grammar to handle:
|
|
61
|
+
|
|
62
|
+
* Basic `info` keyword
|
|
63
|
+
* Optional `showInfo` flag (inline or on separate line)
|
|
64
|
+
* Additional text after `info` keyword (ignored for compatibility)
|
|
65
|
+
|
|
66
|
+
=== Model
|
|
67
|
+
|
|
68
|
+
The info diagram model (`Sirena::Diagram::Info`) contains:
|
|
69
|
+
|
|
70
|
+
* `show_info`: Boolean flag indicating if showInfo is enabled
|
|
71
|
+
|
|
72
|
+
=== Renderer
|
|
73
|
+
|
|
74
|
+
The info renderer (`Sirena::Renderer::InfoRenderer`) creates:
|
|
75
|
+
|
|
76
|
+
* A rounded rectangle box (400x100 pixels)
|
|
77
|
+
* Centered text displaying the info message
|
|
78
|
+
* Theme-aware styling for colors and typography
|
|
79
|
+
|
|
80
|
+
== Examples
|
|
81
|
+
|
|
82
|
+
=== Simple info
|
|
83
|
+
|
|
84
|
+
[source,mermaid]
|
|
85
|
+
----
|
|
86
|
+
info
|
|
87
|
+
----
|
|
88
|
+
|
|
89
|
+
=== Info with flag enabled
|
|
90
|
+
|
|
91
|
+
[source,mermaid]
|
|
92
|
+
----
|
|
93
|
+
info showInfo
|
|
94
|
+
----
|
|
95
|
+
|
|
96
|
+
== Use cases
|
|
97
|
+
|
|
98
|
+
Info diagrams are useful for:
|
|
99
|
+
|
|
100
|
+
* Displaying system status messages
|
|
101
|
+
* Showing help text in documentation
|
|
102
|
+
* Indicating informational states in workflows
|
|
103
|
+
* Testing and debugging diagram rendering
|
|
@@ -0,0 +1,262 @@
|
|
|
1
|
+
= Kanban Board Diagrams
|
|
2
|
+
:toc:
|
|
3
|
+
:toclevels: 3
|
|
4
|
+
|
|
5
|
+
== Overview
|
|
6
|
+
|
|
7
|
+
Kanban board diagrams visualize workflow with columns and cards, commonly used in agile project management and task tracking.
|
|
8
|
+
|
|
9
|
+
== Syntax
|
|
10
|
+
|
|
11
|
+
=== Basic Structure
|
|
12
|
+
|
|
13
|
+
[source,mermaid]
|
|
14
|
+
----
|
|
15
|
+
kanban
|
|
16
|
+
column_id[Column Title]
|
|
17
|
+
card_id[Card Text]
|
|
18
|
+
----
|
|
19
|
+
|
|
20
|
+
=== Complete Example
|
|
21
|
+
|
|
22
|
+
[source,mermaid]
|
|
23
|
+
----
|
|
24
|
+
kanban
|
|
25
|
+
id1[Todo]
|
|
26
|
+
docs[Create Documentation]
|
|
27
|
+
blog[Create Blog]@{ priority: 'High', ticket: 'MC-1001' }
|
|
28
|
+
id2[In Progress]
|
|
29
|
+
feature[Implement Feature]@{ assigned: 'dev1' }
|
|
30
|
+
id3[Done]
|
|
31
|
+
release[Release v1.0]
|
|
32
|
+
----
|
|
33
|
+
|
|
34
|
+
== Features
|
|
35
|
+
|
|
36
|
+
=== Columns
|
|
37
|
+
|
|
38
|
+
Columns represent workflow stages (e.g., Todo, In Progress, Done).
|
|
39
|
+
|
|
40
|
+
.Column Definition
|
|
41
|
+
[source,mermaid]
|
|
42
|
+
----
|
|
43
|
+
kanban
|
|
44
|
+
column_id[Column Name]
|
|
45
|
+
----
|
|
46
|
+
|
|
47
|
+
Where:
|
|
48
|
+
|
|
49
|
+
* `column_id`: Unique identifier for the column
|
|
50
|
+
* `Column Name`: Display name for the column
|
|
51
|
+
|
|
52
|
+
=== Cards
|
|
53
|
+
|
|
54
|
+
Cards represent individual work items or tasks.
|
|
55
|
+
|
|
56
|
+
.Card Definition
|
|
57
|
+
[source,mermaid]
|
|
58
|
+
----
|
|
59
|
+
kanban
|
|
60
|
+
column_id[Column Name]
|
|
61
|
+
card_id[Card Text]
|
|
62
|
+
----
|
|
63
|
+
|
|
64
|
+
Where:
|
|
65
|
+
|
|
66
|
+
* `card_id`: Unique identifier for the card
|
|
67
|
+
* `Card Text`: Description of the work item
|
|
68
|
+
|
|
69
|
+
=== Card Metadata
|
|
70
|
+
|
|
71
|
+
Cards can include metadata for additional information.
|
|
72
|
+
|
|
73
|
+
.Metadata Syntax
|
|
74
|
+
[source,mermaid]
|
|
75
|
+
----
|
|
76
|
+
card_id[Card Text]@{ key: 'value', key2: 'value2' }
|
|
77
|
+
----
|
|
78
|
+
|
|
79
|
+
==== Supported Metadata Fields
|
|
80
|
+
|
|
81
|
+
* `assigned`: User assigned to the task
|
|
82
|
+
* `ticket`: External ticket/issue number
|
|
83
|
+
* `priority`: Priority level (e.g., High, Medium, Low)
|
|
84
|
+
* `icon`: Icon identifier
|
|
85
|
+
* `label`: Additional label or tag
|
|
86
|
+
|
|
87
|
+
.Metadata Example
|
|
88
|
+
[source,mermaid]
|
|
89
|
+
----
|
|
90
|
+
kanban
|
|
91
|
+
todo[Todo]
|
|
92
|
+
task[Fix Bug]@{
|
|
93
|
+
assigned: 'john',
|
|
94
|
+
priority: 'High',
|
|
95
|
+
ticket: 'JIRA-123'
|
|
96
|
+
}
|
|
97
|
+
----
|
|
98
|
+
|
|
99
|
+
== Layout
|
|
100
|
+
|
|
101
|
+
The renderer automatically:
|
|
102
|
+
|
|
103
|
+
* Positions columns horizontally from left to right
|
|
104
|
+
* Stacks cards vertically within each column
|
|
105
|
+
* Calculates appropriate spacing and dimensions
|
|
106
|
+
* Displays metadata below card text
|
|
107
|
+
|
|
108
|
+
== Styling
|
|
109
|
+
|
|
110
|
+
Kanban diagrams support theme customization:
|
|
111
|
+
|
|
112
|
+
* Column headers use primary theme color
|
|
113
|
+
* Cards use light backgrounds with borders
|
|
114
|
+
* Metadata uses secondary text color
|
|
115
|
+
* Card count badges appear on column headers
|
|
116
|
+
|
|
117
|
+
== Implementation Details
|
|
118
|
+
|
|
119
|
+
=== Architecture
|
|
120
|
+
|
|
121
|
+
The Kanban implementation follows the standard 7-file architecture:
|
|
122
|
+
|
|
123
|
+
. **Diagram Model** (`lib/sirena/diagram/kanban.rb`)
|
|
124
|
+
- `KanbanCard`: Card with text and metadata
|
|
125
|
+
- `KanbanColumn`: Column containing cards
|
|
126
|
+
- `Kanban`: Complete board with columns
|
|
127
|
+
|
|
128
|
+
. **Parser Grammar** (`lib/sirena/parser/grammars/kanban.rb`)
|
|
129
|
+
- Parslet grammar for kanban syntax
|
|
130
|
+
- Handles columns, cards, and metadata
|
|
131
|
+
|
|
132
|
+
. **Transform** (`lib/sirena/parser/transforms/kanban.rb`)
|
|
133
|
+
- Converts parse tree to diagram model
|
|
134
|
+
- Extracts and validates metadata
|
|
135
|
+
|
|
136
|
+
. **Parser** (`lib/sirena/parser/kanban.rb`)
|
|
137
|
+
- Integrates grammar and transform
|
|
138
|
+
- Creates diagram instances
|
|
139
|
+
|
|
140
|
+
. **Layout Transform** (`lib/sirena/transform/kanban.rb`)
|
|
141
|
+
- Calculates column positions
|
|
142
|
+
- Determines card layout within columns
|
|
143
|
+
- Computes dimensions based on content
|
|
144
|
+
|
|
145
|
+
. **Renderer** (`lib/sirena/renderer/kanban.rb`)
|
|
146
|
+
- Draws column backgrounds and headers
|
|
147
|
+
- Renders cards with text
|
|
148
|
+
- Displays metadata fields
|
|
149
|
+
|
|
150
|
+
. **Tests**
|
|
151
|
+
- Parser tests: `spec/sirena/parser/kanban_spec.rb`
|
|
152
|
+
- Renderer tests: `spec/sirena/renderer/kanban_spec.rb`
|
|
153
|
+
|
|
154
|
+
=== Data Flow
|
|
155
|
+
|
|
156
|
+
[source]
|
|
157
|
+
----
|
|
158
|
+
Mermaid Source
|
|
159
|
+
↓
|
|
160
|
+
Grammar (Parslet)
|
|
161
|
+
↓
|
|
162
|
+
Parse Tree
|
|
163
|
+
↓
|
|
164
|
+
Transform
|
|
165
|
+
↓
|
|
166
|
+
Diagram Model (Kanban, KanbanColumn, KanbanCard)
|
|
167
|
+
↓
|
|
168
|
+
Layout Transform
|
|
169
|
+
↓
|
|
170
|
+
Positioned Layout
|
|
171
|
+
↓
|
|
172
|
+
Renderer
|
|
173
|
+
↓
|
|
174
|
+
SVG Output
|
|
175
|
+
----
|
|
176
|
+
|
|
177
|
+
== Examples
|
|
178
|
+
|
|
179
|
+
=== Simple Kanban Board
|
|
180
|
+
|
|
181
|
+
[source,mermaid]
|
|
182
|
+
----
|
|
183
|
+
kanban
|
|
184
|
+
todo[Todo]
|
|
185
|
+
task1[Task 1]
|
|
186
|
+
task2[Task 2]
|
|
187
|
+
doing[Doing]
|
|
188
|
+
task3[Task 3]
|
|
189
|
+
done[Done]
|
|
190
|
+
task4[Task 4]
|
|
191
|
+
----
|
|
192
|
+
|
|
193
|
+
=== Board with Metadata
|
|
194
|
+
|
|
195
|
+
[source,mermaid]
|
|
196
|
+
----
|
|
197
|
+
kanban
|
|
198
|
+
backlog[Backlog]
|
|
199
|
+
story1[User Story 1]@{ priority: 'High' }
|
|
200
|
+
story2[User Story 2]@{ priority: 'Medium' }
|
|
201
|
+
development[Development]
|
|
202
|
+
feature1[Feature A]@{ assigned: 'alice', ticket: 'DEV-101' }
|
|
203
|
+
review[Review]
|
|
204
|
+
feature2[Feature B]@{ assigned: 'bob' }
|
|
205
|
+
completed[Completed]
|
|
206
|
+
feature3[Feature C]
|
|
207
|
+
----
|
|
208
|
+
|
|
209
|
+
=== Complex Workflow
|
|
210
|
+
|
|
211
|
+
[source,mermaid]
|
|
212
|
+
----
|
|
213
|
+
kanban
|
|
214
|
+
ideas[Ideas]
|
|
215
|
+
idea1[New Feature Idea]@{ label: 'enhancement' }
|
|
216
|
+
planning[Planning]
|
|
217
|
+
plan1[Sprint Planning]@{ assigned: 'team' }
|
|
218
|
+
development[Development]
|
|
219
|
+
dev1[API Implementation]@{
|
|
220
|
+
assigned: 'dev1',
|
|
221
|
+
priority: 'High',
|
|
222
|
+
ticket: 'PROJ-201'
|
|
223
|
+
}
|
|
224
|
+
testing[Testing]
|
|
225
|
+
test1[Integration Tests]@{ assigned: 'qa1' }
|
|
226
|
+
deployment[Deployment]
|
|
227
|
+
deploy1[Production Release]@{ ticket: 'REL-1.0' }
|
|
228
|
+
----
|
|
229
|
+
|
|
230
|
+
== Best Practices
|
|
231
|
+
|
|
232
|
+
=== Column Organization
|
|
233
|
+
|
|
234
|
+
* Use clear, action-oriented column names
|
|
235
|
+
* Limit the number of columns to 3-6 for readability
|
|
236
|
+
* Order columns from left (start) to right (end) in workflow sequence
|
|
237
|
+
|
|
238
|
+
=== Card Content
|
|
239
|
+
|
|
240
|
+
* Keep card text concise and descriptive
|
|
241
|
+
* Use consistent naming conventions
|
|
242
|
+
* Include relevant metadata for tracking
|
|
243
|
+
|
|
244
|
+
=== Metadata Usage
|
|
245
|
+
|
|
246
|
+
* Use `assigned` for ownership clarity
|
|
247
|
+
* Include `ticket` numbers for traceability
|
|
248
|
+
* Set `priority` to highlight important items
|
|
249
|
+
* Add `label` for categorization
|
|
250
|
+
|
|
251
|
+
=== Board Structure
|
|
252
|
+
|
|
253
|
+
* Group related cards in appropriate columns
|
|
254
|
+
* Limit cards per column for visual clarity
|
|
255
|
+
* Use metadata instead of embedding info in text
|
|
256
|
+
|
|
257
|
+
== See Also
|
|
258
|
+
|
|
259
|
+
* link:../README.adoc[Sirena Documentation]
|
|
260
|
+
* link:user-journey-diagram.adoc[User Journey Diagrams]
|
|
261
|
+
* link:gantt-diagram.adoc[Gantt Charts]
|
|
262
|
+
* link:timeline-diagram.adoc[Timeline Diagrams]
|