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,203 @@
|
|
|
1
|
+
---
|
|
2
|
+
layout: default
|
|
3
|
+
title: CLI Reference
|
|
4
|
+
parent: Guides
|
|
5
|
+
nav_order: 3
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
= CLI Reference
|
|
9
|
+
|
|
10
|
+
Complete reference for all Sirena command-line interface commands.
|
|
11
|
+
|
|
12
|
+
== Global Options
|
|
13
|
+
|
|
14
|
+
These options are available for all commands:
|
|
15
|
+
|
|
16
|
+
`--verbose, -v`::
|
|
17
|
+
Enable verbose output for debugging
|
|
18
|
+
|
|
19
|
+
`--help, -h`::
|
|
20
|
+
Show help for the command
|
|
21
|
+
|
|
22
|
+
== Commands
|
|
23
|
+
|
|
24
|
+
=== render
|
|
25
|
+
|
|
26
|
+
Render a single Mermaid diagram to SVG.
|
|
27
|
+
|
|
28
|
+
[source,shell]
|
|
29
|
+
----
|
|
30
|
+
sirena render INPUT [OPTIONS]
|
|
31
|
+
----
|
|
32
|
+
|
|
33
|
+
==== Arguments
|
|
34
|
+
|
|
35
|
+
`INPUT`:: Path to input Mermaid file (.mmd)
|
|
36
|
+
|
|
37
|
+
==== Options
|
|
38
|
+
|
|
39
|
+
`--output, -o PATH`:: Output SVG file path (default: stdout)
|
|
40
|
+
|
|
41
|
+
`--type, -t TYPE`:: Explicitly specify diagram type (auto-detected if not provided)
|
|
42
|
+
|
|
43
|
+
`--theme THEME`:: Theme to use: default, dark, light, high-contrast
|
|
44
|
+
|
|
45
|
+
==== Examples
|
|
46
|
+
|
|
47
|
+
Render to stdout:
|
|
48
|
+
[source,shell]
|
|
49
|
+
----
|
|
50
|
+
sirena render diagram.mmd
|
|
51
|
+
----
|
|
52
|
+
|
|
53
|
+
Render to file:
|
|
54
|
+
[source,shell]
|
|
55
|
+
----
|
|
56
|
+
sirena render diagram.mmd -o output.svg
|
|
57
|
+
----
|
|
58
|
+
|
|
59
|
+
Specify diagram type:
|
|
60
|
+
[source,shell]
|
|
61
|
+
----
|
|
62
|
+
sirena render diagram.mmd -t flowchart -o output.svg
|
|
63
|
+
----
|
|
64
|
+
|
|
65
|
+
Use dark theme:
|
|
66
|
+
[source,shell]
|
|
67
|
+
----
|
|
68
|
+
sirena render diagram.mmd --theme dark -o output.svg
|
|
69
|
+
----
|
|
70
|
+
|
|
71
|
+
=== batch
|
|
72
|
+
|
|
73
|
+
Render multiple Mermaid diagrams in a directory.
|
|
74
|
+
|
|
75
|
+
[source,shell]
|
|
76
|
+
----
|
|
77
|
+
sirena batch INPUT_DIR [OPTIONS]
|
|
78
|
+
----
|
|
79
|
+
|
|
80
|
+
==== Arguments
|
|
81
|
+
|
|
82
|
+
`INPUT_DIR`:: Directory containing Mermaid files
|
|
83
|
+
|
|
84
|
+
==== Options
|
|
85
|
+
|
|
86
|
+
`--output, -o DIR`:: Output directory for SVG files (default: current directory)
|
|
87
|
+
|
|
88
|
+
`--theme THEME`:: Theme to use for all diagrams
|
|
89
|
+
|
|
90
|
+
`--recursive, -r`:: Process subdirectories recursively
|
|
91
|
+
|
|
92
|
+
==== Examples
|
|
93
|
+
|
|
94
|
+
Render all diagrams in a directory:
|
|
95
|
+
[source,shell]
|
|
96
|
+
----
|
|
97
|
+
sirena batch diagrams/ -o output/
|
|
98
|
+
----
|
|
99
|
+
|
|
100
|
+
Process recursively:
|
|
101
|
+
[source,shell]
|
|
102
|
+
----
|
|
103
|
+
sirena batch diagrams/ -o output/ --recursive
|
|
104
|
+
----
|
|
105
|
+
|
|
106
|
+
=== types
|
|
107
|
+
|
|
108
|
+
List all supported diagram types.
|
|
109
|
+
|
|
110
|
+
[source,shell]
|
|
111
|
+
----
|
|
112
|
+
sirena types
|
|
113
|
+
----
|
|
114
|
+
|
|
115
|
+
==== Output
|
|
116
|
+
|
|
117
|
+
Displays all 24 supported diagram types with their identifiers.
|
|
118
|
+
|
|
119
|
+
==== Example
|
|
120
|
+
|
|
121
|
+
[source,shell]
|
|
122
|
+
----
|
|
123
|
+
sirena types
|
|
124
|
+
----
|
|
125
|
+
|
|
126
|
+
Output:
|
|
127
|
+
----
|
|
128
|
+
Supported diagram types:
|
|
129
|
+
- architecture
|
|
130
|
+
- block
|
|
131
|
+
- c4
|
|
132
|
+
- class
|
|
133
|
+
- er
|
|
134
|
+
- error
|
|
135
|
+
- flowchart
|
|
136
|
+
- gantt
|
|
137
|
+
- gitgraph
|
|
138
|
+
- info
|
|
139
|
+
- journey
|
|
140
|
+
- kanban
|
|
141
|
+
- mindmap
|
|
142
|
+
- packet
|
|
143
|
+
- pie
|
|
144
|
+
- quadrant
|
|
145
|
+
- radar
|
|
146
|
+
- requirement
|
|
147
|
+
- sankey
|
|
148
|
+
- sequence
|
|
149
|
+
- state
|
|
150
|
+
- timeline
|
|
151
|
+
- treemap
|
|
152
|
+
- xychart
|
|
153
|
+
----
|
|
154
|
+
|
|
155
|
+
=== version
|
|
156
|
+
|
|
157
|
+
Display Sirena version.
|
|
158
|
+
|
|
159
|
+
[source,shell]
|
|
160
|
+
----
|
|
161
|
+
sirena version
|
|
162
|
+
----
|
|
163
|
+
|
|
164
|
+
==== Example
|
|
165
|
+
|
|
166
|
+
[source,shell]
|
|
167
|
+
----
|
|
168
|
+
sirena version
|
|
169
|
+
----
|
|
170
|
+
|
|
171
|
+
Output:
|
|
172
|
+
----
|
|
173
|
+
Sirena version 0.1.0
|
|
174
|
+
----
|
|
175
|
+
|
|
176
|
+
== Environment Variables
|
|
177
|
+
|
|
178
|
+
`SIRENA_THEME`:: Default theme (overridden by --theme option)
|
|
179
|
+
|
|
180
|
+
`SIRENA_VERBOSE`:: Enable verbose mode (set to 1 or true)
|
|
181
|
+
|
|
182
|
+
==== Example
|
|
183
|
+
|
|
184
|
+
[source,shell]
|
|
185
|
+
----
|
|
186
|
+
export SIRENA_THEME=dark
|
|
187
|
+
export SIRENA_VERBOSE=1
|
|
188
|
+
sirena render diagram.mmd -o output.svg
|
|
189
|
+
----
|
|
190
|
+
|
|
191
|
+
== Exit Codes
|
|
192
|
+
|
|
193
|
+
`0`:: Success
|
|
194
|
+
`1`:: General error
|
|
195
|
+
`2`:: File not found
|
|
196
|
+
`3`:: Parse error
|
|
197
|
+
`4`:: Render error
|
|
198
|
+
|
|
199
|
+
== Next Steps
|
|
200
|
+
|
|
201
|
+
* link:../diagram_types/index.html[Diagram Types Reference] - Syntax for all 24 types
|
|
202
|
+
* link:quick-start.html[Quick Start Guide] - Get started quickly
|
|
203
|
+
* link:../../examples/README.html[Examples] - Browse working examples
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
---
|
|
2
|
+
layout: default
|
|
3
|
+
title: Guides
|
|
4
|
+
nav_order: 4
|
|
5
|
+
has_children: true
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
== Guides
|
|
9
|
+
|
|
10
|
+
In-depth guides covering advanced topics, best practices, and real-world use cases.
|
|
11
|
+
|
|
12
|
+
== What's in This Section
|
|
13
|
+
|
|
14
|
+
Comprehensive guides for:
|
|
15
|
+
|
|
16
|
+
* **Migration from Mermaid.js** - Converting from JavaScript to Ruby
|
|
17
|
+
* **Performance Optimization** - Making your diagrams render faster
|
|
18
|
+
* **Advanced Theming** - Deep dive into the theme system
|
|
19
|
+
* **Best Practices** - Patterns and anti-patterns for each diagram type
|
|
20
|
+
* **Troubleshooting** - Debugging common issues
|
|
21
|
+
* **Production Deployment** - Running Sirena in production environments
|
|
22
|
+
|
|
23
|
+
== Guide Format
|
|
24
|
+
|
|
25
|
+
Each guide provides:
|
|
26
|
+
|
|
27
|
+
* **Overview** - What the guide covers
|
|
28
|
+
* **Background** - Context and concepts
|
|
29
|
+
* **Detailed explanations** - In-depth technical information
|
|
30
|
+
* **Examples** - Real-world scenarios
|
|
31
|
+
* **Best practices** - Recommended approaches
|
|
32
|
+
* **Common pitfalls** - What to avoid
|
|
33
|
+
|
|
34
|
+
== Featured Guides
|
|
35
|
+
|
|
36
|
+
=== For Mermaid.js Users
|
|
37
|
+
|
|
38
|
+
* link:{% link _guides/migration-from-mermaid.adoc %}[Migration from Mermaid.js] - Complete migration guide with syntax comparison
|
|
39
|
+
|
|
40
|
+
=== For Production Use
|
|
41
|
+
|
|
42
|
+
* link:{% link _guides/performance-optimization.adoc %}[Performance Optimization] - Techniques for faster rendering
|
|
43
|
+
* link:{% link _guides/caching-strategies.adoc %}[Caching Strategies] - Improve performance with caching
|
|
44
|
+
* link:{% link _guides/ci-cd-integration.adoc %}[CI/CD Integration] - Using Sirena in automated workflows
|
|
45
|
+
|
|
46
|
+
=== For Advanced Customization
|
|
47
|
+
|
|
48
|
+
* link:{% link _guides/custom-themes.adoc %}[Creating Custom Themes] - Building themes from scratch
|
|
49
|
+
* link:{% link _guides/svg-customization.adoc %}[SVG Customization] - Advanced SVG manipulation
|
|
50
|
+
* link:{% link _guides/extending-parsers.adoc %}[Extending Parsers] - Adding custom syntax
|
|
51
|
+
|
|
52
|
+
== Related Documentation
|
|
53
|
+
|
|
54
|
+
* link:{% link _tutorials/index.adoc %}[Tutorials] - For step-by-step learning
|
|
55
|
+
* link:{% link _features/index.adoc %}[Features] - For feature documentation
|
|
56
|
+
* link:{% link _references/index.adoc %}[References] - For API and CLI reference
|
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
---
|
|
2
|
+
layout: default
|
|
3
|
+
title: Installation
|
|
4
|
+
parent: Guides
|
|
5
|
+
nav_order: 1
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
= Installation Guide
|
|
9
|
+
|
|
10
|
+
== Requirements
|
|
11
|
+
|
|
12
|
+
Sirena requires:
|
|
13
|
+
|
|
14
|
+
* Ruby 2.7 or higher
|
|
15
|
+
* Bundler (for development)
|
|
16
|
+
|
|
17
|
+
== Installation Methods
|
|
18
|
+
|
|
19
|
+
=== Via RubyGems (Recommended)
|
|
20
|
+
|
|
21
|
+
Install Sirena directly from RubyGems:
|
|
22
|
+
|
|
23
|
+
[source,shell]
|
|
24
|
+
----
|
|
25
|
+
gem install sirena
|
|
26
|
+
----
|
|
27
|
+
|
|
28
|
+
=== Via Bundler
|
|
29
|
+
|
|
30
|
+
Add Sirena to your `Gemfile`:
|
|
31
|
+
|
|
32
|
+
[source,ruby]
|
|
33
|
+
----
|
|
34
|
+
gem 'sirena'
|
|
35
|
+
----
|
|
36
|
+
|
|
37
|
+
Then install:
|
|
38
|
+
|
|
39
|
+
[source,shell]
|
|
40
|
+
----
|
|
41
|
+
bundle install
|
|
42
|
+
----
|
|
43
|
+
|
|
44
|
+
=== From Source
|
|
45
|
+
|
|
46
|
+
Clone the repository and install locally:
|
|
47
|
+
|
|
48
|
+
[source,shell]
|
|
49
|
+
----
|
|
50
|
+
git clone https://github.com/claricle/sirena.git
|
|
51
|
+
cd sirena
|
|
52
|
+
bundle install
|
|
53
|
+
bundle exec rake install
|
|
54
|
+
----
|
|
55
|
+
|
|
56
|
+
== Verification
|
|
57
|
+
|
|
58
|
+
Verify the installation:
|
|
59
|
+
|
|
60
|
+
[source,shell]
|
|
61
|
+
----
|
|
62
|
+
sirena version
|
|
63
|
+
----
|
|
64
|
+
|
|
65
|
+
You should see output similar to:
|
|
66
|
+
|
|
67
|
+
----
|
|
68
|
+
Sirena version 0.1.0
|
|
69
|
+
----
|
|
70
|
+
|
|
71
|
+
== Next Steps
|
|
72
|
+
|
|
73
|
+
* link:quick-start.html[Quick Start Guide] - Get started with your first diagram
|
|
74
|
+
* link:cli-reference.html[CLI Reference] - Learn all available commands
|
|
75
|
+
* link:../diagram_types/index.html[Diagram Types] - Explore all 24 diagram types
|
|
76
|
+
|
|
77
|
+
== Troubleshooting
|
|
78
|
+
|
|
79
|
+
=== Command Not Found
|
|
80
|
+
|
|
81
|
+
If `sirena` command is not found after installation, ensure your gem bin directory is in your PATH:
|
|
82
|
+
|
|
83
|
+
[source,shell]
|
|
84
|
+
----
|
|
85
|
+
echo 'export PATH="$HOME/.gem/ruby/X.X.0/bin:$PATH"' >> ~/.bashrc
|
|
86
|
+
source ~/.bashrc
|
|
87
|
+
----
|
|
88
|
+
|
|
89
|
+
Replace `X.X.0` with your Ruby version.
|
|
90
|
+
|
|
91
|
+
=== Permission Errors
|
|
92
|
+
|
|
93
|
+
If you encounter permission errors during installation, try:
|
|
94
|
+
|
|
95
|
+
[source,shell]
|
|
96
|
+
----
|
|
97
|
+
gem install sirena --user-install
|
|
98
|
+
----
|
|
99
|
+
|
|
100
|
+
Or use a Ruby version manager like `rbenv` or `rvm`.
|
|
@@ -0,0 +1,132 @@
|
|
|
1
|
+
---
|
|
2
|
+
layout: default
|
|
3
|
+
title: Quick Start
|
|
4
|
+
parent: Guides
|
|
5
|
+
nav_order: 2
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
= Quick Start Guide
|
|
9
|
+
|
|
10
|
+
This guide will help you create your first diagram with Sirena in 5 minutes.
|
|
11
|
+
|
|
12
|
+
== Prerequisites
|
|
13
|
+
|
|
14
|
+
Ensure Sirena is installed. If not, see the link:installation.html[Installation Guide].
|
|
15
|
+
|
|
16
|
+
== Your First Diagram
|
|
17
|
+
|
|
18
|
+
=== Step 1: Create a Mermaid File
|
|
19
|
+
|
|
20
|
+
Create a file named `my-first-diagram.mmd`:
|
|
21
|
+
|
|
22
|
+
[source,mermaid]
|
|
23
|
+
----
|
|
24
|
+
graph TD
|
|
25
|
+
A[Start] --> B{Decision}
|
|
26
|
+
B -->|Yes| C[Process]
|
|
27
|
+
B -->|No| D[End]
|
|
28
|
+
C --> D
|
|
29
|
+
----
|
|
30
|
+
|
|
31
|
+
=== Step 2: Render to SVG
|
|
32
|
+
|
|
33
|
+
Run Sirena to generate an SVG:
|
|
34
|
+
|
|
35
|
+
[source,shell]
|
|
36
|
+
----
|
|
37
|
+
sirena render my-first-diagram.mmd -o output.svg
|
|
38
|
+
----
|
|
39
|
+
|
|
40
|
+
=== Step 3: View the Result
|
|
41
|
+
|
|
42
|
+
Open `output.svg` in your browser or image viewer to see your flowchart!
|
|
43
|
+
|
|
44
|
+
== Common Diagram Types
|
|
45
|
+
|
|
46
|
+
=== Flowchart
|
|
47
|
+
|
|
48
|
+
[source,mermaid]
|
|
49
|
+
----
|
|
50
|
+
graph LR
|
|
51
|
+
A[Input] --> B[Process]
|
|
52
|
+
B --> C[Output]
|
|
53
|
+
----
|
|
54
|
+
|
|
55
|
+
=== Sequence Diagram
|
|
56
|
+
|
|
57
|
+
[source,mermaid]
|
|
58
|
+
----
|
|
59
|
+
sequenceDiagram
|
|
60
|
+
Alice->>Bob: Hello
|
|
61
|
+
Bob-->>Alice: Hi there!
|
|
62
|
+
----
|
|
63
|
+
|
|
64
|
+
=== Entity-Relationship Diagram
|
|
65
|
+
|
|
66
|
+
[source,mermaid]
|
|
67
|
+
----
|
|
68
|
+
erDiagram
|
|
69
|
+
CUSTOMER ||--o{ ORDER : places
|
|
70
|
+
ORDER ||--|{ LINE-ITEM : contains
|
|
71
|
+
----
|
|
72
|
+
|
|
73
|
+
== Programmatic Usage
|
|
74
|
+
|
|
75
|
+
Use Sirena in your Ruby code:
|
|
76
|
+
|
|
77
|
+
[source,ruby]
|
|
78
|
+
----
|
|
79
|
+
require 'sirena'
|
|
80
|
+
|
|
81
|
+
# Render from a string
|
|
82
|
+
mermaid_code = <<~MERMAID
|
|
83
|
+
graph TD
|
|
84
|
+
A --> B
|
|
85
|
+
MERMAID
|
|
86
|
+
|
|
87
|
+
svg = Sirena::Engine.render(mermaid_code)
|
|
88
|
+
File.write('output.svg', svg)
|
|
89
|
+
|
|
90
|
+
# Render from a file
|
|
91
|
+
svg = Sirena::Engine.render_file('diagram.mmd')
|
|
92
|
+
----
|
|
93
|
+
|
|
94
|
+
== Batch Processing
|
|
95
|
+
|
|
96
|
+
Render multiple diagrams at once:
|
|
97
|
+
|
|
98
|
+
[source,shell]
|
|
99
|
+
----
|
|
100
|
+
sirena batch diagrams/ -o output/
|
|
101
|
+
----
|
|
102
|
+
|
|
103
|
+
This renders all `.mmd` files in `diagrams/` directory to SVG files in `output/`.
|
|
104
|
+
|
|
105
|
+
== Next Steps
|
|
106
|
+
|
|
107
|
+
* link:cli-reference.html[CLI Reference] - Learn all available commands and options
|
|
108
|
+
* link:../diagram_types/index.html[Diagram Types Reference] - Explore all 24 diagram types
|
|
109
|
+
* link:../../examples/README.html[Examples] - Browse 37+ working examples
|
|
110
|
+
|
|
111
|
+
== Getting Help
|
|
112
|
+
|
|
113
|
+
View available commands:
|
|
114
|
+
|
|
115
|
+
[source,shell]
|
|
116
|
+
----
|
|
117
|
+
sirena help
|
|
118
|
+
----
|
|
119
|
+
|
|
120
|
+
View help for a specific command:
|
|
121
|
+
|
|
122
|
+
[source,shell]
|
|
123
|
+
----
|
|
124
|
+
sirena help render
|
|
125
|
+
----
|
|
126
|
+
|
|
127
|
+
List all supported diagram types:
|
|
128
|
+
|
|
129
|
+
[source,shell]
|
|
130
|
+
----
|
|
131
|
+
sirena types
|
|
132
|
+
----
|