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,602 @@
|
|
|
1
|
+
= User journey diagrams
|
|
2
|
+
:toc:
|
|
3
|
+
:toclevels: 3
|
|
4
|
+
|
|
5
|
+
== Overview
|
|
6
|
+
|
|
7
|
+
User journey diagrams in Sirena map the experience of users as they interact with a system or service over time. They show tasks, actors involved, and satisfaction scores, making them ideal for UX design, service design, and customer experience mapping.
|
|
8
|
+
|
|
9
|
+
User journey diagrams are useful for:
|
|
10
|
+
|
|
11
|
+
* Mapping customer experience touchpoints
|
|
12
|
+
* Documenting user workflows and pain points
|
|
13
|
+
* Planning service design improvements
|
|
14
|
+
* Identifying satisfaction levels at each step
|
|
15
|
+
* Communicating user experiences to stakeholders
|
|
16
|
+
* Analyzing multi-actor interactions
|
|
17
|
+
|
|
18
|
+
== Syntax specification
|
|
19
|
+
|
|
20
|
+
=== Diagram declaration
|
|
21
|
+
|
|
22
|
+
User journey diagrams are declared using the `journey` keyword:
|
|
23
|
+
|
|
24
|
+
[source,mermaid]
|
|
25
|
+
----
|
|
26
|
+
journey
|
|
27
|
+
<diagram-content>
|
|
28
|
+
----
|
|
29
|
+
|
|
30
|
+
=== Title
|
|
31
|
+
|
|
32
|
+
Journeys should have a descriptive title:
|
|
33
|
+
|
|
34
|
+
[source,mermaid]
|
|
35
|
+
----
|
|
36
|
+
journey
|
|
37
|
+
title User Registration Journey
|
|
38
|
+
----
|
|
39
|
+
|
|
40
|
+
=== Sections
|
|
41
|
+
|
|
42
|
+
Sections group related tasks in the journey:
|
|
43
|
+
|
|
44
|
+
[source,mermaid]
|
|
45
|
+
----
|
|
46
|
+
journey
|
|
47
|
+
title My Journey
|
|
48
|
+
section Section Name
|
|
49
|
+
Task 1: score: Actor1, Actor2
|
|
50
|
+
Task 2: score: Actor1
|
|
51
|
+
----
|
|
52
|
+
|
|
53
|
+
=== Tasks
|
|
54
|
+
|
|
55
|
+
Tasks represent individual steps in the journey:
|
|
56
|
+
|
|
57
|
+
[source,mermaid]
|
|
58
|
+
----
|
|
59
|
+
Task description: satisfaction_score: Actor1, Actor2, Actor3
|
|
60
|
+
----
|
|
61
|
+
|
|
62
|
+
Where:
|
|
63
|
+
|
|
64
|
+
* `Task description` - Description of what happens in this step
|
|
65
|
+
* `satisfaction_score` - Number from 1-5 indicating satisfaction level
|
|
66
|
+
- 1 - Very dissatisfied
|
|
67
|
+
- 2 - Dissatisfied
|
|
68
|
+
- 3 - Neutral
|
|
69
|
+
- 4 - Satisfied
|
|
70
|
+
- 5 - Very satisfied
|
|
71
|
+
* `Actor1, Actor2, Actor3` - Comma-separated list of actors involved
|
|
72
|
+
|
|
73
|
+
==== Satisfaction scores
|
|
74
|
+
|
|
75
|
+
Scores affect the visual representation:
|
|
76
|
+
|
|
77
|
+
* 1-2: Displayed as negative/red (pain points)
|
|
78
|
+
* 3: Displayed as neutral/yellow
|
|
79
|
+
* 4-5: Displayed as positive/green (delightful moments)
|
|
80
|
+
|
|
81
|
+
=== Actors
|
|
82
|
+
|
|
83
|
+
Actors are the participants in the journey. They are defined implicitly when used in tasks:
|
|
84
|
+
|
|
85
|
+
[source,mermaid]
|
|
86
|
+
----
|
|
87
|
+
journey
|
|
88
|
+
title Shopping Journey
|
|
89
|
+
section Browse
|
|
90
|
+
View products: 5: Customer
|
|
91
|
+
Add to cart: 4: Customer
|
|
92
|
+
section Checkout
|
|
93
|
+
Process payment: 3: Customer, System
|
|
94
|
+
----
|
|
95
|
+
|
|
96
|
+
In this example, `Customer` and `System` are actors.
|
|
97
|
+
|
|
98
|
+
== Examples
|
|
99
|
+
|
|
100
|
+
=== Basic user journey
|
|
101
|
+
|
|
102
|
+
.Simple journey with one actor
|
|
103
|
+
[example]
|
|
104
|
+
====
|
|
105
|
+
[source,mermaid]
|
|
106
|
+
----
|
|
107
|
+
journey
|
|
108
|
+
title User Login Journey
|
|
109
|
+
section Access
|
|
110
|
+
Navigate to site: 5: User
|
|
111
|
+
Click login button: 5: User
|
|
112
|
+
section Authentication
|
|
113
|
+
Enter credentials: 3: User
|
|
114
|
+
Submit form: 3: User
|
|
115
|
+
section Success
|
|
116
|
+
View dashboard: 5: User
|
|
117
|
+
----
|
|
118
|
+
|
|
119
|
+
This creates a simple journey showing:
|
|
120
|
+
|
|
121
|
+
* Multiple sections organizing the flow
|
|
122
|
+
* Tasks with satisfaction scores
|
|
123
|
+
* Single actor (User) throughout
|
|
124
|
+
====
|
|
125
|
+
|
|
126
|
+
=== Multi-actor journey
|
|
127
|
+
|
|
128
|
+
.Journey with multiple actors
|
|
129
|
+
[example]
|
|
130
|
+
====
|
|
131
|
+
[source,mermaid]
|
|
132
|
+
----
|
|
133
|
+
journey
|
|
134
|
+
title Customer Support Interaction
|
|
135
|
+
section Discovery
|
|
136
|
+
Visit help center: 3: Customer
|
|
137
|
+
Search for solution: 2: Customer
|
|
138
|
+
Click support chat: 4: Customer
|
|
139
|
+
section Initial Contact
|
|
140
|
+
Greet customer: 5: Customer, Agent
|
|
141
|
+
Describe issue: 3: Customer, Agent
|
|
142
|
+
Agent reviews account: 4: Agent, System
|
|
143
|
+
section Resolution
|
|
144
|
+
Agent explains solution: 5: Customer, Agent
|
|
145
|
+
Customer follows steps: 4: Customer
|
|
146
|
+
Issue resolved: 5: Customer, Agent
|
|
147
|
+
----
|
|
148
|
+
|
|
149
|
+
This demonstrates:
|
|
150
|
+
|
|
151
|
+
* Multiple actors (Customer, Agent, System)
|
|
152
|
+
* Tasks involving different combinations of actors
|
|
153
|
+
* Varying satisfaction scores reflecting pain points and successes
|
|
154
|
+
====
|
|
155
|
+
|
|
156
|
+
=== E-commerce shopping journey
|
|
157
|
+
|
|
158
|
+
.Complete shopping experience
|
|
159
|
+
[example]
|
|
160
|
+
====
|
|
161
|
+
[source,mermaid]
|
|
162
|
+
----
|
|
163
|
+
journey
|
|
164
|
+
title Online Shopping Experience
|
|
165
|
+
section Product Discovery
|
|
166
|
+
Search for product: 4: Customer
|
|
167
|
+
View search results: 3: Customer
|
|
168
|
+
Click product: 5: Customer
|
|
169
|
+
Read reviews: 4: Customer
|
|
170
|
+
section Product Evaluation
|
|
171
|
+
View product details: 5: Customer
|
|
172
|
+
Check availability: 4: Customer, System
|
|
173
|
+
Compare prices: 3: Customer
|
|
174
|
+
Add to cart: 5: Customer
|
|
175
|
+
section Checkout Process
|
|
176
|
+
Review cart: 4: Customer
|
|
177
|
+
Enter shipping info: 3: Customer
|
|
178
|
+
Select payment method: 3: Customer
|
|
179
|
+
Apply discount code: 5: Customer
|
|
180
|
+
Confirm order: 4: Customer, System
|
|
181
|
+
section Post-Purchase
|
|
182
|
+
Receive confirmation: 5: Customer, System
|
|
183
|
+
Track shipment: 4: Customer, System
|
|
184
|
+
Receive product: 5: Customer
|
|
185
|
+
Leave review: 4: Customer
|
|
186
|
+
----
|
|
187
|
+
|
|
188
|
+
This comprehensive journey includes:
|
|
189
|
+
|
|
190
|
+
* Four distinct sections
|
|
191
|
+
* Multiple touchpoints with the system
|
|
192
|
+
* Satisfaction scores showing pain points (entering info) and delights (discounts)
|
|
193
|
+
* Customer and System actors
|
|
194
|
+
====
|
|
195
|
+
|
|
196
|
+
=== Service design journey
|
|
197
|
+
|
|
198
|
+
.Restaurant dining experience
|
|
199
|
+
[example]
|
|
200
|
+
====
|
|
201
|
+
[source,mermaid]
|
|
202
|
+
----
|
|
203
|
+
journey
|
|
204
|
+
title Restaurant Dining Journey
|
|
205
|
+
section Arrival
|
|
206
|
+
Enter restaurant: 5: Guest
|
|
207
|
+
Greeted by host: 5: Guest, Host
|
|
208
|
+
Seated at table: 4: Guest, Host
|
|
209
|
+
section Ordering
|
|
210
|
+
Review menu: 4: Guest
|
|
211
|
+
Ask questions: 5: Guest, Server
|
|
212
|
+
Place order: 5: Guest, Server
|
|
213
|
+
Order sent to kitchen: 3: Server, Kitchen
|
|
214
|
+
section Dining
|
|
215
|
+
Receive appetizer: 5: Guest, Server
|
|
216
|
+
Receive main course: 5: Guest, Server
|
|
217
|
+
Enjoy meal: 5: Guest
|
|
218
|
+
section Conclusion
|
|
219
|
+
Request check: 4: Guest, Server
|
|
220
|
+
Process payment: 3: Guest, Server
|
|
221
|
+
Leave tip: 4: Guest
|
|
222
|
+
Exit restaurant: 5: Guest
|
|
223
|
+
----
|
|
224
|
+
|
|
225
|
+
This shows:
|
|
226
|
+
|
|
227
|
+
* Service touchpoints with staff
|
|
228
|
+
* Multiple actors (Guest, Host, Server, Kitchen)
|
|
229
|
+
* Experience flow from arrival to departure
|
|
230
|
+
====
|
|
231
|
+
|
|
232
|
+
=== Software onboarding journey
|
|
233
|
+
|
|
234
|
+
.New user onboarding experience
|
|
235
|
+
[example]
|
|
236
|
+
====
|
|
237
|
+
[source,mermaid]
|
|
238
|
+
----
|
|
239
|
+
journey
|
|
240
|
+
title SaaS Application Onboarding
|
|
241
|
+
section Sign Up
|
|
242
|
+
Visit landing page: 4: User
|
|
243
|
+
Click sign up: 5: User
|
|
244
|
+
Fill registration form: 2: User
|
|
245
|
+
Verify email: 3: User, System
|
|
246
|
+
section Initial Setup
|
|
247
|
+
Complete profile: 3: User
|
|
248
|
+
Watch tutorial video: 4: User
|
|
249
|
+
Invite team members: 3: User, System
|
|
250
|
+
section First Use
|
|
251
|
+
Create first project: 5: User
|
|
252
|
+
Explore features: 4: User
|
|
253
|
+
Use core functionality: 5: User
|
|
254
|
+
section Engagement
|
|
255
|
+
Receive onboarding email: 4: User, System
|
|
256
|
+
Complete first task: 5: User
|
|
257
|
+
Share feedback: 4: User
|
|
258
|
+
----
|
|
259
|
+
|
|
260
|
+
This demonstrates:
|
|
261
|
+
|
|
262
|
+
* Onboarding flow
|
|
263
|
+
* Pain points in sign-up process (form filling)
|
|
264
|
+
* System interactions
|
|
265
|
+
* Building engagement over time
|
|
266
|
+
====
|
|
267
|
+
|
|
268
|
+
=== Complex multi-stakeholder journey
|
|
269
|
+
|
|
270
|
+
.Healthcare appointment journey
|
|
271
|
+
[example]
|
|
272
|
+
====
|
|
273
|
+
[source,mermaid]
|
|
274
|
+
----
|
|
275
|
+
journey
|
|
276
|
+
title Medical Appointment Journey
|
|
277
|
+
section Scheduling
|
|
278
|
+
Search for doctor: 3: Patient
|
|
279
|
+
Check availability: 2: Patient, System
|
|
280
|
+
Book appointment: 3: Patient, System
|
|
281
|
+
Receive confirmation: 4: Patient, System
|
|
282
|
+
section Pre-Visit
|
|
283
|
+
Fill out forms: 2: Patient
|
|
284
|
+
Upload insurance: 2: Patient, System
|
|
285
|
+
Receive reminder: 4: Patient, System
|
|
286
|
+
section Visit
|
|
287
|
+
Check in: 3: Patient, Receptionist
|
|
288
|
+
Wait in lobby: 2: Patient
|
|
289
|
+
Called for appointment: 4: Patient, Nurse
|
|
290
|
+
Vital signs check: 3: Patient, Nurse
|
|
291
|
+
Consultation: 5: Patient, Doctor
|
|
292
|
+
Receive prescription: 4: Patient, Doctor
|
|
293
|
+
section Post-Visit
|
|
294
|
+
Check out: 3: Patient, Receptionist
|
|
295
|
+
Schedule follow-up: 3: Patient, Receptionist
|
|
296
|
+
Receive bill: 2: Patient, System
|
|
297
|
+
Complete payment: 2: Patient
|
|
298
|
+
Fill prescription: 4: Patient
|
|
299
|
+
----
|
|
300
|
+
|
|
301
|
+
This comprehensive example includes:
|
|
302
|
+
|
|
303
|
+
* Multiple stakeholders (Patient, Doctor, Nurse, Receptionist, System)
|
|
304
|
+
* Pain points clearly identified (low scores for forms, waiting, billing)
|
|
305
|
+
* Positive moments (consultation, prescription)
|
|
306
|
+
* End-to-end journey from booking to follow-up
|
|
307
|
+
====
|
|
308
|
+
|
|
309
|
+
=== Customer support journey
|
|
310
|
+
|
|
311
|
+
.Technical support experience
|
|
312
|
+
[example]
|
|
313
|
+
====
|
|
314
|
+
[source,mermaid]
|
|
315
|
+
----
|
|
316
|
+
journey
|
|
317
|
+
title Customer Support Interaction Journey
|
|
318
|
+
section Discovery
|
|
319
|
+
Visit help center: 3: Customer
|
|
320
|
+
Search for solution: 2: Customer
|
|
321
|
+
Click support chat: 4: Customer
|
|
322
|
+
section Initial Contact
|
|
323
|
+
Greet customer: 5: Customer, Agent
|
|
324
|
+
Describe issue: 3: Customer, Agent
|
|
325
|
+
Agent reviews account: 4: Agent, System
|
|
326
|
+
section Diagnosis
|
|
327
|
+
Agent asks clarifying questions: 4: Customer, Agent
|
|
328
|
+
Customer provides details: 3: Customer, Agent
|
|
329
|
+
Agent checks logs: 2: Agent, System
|
|
330
|
+
Agent identifies root cause: 5: Agent
|
|
331
|
+
section Resolution
|
|
332
|
+
Agent explains solution: 5: Customer, Agent
|
|
333
|
+
Customer follows steps: 4: Customer
|
|
334
|
+
Issue resolved: 5: Customer, Agent
|
|
335
|
+
section Follow-up
|
|
336
|
+
Agent confirms resolution: 5: Customer, Agent
|
|
337
|
+
Customer rates experience: 5: Customer
|
|
338
|
+
Agent documents case: 4: Agent, System
|
|
339
|
+
----
|
|
340
|
+
|
|
341
|
+
This shows:
|
|
342
|
+
|
|
343
|
+
* Support interaction flow
|
|
344
|
+
* Collaboration between customer and agent
|
|
345
|
+
* System involvement in diagnostics
|
|
346
|
+
* Positive resolution experience
|
|
347
|
+
====
|
|
348
|
+
|
|
349
|
+
== Features
|
|
350
|
+
|
|
351
|
+
=== Multiple sections
|
|
352
|
+
|
|
353
|
+
Journeys can have any number of sections:
|
|
354
|
+
|
|
355
|
+
[source,mermaid]
|
|
356
|
+
----
|
|
357
|
+
journey
|
|
358
|
+
title My Journey
|
|
359
|
+
section Phase 1
|
|
360
|
+
Task: 5: Actor
|
|
361
|
+
section Phase 2
|
|
362
|
+
Task: 4: Actor
|
|
363
|
+
section Phase 3
|
|
364
|
+
Task: 3: Actor
|
|
365
|
+
----
|
|
366
|
+
|
|
367
|
+
=== Multiple tasks per section
|
|
368
|
+
|
|
369
|
+
Sections can contain multiple tasks:
|
|
370
|
+
|
|
371
|
+
[source,mermaid]
|
|
372
|
+
----
|
|
373
|
+
journey
|
|
374
|
+
section Shopping
|
|
375
|
+
Browse products: 5: Customer
|
|
376
|
+
Add to cart: 4: Customer
|
|
377
|
+
Apply coupon: 5: Customer
|
|
378
|
+
Proceed to checkout: 4: Customer
|
|
379
|
+
----
|
|
380
|
+
|
|
381
|
+
=== Variable actor combinations
|
|
382
|
+
|
|
383
|
+
Different tasks can involve different actors:
|
|
384
|
+
|
|
385
|
+
[source,mermaid]
|
|
386
|
+
----
|
|
387
|
+
journey
|
|
388
|
+
section Service
|
|
389
|
+
Customer arrives: 4: Customer
|
|
390
|
+
Staff greets: 5: Customer, Staff
|
|
391
|
+
System processes: 3: Staff, System
|
|
392
|
+
Completion: 5: Customer, Staff, System
|
|
393
|
+
----
|
|
394
|
+
|
|
395
|
+
=== Long task descriptions
|
|
396
|
+
|
|
397
|
+
Task descriptions can be descriptive:
|
|
398
|
+
|
|
399
|
+
[source,mermaid]
|
|
400
|
+
----
|
|
401
|
+
journey
|
|
402
|
+
section Experience
|
|
403
|
+
Customer searches for the perfect product in the catalog: 4: Customer
|
|
404
|
+
System displays personalized recommendations based on history: 5: System
|
|
405
|
+
----
|
|
406
|
+
|
|
407
|
+
=== Score ranges
|
|
408
|
+
|
|
409
|
+
Scores range from 1 (worst) to 5 (best):
|
|
410
|
+
|
|
411
|
+
[source,mermaid]
|
|
412
|
+
----
|
|
413
|
+
journey
|
|
414
|
+
section Emotions
|
|
415
|
+
Frustrated: 1: User
|
|
416
|
+
Disappointed: 2: User
|
|
417
|
+
Neutral: 3: User
|
|
418
|
+
Satisfied: 4: User
|
|
419
|
+
Delighted: 5: User
|
|
420
|
+
----
|
|
421
|
+
|
|
422
|
+
== Limitations
|
|
423
|
+
|
|
424
|
+
=== Currently not supported
|
|
425
|
+
|
|
426
|
+
The following Mermaid user journey features are not yet supported in Sirena:
|
|
427
|
+
|
|
428
|
+
* Custom styling with CSS classes
|
|
429
|
+
* Click events and links
|
|
430
|
+
* Custom color schemes for scores
|
|
431
|
+
* Annotations or notes on tasks
|
|
432
|
+
* Time duration indicators
|
|
433
|
+
* Alternative paths or branches
|
|
434
|
+
|
|
435
|
+
=== Known issues
|
|
436
|
+
|
|
437
|
+
* Very long task descriptions may be truncated
|
|
438
|
+
* Large numbers of actors may become cluttered
|
|
439
|
+
* Many sections may affect layout readability
|
|
440
|
+
|
|
441
|
+
== Best practices
|
|
442
|
+
|
|
443
|
+
=== Use descriptive titles
|
|
444
|
+
|
|
445
|
+
Give journeys clear, descriptive titles:
|
|
446
|
+
|
|
447
|
+
[source,mermaid]
|
|
448
|
+
----
|
|
449
|
+
%% Good
|
|
450
|
+
journey
|
|
451
|
+
title Customer Onboarding Journey
|
|
452
|
+
|
|
453
|
+
%% Less clear
|
|
454
|
+
journey
|
|
455
|
+
title Journey
|
|
456
|
+
----
|
|
457
|
+
|
|
458
|
+
=== Organize with meaningful sections
|
|
459
|
+
|
|
460
|
+
Group related tasks into logical sections:
|
|
461
|
+
|
|
462
|
+
[source,mermaid]
|
|
463
|
+
----
|
|
464
|
+
%% Good - organized by phase
|
|
465
|
+
journey
|
|
466
|
+
section Discovery
|
|
467
|
+
...
|
|
468
|
+
section Evaluation
|
|
469
|
+
...
|
|
470
|
+
section Purchase
|
|
471
|
+
...
|
|
472
|
+
|
|
473
|
+
%% Less organized
|
|
474
|
+
journey
|
|
475
|
+
section Steps
|
|
476
|
+
All tasks mixed together...
|
|
477
|
+
----
|
|
478
|
+
|
|
479
|
+
=== Use realistic satisfaction scores
|
|
480
|
+
|
|
481
|
+
Base scores on actual user research or realistic estimates:
|
|
482
|
+
|
|
483
|
+
[source,mermaid]
|
|
484
|
+
----
|
|
485
|
+
%% Realistic - mix of high and low
|
|
486
|
+
journey
|
|
487
|
+
section Experience
|
|
488
|
+
Easy task: 5: User
|
|
489
|
+
Confusing form: 2: User
|
|
490
|
+
Helpful message: 4: User
|
|
491
|
+
|
|
492
|
+
%% Unrealistic - all perfect
|
|
493
|
+
journey
|
|
494
|
+
section Experience
|
|
495
|
+
Task 1: 5: User
|
|
496
|
+
Task 2: 5: User
|
|
497
|
+
Task 3: 5: User
|
|
498
|
+
----
|
|
499
|
+
|
|
500
|
+
=== Identify pain points
|
|
501
|
+
|
|
502
|
+
Use low scores to highlight areas needing improvement:
|
|
503
|
+
|
|
504
|
+
[source,mermaid]
|
|
505
|
+
----
|
|
506
|
+
journey
|
|
507
|
+
section Checkout
|
|
508
|
+
Review cart: 4: Customer
|
|
509
|
+
Enter shipping address: 2: Customer %% Pain point!
|
|
510
|
+
Enter payment info: 2: Customer %% Pain point!
|
|
511
|
+
Confirm order: 5: Customer
|
|
512
|
+
----
|
|
513
|
+
|
|
514
|
+
=== Include relevant actors
|
|
515
|
+
|
|
516
|
+
Show all actors involved in each task:
|
|
517
|
+
|
|
518
|
+
[source,mermaid]
|
|
519
|
+
----
|
|
520
|
+
%% Good - shows all involved parties
|
|
521
|
+
journey
|
|
522
|
+
section Support
|
|
523
|
+
Issue reported: 2: Customer
|
|
524
|
+
Ticket created: 3: Customer, System
|
|
525
|
+
Agent assigned: 4: Customer, Agent, System
|
|
526
|
+
Issue resolved: 5: Customer, Agent
|
|
527
|
+
|
|
528
|
+
%% Less informative - missing actors
|
|
529
|
+
journey
|
|
530
|
+
section Support
|
|
531
|
+
Issue reported: 2: Customer
|
|
532
|
+
Issue resolved: 5: Customer
|
|
533
|
+
----
|
|
534
|
+
|
|
535
|
+
=== Keep journeys focused
|
|
536
|
+
|
|
537
|
+
Don't try to map everything in one journey:
|
|
538
|
+
|
|
539
|
+
[source,mermaid]
|
|
540
|
+
----
|
|
541
|
+
%% Good - focused on one journey
|
|
542
|
+
journey
|
|
543
|
+
title New User Onboarding
|
|
544
|
+
section Sign Up
|
|
545
|
+
...
|
|
546
|
+
section Setup
|
|
547
|
+
...
|
|
548
|
+
|
|
549
|
+
%% Too broad - multiple journeys mixed
|
|
550
|
+
journey
|
|
551
|
+
title Everything Users Do
|
|
552
|
+
section Onboarding
|
|
553
|
+
...
|
|
554
|
+
section Daily Use
|
|
555
|
+
...
|
|
556
|
+
section Advanced Features
|
|
557
|
+
...
|
|
558
|
+
section Account Management
|
|
559
|
+
...
|
|
560
|
+
----
|
|
561
|
+
|
|
562
|
+
=== Use consistent actor names
|
|
563
|
+
|
|
564
|
+
Maintain consistent naming throughout:
|
|
565
|
+
|
|
566
|
+
[source,mermaid]
|
|
567
|
+
----
|
|
568
|
+
%% Good - consistent
|
|
569
|
+
journey
|
|
570
|
+
section Flow
|
|
571
|
+
Task 1: 5: Customer
|
|
572
|
+
Task 2: 4: Customer
|
|
573
|
+
Task 3: 5: Customer
|
|
574
|
+
|
|
575
|
+
%% Inconsistent
|
|
576
|
+
journey
|
|
577
|
+
section Flow
|
|
578
|
+
Task 1: 5: Customer
|
|
579
|
+
Task 2: 4: User
|
|
580
|
+
Task 3: 5: Client
|
|
581
|
+
----
|
|
582
|
+
|
|
583
|
+
=== Document both positive and negative experiences
|
|
584
|
+
|
|
585
|
+
Show the full range of user emotions:
|
|
586
|
+
|
|
587
|
+
[source,mermaid]
|
|
588
|
+
----
|
|
589
|
+
journey
|
|
590
|
+
section Experience
|
|
591
|
+
Frustrating task: 1: User
|
|
592
|
+
Confusing step: 2: User
|
|
593
|
+
Acceptable process: 3: User
|
|
594
|
+
Good experience: 4: User
|
|
595
|
+
Delightful moment: 5: User
|
|
596
|
+
----
|
|
597
|
+
|
|
598
|
+
== Related documentation
|
|
599
|
+
|
|
600
|
+
* <<index.adoc#,Diagram types overview>>
|
|
601
|
+
* <<sequence-diagram.adoc#,Sequence diagrams>>
|
|
602
|
+
* link:https://mermaid.js.org/syntax/userJourney.html[Official Mermaid user journey documentation]
|
|
@@ -0,0 +1,129 @@
|
|
|
1
|
+
---
|
|
2
|
+
layout: default
|
|
3
|
+
title: Features
|
|
4
|
+
nav_order: 6
|
|
5
|
+
has_children: true
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
== Features
|
|
9
|
+
|
|
10
|
+
Detailed documentation of Sirena's unique features and capabilities.
|
|
11
|
+
|
|
12
|
+
== What's in This Section
|
|
13
|
+
|
|
14
|
+
In-depth coverage of:
|
|
15
|
+
|
|
16
|
+
* **Theme System** - YAML-based theming with built-in themes
|
|
17
|
+
* **Batch Processing** - Processing multiple diagrams efficiently
|
|
18
|
+
* **CLI Tools** - Command-line interface capabilities
|
|
19
|
+
* **Parslet Parsing** - Grammar-based parsing architecture
|
|
20
|
+
* **SVG Generation** - Professional-quality output
|
|
21
|
+
* **Error Handling** - Clear, actionable error messages
|
|
22
|
+
* **Layout Engine** - ELK-based automatic layout
|
|
23
|
+
* **Text Measurement** - Accurate text rendering
|
|
24
|
+
* **Color Palettes** - Theme color system
|
|
25
|
+
* **Typography** - Font and text styling
|
|
26
|
+
* **Shape Styles** - Node and edge styling
|
|
27
|
+
|
|
28
|
+
== Feature Documentation Format
|
|
29
|
+
|
|
30
|
+
Each feature page includes:
|
|
31
|
+
|
|
32
|
+
* **Overview** - What the feature does
|
|
33
|
+
* **Use cases** - When to use this feature
|
|
34
|
+
* **How it works** - Technical explanation
|
|
35
|
+
* **Configuration** - How to configure
|
|
36
|
+
* **Examples** - Practical demonstrations
|
|
37
|
+
* **Best practices** - Recommended usage
|
|
38
|
+
* **Troubleshooting** - Common issues
|
|
39
|
+
|
|
40
|
+
== Core Features
|
|
41
|
+
|
|
42
|
+
=== Rendering & Output
|
|
43
|
+
|
|
44
|
+
* link:{% link _features/svg-generation.adoc %}[SVG Generation] - High-quality scalable graphics
|
|
45
|
+
* link:{% link _features/layout-engine.adoc %}[Layout Engine] - Automatic diagram layout
|
|
46
|
+
* link:{% link _features/text-measurement.adoc %}[Text Measurement] - Accurate text sizing
|
|
47
|
+
|
|
48
|
+
=== Theming & Styling
|
|
49
|
+
|
|
50
|
+
* link:{% link _features/theme-system.adoc %}[Theme System] - YAML-based themes
|
|
51
|
+
* link:{% link _features/color-palettes.adoc %}[Color Palettes] - Theme colors
|
|
52
|
+
* link:{% link _features/typography.adoc %}[Typography] - Font system
|
|
53
|
+
* link:{% link _features/shape-styles.adoc %}[Shape Styles] - Node and edge styling
|
|
54
|
+
|
|
55
|
+
=== Parsing & Validation
|
|
56
|
+
|
|
57
|
+
* link:{% link _features/parslet-parsing.adoc %}[Parslet Parsing] - Grammar-based parser
|
|
58
|
+
* link:{% link _features/error-handling.adoc %}[Error Handling] - Clear error messages
|
|
59
|
+
* link:{% link _features/syntax-validation.adoc %}[Syntax Validation] - Pre-render validation
|
|
60
|
+
|
|
61
|
+
=== Productivity Features
|
|
62
|
+
|
|
63
|
+
* link:{% link _features/batch-processing.adoc %}[Batch Processing] - Multiple diagrams at once
|
|
64
|
+
* link:{% link _features/cli-tools.adoc %}[CLI Tools] - Command-line interface
|
|
65
|
+
* link:{% link _features/caching.adoc %}[Caching] - Performance optimization
|
|
66
|
+
|
|
67
|
+
== Built-in Themes
|
|
68
|
+
|
|
69
|
+
Sirena includes four professional themes:
|
|
70
|
+
|
|
71
|
+
* **Default** - Classic Mermaid.js-compatible styling
|
|
72
|
+
* **Dark** - Dark background with high contrast
|
|
73
|
+
* **Light** - Minimalist light theme
|
|
74
|
+
* **High Contrast** - Maximum accessibility
|
|
75
|
+
|
|
76
|
+
See link:{% link _features/theme-system.adoc %}[Theme System] for details.
|
|
77
|
+
|
|
78
|
+
== Integration Features
|
|
79
|
+
|
|
80
|
+
=== Framework Support
|
|
81
|
+
|
|
82
|
+
* **Rails** - Native Ruby on Rails integration
|
|
83
|
+
* **Jekyll** - Static site generation
|
|
84
|
+
* **Metanorma** - Technical documentation
|
|
85
|
+
* **Generic Ruby** - Any Ruby application
|
|
86
|
+
|
|
87
|
+
=== Build Tool Integration
|
|
88
|
+
|
|
89
|
+
* **Rake Tasks** - Automated diagram generation
|
|
90
|
+
* **CI/CD** - GitHub Actions and other pipelines
|
|
91
|
+
* **Batch Scripts** - Shell integration
|
|
92
|
+
|
|
93
|
+
== Performance Features
|
|
94
|
+
|
|
95
|
+
* **Fast Parsing** - Parslet-based efficient parsing
|
|
96
|
+
* **Optimized Rendering** - Minimal memory footprint
|
|
97
|
+
* **Batch Processing** - Parallel rendering support
|
|
98
|
+
* **Caching** - Optional output caching
|
|
99
|
+
|
|
100
|
+
See link:{% link _guides/performance-optimization.adoc %}[Performance Optimization Guide] for tuning tips.
|
|
101
|
+
|
|
102
|
+
== Unique Advantages
|
|
103
|
+
|
|
104
|
+
=== vs. Mermaid.js
|
|
105
|
+
|
|
106
|
+
* **No Node.js** - Pure Ruby, no JavaScript runtime
|
|
107
|
+
* **No Browser** - No Puppeteer/headless Chrome
|
|
108
|
+
* **Faster** - 16x faster for batch processing
|
|
109
|
+
* **Less Memory** - 8x lower memory usage
|
|
110
|
+
* **Native Ruby** - First-class Ruby integration
|
|
111
|
+
|
|
112
|
+
See link:{% link _pages/compatibility.adoc %}[Compatibility Comparison] for details.
|
|
113
|
+
|
|
114
|
+
== Extensibility
|
|
115
|
+
|
|
116
|
+
Sirena is designed for extension:
|
|
117
|
+
|
|
118
|
+
* **Custom Themes** - Create your own themes
|
|
119
|
+
* **Custom Parsers** - Extend syntax support
|
|
120
|
+
* **Custom Renderers** - Add rendering features
|
|
121
|
+
* **Plugins** - Extend functionality
|
|
122
|
+
|
|
123
|
+
See link:{% link _guides/extending-parsers.adoc %}[Extending Parsers Guide] for developer documentation.
|
|
124
|
+
|
|
125
|
+
== Related Documentation
|
|
126
|
+
|
|
127
|
+
* link:{% link _tutorials/index.adoc %}[Tutorials] - Learn by doing
|
|
128
|
+
* link:{% link _guides/index.adoc %}[Guides] - In-depth topics
|
|
129
|
+
* link:{% link _references/index.adoc %}[References] - API documentation
|