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,603 @@
|
|
|
1
|
+
= Mindmap diagrams
|
|
2
|
+
:toc:
|
|
3
|
+
:toclevels: 3
|
|
4
|
+
|
|
5
|
+
== Overview
|
|
6
|
+
|
|
7
|
+
Mindmap diagrams in Sirena visualize hierarchical information and ideas in a
|
|
8
|
+
radial tree structure. They help organize thoughts, concepts, and relationships
|
|
9
|
+
in a visual format that mirrors how we naturally think and make connections.
|
|
10
|
+
|
|
11
|
+
Mindmaps are useful for:
|
|
12
|
+
|
|
13
|
+
* Brainstorming and idea generation
|
|
14
|
+
* Organizing project requirements
|
|
15
|
+
* Creating study guides and learning materials
|
|
16
|
+
* Documenting system architectures
|
|
17
|
+
* Planning and strategic thinking
|
|
18
|
+
* Note-taking and knowledge mapping
|
|
19
|
+
|
|
20
|
+
== Syntax specification
|
|
21
|
+
|
|
22
|
+
=== Diagram declaration
|
|
23
|
+
|
|
24
|
+
Mindmaps are declared using the `mindmap` keyword:
|
|
25
|
+
|
|
26
|
+
[source,mermaid]
|
|
27
|
+
----
|
|
28
|
+
mindmap
|
|
29
|
+
<root-node>
|
|
30
|
+
<child-nodes>
|
|
31
|
+
----
|
|
32
|
+
|
|
33
|
+
=== Nodes
|
|
34
|
+
|
|
35
|
+
==== Root node
|
|
36
|
+
|
|
37
|
+
The root node is the central concept of the mindmap and must be defined first:
|
|
38
|
+
|
|
39
|
+
[source,mermaid]
|
|
40
|
+
----
|
|
41
|
+
mindmap
|
|
42
|
+
Central Idea
|
|
43
|
+
----
|
|
44
|
+
|
|
45
|
+
==== Child nodes
|
|
46
|
+
|
|
47
|
+
Child nodes are defined through indentation (2 or 4 spaces per level):
|
|
48
|
+
|
|
49
|
+
[source,mermaid]
|
|
50
|
+
----
|
|
51
|
+
mindmap
|
|
52
|
+
Root
|
|
53
|
+
Child 1
|
|
54
|
+
Child 2
|
|
55
|
+
Grandchild 2.1
|
|
56
|
+
Grandchild 2.2
|
|
57
|
+
Child 3
|
|
58
|
+
----
|
|
59
|
+
|
|
60
|
+
=== Node shapes
|
|
61
|
+
|
|
62
|
+
Nodes can have different visual shapes using special markers:
|
|
63
|
+
|
|
64
|
+
[cols="2,2,3"]
|
|
65
|
+
|===
|
|
66
|
+
|Shape |Syntax |Description
|
|
67
|
+
|
|
68
|
+
|Default (Rounded)
|
|
69
|
+
|`Node text`
|
|
70
|
+
|Plain text creates a rounded rectangle
|
|
71
|
+
|
|
72
|
+
|Circle
|
|
73
|
+
|`((Node text))`
|
|
74
|
+
|Double parentheses create a circle
|
|
75
|
+
|
|
76
|
+
|Cloud
|
|
77
|
+
|`)Node text(`
|
|
78
|
+
|Parentheses reversed create a cloud shape
|
|
79
|
+
|
|
80
|
+
|Bang
|
|
81
|
+
|`))Node text((`
|
|
82
|
+
|Double reversed parentheses create an emphasized cloud
|
|
83
|
+
|
|
84
|
+
|Hexagon
|
|
85
|
+
|`{{Node text}}`
|
|
86
|
+
|Double curly braces create a hexagon
|
|
87
|
+
|
|
88
|
+
|Square
|
|
89
|
+
|`[Node text]`
|
|
90
|
+
|Square brackets create a rectangle
|
|
91
|
+
|===
|
|
92
|
+
|
|
93
|
+
==== Shape examples
|
|
94
|
+
|
|
95
|
+
.Using different node shapes
|
|
96
|
+
[example]
|
|
97
|
+
====
|
|
98
|
+
[source,mermaid]
|
|
99
|
+
----
|
|
100
|
+
mindmap
|
|
101
|
+
root((Central Idea))
|
|
102
|
+
Branch 1
|
|
103
|
+
)Cloud Branch(
|
|
104
|
+
{{Hexagon Branch}}
|
|
105
|
+
[Square Branch]
|
|
106
|
+
))Important Branch((
|
|
107
|
+
----
|
|
108
|
+
====
|
|
109
|
+
|
|
110
|
+
=== Icons and classes
|
|
111
|
+
|
|
112
|
+
==== Icons
|
|
113
|
+
|
|
114
|
+
Add icons to nodes using the `::icon()` syntax:
|
|
115
|
+
|
|
116
|
+
[source,mermaid]
|
|
117
|
+
----
|
|
118
|
+
mindmap
|
|
119
|
+
root[Project]
|
|
120
|
+
::icon(fa fa-folder)
|
|
121
|
+
Documentation
|
|
122
|
+
::icon(fa fa-book)
|
|
123
|
+
----
|
|
124
|
+
|
|
125
|
+
Where:
|
|
126
|
+
|
|
127
|
+
`::icon(name)`:: Icon identifier placed on the line after the node
|
|
128
|
+
|
|
129
|
+
==== Classes
|
|
130
|
+
|
|
131
|
+
Apply CSS classes to nodes using the `:::` syntax:
|
|
132
|
+
|
|
133
|
+
[source,mermaid]
|
|
134
|
+
----
|
|
135
|
+
mindmap
|
|
136
|
+
root[Styled Node]
|
|
137
|
+
:::highlight important
|
|
138
|
+
----
|
|
139
|
+
|
|
140
|
+
Where:
|
|
141
|
+
|
|
142
|
+
`:::class1 class2`:: Space-separated class names placed after the node
|
|
143
|
+
|
|
144
|
+
==== Combined icons and classes
|
|
145
|
+
|
|
146
|
+
.Using both icons and classes
|
|
147
|
+
[example]
|
|
148
|
+
====
|
|
149
|
+
[source,mermaid]
|
|
150
|
+
----
|
|
151
|
+
mindmap
|
|
152
|
+
root[Main Topic]
|
|
153
|
+
:::primary-node
|
|
154
|
+
::icon(star)
|
|
155
|
+
Subtopic
|
|
156
|
+
:::secondary-node
|
|
157
|
+
::icon(check)
|
|
158
|
+
----
|
|
159
|
+
====
|
|
160
|
+
|
|
161
|
+
== Examples
|
|
162
|
+
|
|
163
|
+
=== Simple mindmap
|
|
164
|
+
|
|
165
|
+
.Basic three-level mindmap
|
|
166
|
+
[example]
|
|
167
|
+
====
|
|
168
|
+
[source,mermaid]
|
|
169
|
+
----
|
|
170
|
+
mindmap
|
|
171
|
+
Central Idea
|
|
172
|
+
Branch 1
|
|
173
|
+
Detail 1.1
|
|
174
|
+
Detail 1.2
|
|
175
|
+
Branch 2
|
|
176
|
+
Detail 2.1
|
|
177
|
+
Branch 3
|
|
178
|
+
----
|
|
179
|
+
|
|
180
|
+
This creates a simple mindmap with:
|
|
181
|
+
|
|
182
|
+
* One root node (Central Idea)
|
|
183
|
+
* Three main branches
|
|
184
|
+
* Various details under branches
|
|
185
|
+
====
|
|
186
|
+
|
|
187
|
+
=== Mindmap with shapes
|
|
188
|
+
|
|
189
|
+
.Using different node shapes for visual hierarchy
|
|
190
|
+
[example]
|
|
191
|
+
====
|
|
192
|
+
[source,mermaid]
|
|
193
|
+
----
|
|
194
|
+
mindmap
|
|
195
|
+
root((Project Goals))
|
|
196
|
+
Features
|
|
197
|
+
)Must Have(
|
|
198
|
+
Login
|
|
199
|
+
Dashboard
|
|
200
|
+
)Nice to Have(
|
|
201
|
+
Dark Mode
|
|
202
|
+
Notifications
|
|
203
|
+
Timeline
|
|
204
|
+
{{Q1}}
|
|
205
|
+
Planning
|
|
206
|
+
Design
|
|
207
|
+
{{Q2}}
|
|
208
|
+
Development
|
|
209
|
+
{{Q3}}
|
|
210
|
+
Testing
|
|
211
|
+
{{Q4}}
|
|
212
|
+
Launch
|
|
213
|
+
Resources
|
|
214
|
+
[Team]
|
|
215
|
+
[Budget]
|
|
216
|
+
[Tools]
|
|
217
|
+
----
|
|
218
|
+
|
|
219
|
+
This demonstrates:
|
|
220
|
+
|
|
221
|
+
* Circle root for main concept
|
|
222
|
+
* Cloud shapes for priority categories
|
|
223
|
+
* Hexagons for time periods
|
|
224
|
+
* Squares for resources
|
|
225
|
+
* Plain text for details
|
|
226
|
+
====
|
|
227
|
+
|
|
228
|
+
=== Research topics mindmap
|
|
229
|
+
|
|
230
|
+
.Organizing research with icons
|
|
231
|
+
[example]
|
|
232
|
+
====
|
|
233
|
+
[source,mermaid]
|
|
234
|
+
----
|
|
235
|
+
mindmap
|
|
236
|
+
root((Research Topic))
|
|
237
|
+
Literature Review
|
|
238
|
+
::icon(fa fa-book)
|
|
239
|
+
Historical Context
|
|
240
|
+
Current Studies
|
|
241
|
+
Key Authors
|
|
242
|
+
Methodology
|
|
243
|
+
::icon(fa fa-flask)
|
|
244
|
+
Qualitative Methods
|
|
245
|
+
Quantitative Methods
|
|
246
|
+
Mixed Methods
|
|
247
|
+
Data Collection
|
|
248
|
+
::icon(fa fa-database)
|
|
249
|
+
Surveys
|
|
250
|
+
Interviews
|
|
251
|
+
Observations
|
|
252
|
+
Analysis
|
|
253
|
+
::icon(fa fa-chart-bar)
|
|
254
|
+
Statistical Tools
|
|
255
|
+
Coding Framework
|
|
256
|
+
----
|
|
257
|
+
|
|
258
|
+
This shows:
|
|
259
|
+
|
|
260
|
+
* Icons indicating the type of content
|
|
261
|
+
* Clear hierarchical organization
|
|
262
|
+
* Subject-specific categorization
|
|
263
|
+
====
|
|
264
|
+
|
|
265
|
+
=== Software architecture mindmap
|
|
266
|
+
|
|
267
|
+
.Documenting system architecture
|
|
268
|
+
[example]
|
|
269
|
+
====
|
|
270
|
+
[source,mermaid]
|
|
271
|
+
----
|
|
272
|
+
mindmap
|
|
273
|
+
root((Application))
|
|
274
|
+
Frontend
|
|
275
|
+
{{React}}
|
|
276
|
+
Components
|
|
277
|
+
State Management
|
|
278
|
+
Routing
|
|
279
|
+
{{Styling}}
|
|
280
|
+
CSS Modules
|
|
281
|
+
Tailwind
|
|
282
|
+
Backend
|
|
283
|
+
{{Node.js}}
|
|
284
|
+
Express
|
|
285
|
+
APIs
|
|
286
|
+
Middleware
|
|
287
|
+
{{Database}}
|
|
288
|
+
PostgreSQL
|
|
289
|
+
Redis Cache
|
|
290
|
+
Infrastructure
|
|
291
|
+
{{Cloud}}
|
|
292
|
+
AWS EC2
|
|
293
|
+
S3 Storage
|
|
294
|
+
{{CI/CD}}
|
|
295
|
+
GitHub Actions
|
|
296
|
+
Docker
|
|
297
|
+
----
|
|
298
|
+
|
|
299
|
+
This illustrates:
|
|
300
|
+
|
|
301
|
+
* Technology stack organization
|
|
302
|
+
* Component relationships
|
|
303
|
+
* Infrastructure layers
|
|
304
|
+
====
|
|
305
|
+
|
|
306
|
+
=== Learning roadmap
|
|
307
|
+
|
|
308
|
+
.Creating a study plan
|
|
309
|
+
[example]
|
|
310
|
+
====
|
|
311
|
+
[source,mermaid]
|
|
312
|
+
----
|
|
313
|
+
mindmap
|
|
314
|
+
root((Web Development))
|
|
315
|
+
Fundamentals
|
|
316
|
+
HTML
|
|
317
|
+
Semantic Markup
|
|
318
|
+
Forms
|
|
319
|
+
Accessibility
|
|
320
|
+
CSS
|
|
321
|
+
Layouts
|
|
322
|
+
Responsive Design
|
|
323
|
+
Animations
|
|
324
|
+
JavaScript
|
|
325
|
+
ES6+ Features
|
|
326
|
+
DOM Manipulation
|
|
327
|
+
Async Programming
|
|
328
|
+
Frameworks
|
|
329
|
+
React
|
|
330
|
+
Vue
|
|
331
|
+
Angular
|
|
332
|
+
Backend
|
|
333
|
+
Node.js
|
|
334
|
+
Python
|
|
335
|
+
Databases
|
|
336
|
+
DevOps
|
|
337
|
+
Git
|
|
338
|
+
CI/CD
|
|
339
|
+
Cloud Platforms
|
|
340
|
+
----
|
|
341
|
+
|
|
342
|
+
This shows:
|
|
343
|
+
|
|
344
|
+
* Progressive learning path
|
|
345
|
+
* Skill categorization
|
|
346
|
+
* Topic dependencies
|
|
347
|
+
====
|
|
348
|
+
|
|
349
|
+
=== Project planning mindmap
|
|
350
|
+
|
|
351
|
+
.Planning a project with mixed notation
|
|
352
|
+
[example]
|
|
353
|
+
====
|
|
354
|
+
[source,mermaid]
|
|
355
|
+
----
|
|
356
|
+
mindmap
|
|
357
|
+
root((Website Redesign))
|
|
358
|
+
))Phase 1: Discovery((
|
|
359
|
+
User Research
|
|
360
|
+
Surveys
|
|
361
|
+
Interviews
|
|
362
|
+
Competitor Analysis
|
|
363
|
+
Requirements
|
|
364
|
+
))Phase 2: Design((
|
|
365
|
+
Wireframes
|
|
366
|
+
Mockups
|
|
367
|
+
Design System
|
|
368
|
+
Prototype
|
|
369
|
+
))Phase 3: Development((
|
|
370
|
+
Frontend Build
|
|
371
|
+
Backend Integration
|
|
372
|
+
Testing
|
|
373
|
+
QA
|
|
374
|
+
))Phase 4: Launch((
|
|
375
|
+
Deployment
|
|
376
|
+
Monitoring
|
|
377
|
+
User Training
|
|
378
|
+
----
|
|
379
|
+
|
|
380
|
+
This demonstrates:
|
|
381
|
+
|
|
382
|
+
* Bang shapes for major phases
|
|
383
|
+
* Sequential workflow visualization
|
|
384
|
+
* Deliverables per phase
|
|
385
|
+
====
|
|
386
|
+
|
|
387
|
+
== Features
|
|
388
|
+
|
|
389
|
+
=== Indentation-based hierarchy
|
|
390
|
+
|
|
391
|
+
Hierarchy is determined by indentation level:
|
|
392
|
+
|
|
393
|
+
[source,mermaid]
|
|
394
|
+
----
|
|
395
|
+
mindmap
|
|
396
|
+
root
|
|
397
|
+
level 1
|
|
398
|
+
level 2
|
|
399
|
+
level 3
|
|
400
|
+
level 4
|
|
401
|
+
----
|
|
402
|
+
|
|
403
|
+
Use consistent indentation (2 or 4 spaces per level).
|
|
404
|
+
|
|
405
|
+
=== Flexible tree depth
|
|
406
|
+
|
|
407
|
+
Mindmaps support unlimited nesting levels:
|
|
408
|
+
|
|
409
|
+
[source,mermaid]
|
|
410
|
+
----
|
|
411
|
+
mindmap
|
|
412
|
+
root
|
|
413
|
+
branch
|
|
414
|
+
sub-branch
|
|
415
|
+
detail
|
|
416
|
+
sub-detail
|
|
417
|
+
deep-detail
|
|
418
|
+
----
|
|
419
|
+
|
|
420
|
+
=== Multiple root branches
|
|
421
|
+
|
|
422
|
+
The root can have many direct children:
|
|
423
|
+
|
|
424
|
+
[source,mermaid]
|
|
425
|
+
----
|
|
426
|
+
mindmap
|
|
427
|
+
root
|
|
428
|
+
branch-1
|
|
429
|
+
branch-2
|
|
430
|
+
branch-3
|
|
431
|
+
branch-4
|
|
432
|
+
branch-5
|
|
433
|
+
----
|
|
434
|
+
|
|
435
|
+
=== Text with special characters
|
|
436
|
+
|
|
437
|
+
Node text can include various characters:
|
|
438
|
+
|
|
439
|
+
[source,mermaid]
|
|
440
|
+
----
|
|
441
|
+
mindmap
|
|
442
|
+
root
|
|
443
|
+
Node with spaces
|
|
444
|
+
Node-with-hyphens
|
|
445
|
+
Node_with_underscores
|
|
446
|
+
Node (with parentheses)
|
|
447
|
+
----
|
|
448
|
+
|
|
449
|
+
Note: Use appropriate shape markers to avoid syntax conflicts.
|
|
450
|
+
|
|
451
|
+
== Limitations
|
|
452
|
+
|
|
453
|
+
=== Currently not supported
|
|
454
|
+
|
|
455
|
+
The following Mermaid mindmap features are not yet supported in Sirena:
|
|
456
|
+
|
|
457
|
+
* Comments using `%%`
|
|
458
|
+
* HTML line breaks `<br/>` in node text
|
|
459
|
+
* Markdown formatting in node content
|
|
460
|
+
* Custom themes beyond shape-based styling
|
|
461
|
+
* Click events and links
|
|
462
|
+
|
|
463
|
+
=== Known issues
|
|
464
|
+
|
|
465
|
+
* Very deep hierarchies may require layout adjustment
|
|
466
|
+
* Long node text may overlap in dense mindmaps
|
|
467
|
+
* Icon rendering depends on icon library availability
|
|
468
|
+
|
|
469
|
+
== Best practices
|
|
470
|
+
|
|
471
|
+
=== Keep the root concise
|
|
472
|
+
|
|
473
|
+
Use a clear, focused root concept:
|
|
474
|
+
|
|
475
|
+
[source,mermaid]
|
|
476
|
+
----
|
|
477
|
+
%% Good
|
|
478
|
+
mindmap
|
|
479
|
+
root((Product Strategy))
|
|
480
|
+
|
|
481
|
+
%% Too broad
|
|
482
|
+
mindmap
|
|
483
|
+
root((Everything About Our Company And All Its Products))
|
|
484
|
+
----
|
|
485
|
+
|
|
486
|
+
=== Use shapes meaningfully
|
|
487
|
+
|
|
488
|
+
Apply shapes consistently to indicate node types:
|
|
489
|
+
|
|
490
|
+
[source,mermaid]
|
|
491
|
+
----
|
|
492
|
+
mindmap
|
|
493
|
+
root((Main Goal))
|
|
494
|
+
{{Category 1}} %% Hexagons for categories
|
|
495
|
+
[Action Item] %% Squares for actions
|
|
496
|
+
[Action Item]
|
|
497
|
+
{{Category 2}}
|
|
498
|
+
[Action Item]
|
|
499
|
+
[Action Item]
|
|
500
|
+
----
|
|
501
|
+
|
|
502
|
+
=== Limit depth
|
|
503
|
+
|
|
504
|
+
Keep hierarchies manageable (typically 3-4 levels):
|
|
505
|
+
|
|
506
|
+
[source,mermaid]
|
|
507
|
+
----
|
|
508
|
+
%% Good - Clear and scannable
|
|
509
|
+
mindmap
|
|
510
|
+
root
|
|
511
|
+
branch
|
|
512
|
+
detail
|
|
513
|
+
detail
|
|
514
|
+
|
|
515
|
+
%% Too deep - Hard to follow
|
|
516
|
+
mindmap
|
|
517
|
+
root
|
|
518
|
+
branch
|
|
519
|
+
sub-branch
|
|
520
|
+
detail
|
|
521
|
+
sub-detail
|
|
522
|
+
deep-detail
|
|
523
|
+
very-deep-detail
|
|
524
|
+
----
|
|
525
|
+
|
|
526
|
+
=== Group related concepts
|
|
527
|
+
|
|
528
|
+
Organize related ideas under common branches:
|
|
529
|
+
|
|
530
|
+
[source,mermaid]
|
|
531
|
+
----
|
|
532
|
+
mindmap
|
|
533
|
+
root((Project))
|
|
534
|
+
Technical Requirements
|
|
535
|
+
Performance
|
|
536
|
+
Security
|
|
537
|
+
Scalability
|
|
538
|
+
Business Requirements
|
|
539
|
+
Budget
|
|
540
|
+
Timeline
|
|
541
|
+
ROI
|
|
542
|
+
----
|
|
543
|
+
|
|
544
|
+
=== Use consistent indentation
|
|
545
|
+
|
|
546
|
+
Choose 2 or 4 spaces and use it throughout:
|
|
547
|
+
|
|
548
|
+
[source,mermaid]
|
|
549
|
+
----
|
|
550
|
+
%% Good - Consistent 2-space
|
|
551
|
+
mindmap
|
|
552
|
+
root
|
|
553
|
+
level-1
|
|
554
|
+
level-2
|
|
555
|
+
level-3
|
|
556
|
+
|
|
557
|
+
%% Inconsistent - Avoid
|
|
558
|
+
mindmap
|
|
559
|
+
root
|
|
560
|
+
level-1
|
|
561
|
+
level-2
|
|
562
|
+
level-3
|
|
563
|
+
----
|
|
564
|
+
|
|
565
|
+
=== Add visual hierarchy
|
|
566
|
+
|
|
567
|
+
Use different shapes to create visual levels:
|
|
568
|
+
|
|
569
|
+
[source,mermaid]
|
|
570
|
+
----
|
|
571
|
+
mindmap
|
|
572
|
+
root((Theme))
|
|
573
|
+
{{Main Branch}}
|
|
574
|
+
)Important Concept(
|
|
575
|
+
Regular Detail
|
|
576
|
+
Regular Detail
|
|
577
|
+
----
|
|
578
|
+
|
|
579
|
+
=== Keep node text concise
|
|
580
|
+
|
|
581
|
+
Use brief, descriptive labels:
|
|
582
|
+
|
|
583
|
+
[source,mermaid]
|
|
584
|
+
----
|
|
585
|
+
%% Good
|
|
586
|
+
mindmap
|
|
587
|
+
root
|
|
588
|
+
Clear Label
|
|
589
|
+
Brief Description
|
|
590
|
+
Concise Point
|
|
591
|
+
|
|
592
|
+
%% Too verbose
|
|
593
|
+
mindmap
|
|
594
|
+
root
|
|
595
|
+
This is a very long description that explains everything in detail
|
|
596
|
+
Another lengthy explanation that should probably be shortened
|
|
597
|
+
----
|
|
598
|
+
|
|
599
|
+
== Related documentation
|
|
600
|
+
|
|
601
|
+
* <<index.adoc#,Diagram types overview>>
|
|
602
|
+
* <<flowchart.adoc#,Flowchart diagrams>>
|
|
603
|
+
* link:https://mermaid.js.org/syntax/mindmap.html[Official Mermaid mindmap documentation]
|