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,300 @@
|
|
|
1
|
+
---
|
|
2
|
+
layout: default
|
|
3
|
+
title: Compatibility
|
|
4
|
+
parent: Core Topics
|
|
5
|
+
nav_order: 4
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
== Sirena vs Mermaid.js Compatibility
|
|
9
|
+
|
|
10
|
+
=== Purpose
|
|
11
|
+
|
|
12
|
+
This page focuses specifically on **Mermaid.js syntax compatibility** - what works, what differs, and how to migrate. For a broader comparison with other diagram tools (PlantUML, Graphviz), see link:comparison/[Tool Comparison].
|
|
13
|
+
|
|
14
|
+
=== Overview
|
|
15
|
+
|
|
16
|
+
Sirena maintains syntax compatibility with Mermaid.js while providing a pure Ruby implementation optimized for server-side rendering. This page documents the compatibility matrix, feature parity, and migration considerations specifically between Sirena and Mermaid.js.
|
|
17
|
+
|
|
18
|
+
=== Feature Comparison Matrix
|
|
19
|
+
|
|
20
|
+
[cols="3,2,2,2"]
|
|
21
|
+
|===
|
|
22
|
+
|Feature |Mermaid.js |Sirena |Notes
|
|
23
|
+
|
|
24
|
+
|**Diagram Types**
|
|
25
|
+
|20+
|
|
26
|
+
|19
|
|
27
|
+
|All major types supported
|
|
28
|
+
|
|
29
|
+
|**Rendering**
|
|
30
|
+
|Browser-based
|
|
31
|
+
|Pure Ruby
|
|
32
|
+
|Sirena is faster for server use
|
|
33
|
+
|
|
34
|
+
|**Themes**
|
|
35
|
+
|CSS-based
|
|
36
|
+
|YAML-based
|
|
37
|
+
|Easier customization in Sirena
|
|
38
|
+
|
|
39
|
+
|**Batch Mode**
|
|
40
|
+
|Manual scripting
|
|
41
|
+
|Built-in
|
|
42
|
+
|`sirena batch` command
|
|
43
|
+
|
|
44
|
+
|**Error Messages**
|
|
45
|
+
|Generic
|
|
46
|
+
|Detailed
|
|
47
|
+
|Better debugging in Sirena
|
|
48
|
+
|
|
49
|
+
|**Dependencies**
|
|
50
|
+
|Node + Puppeteer
|
|
51
|
+
|Ruby only
|
|
52
|
+
|Simpler deployment
|
|
53
|
+
|
|
54
|
+
|**File Size**
|
|
55
|
+
|~2MB (mermaid.min.js)
|
|
56
|
+
|Ruby gem
|
|
57
|
+
|Smaller footprint
|
|
58
|
+
|
|
59
|
+
|**Startup Time**
|
|
60
|
+
|~2s (browser launch)
|
|
61
|
+
|<100ms
|
|
62
|
+
|Much faster
|
|
63
|
+
|
|
64
|
+
|**Memory Usage**
|
|
65
|
+
|~200MB (Chrome)
|
|
66
|
+
|~50MB
|
|
67
|
+
|Lower resource usage
|
|
68
|
+
|
|
69
|
+
|**Interactive Features**
|
|
70
|
+
|Supported
|
|
71
|
+
|Not supported
|
|
72
|
+
|Static SVG only
|
|
73
|
+
|===
|
|
74
|
+
|
|
75
|
+
=== Diagram Type Support
|
|
76
|
+
|
|
77
|
+
==== Fully Compatible (100% Syntax Parity)
|
|
78
|
+
|
|
79
|
+
These diagram types have complete syntax compatibility with Mermaid.js:
|
|
80
|
+
|
|
81
|
+
* **Flowchart** (`graph`, `flowchart`) - All node shapes, edge types, and subgraphs
|
|
82
|
+
* **Sequence Diagram** (`sequenceDiagram`) - All participants, messages, and control structures
|
|
83
|
+
* **Class Diagram** (`classDiagram`) - Classes, relationships, and annotations
|
|
84
|
+
* **State Diagram** (`stateDiagram-v2`) - States, transitions, and nested states
|
|
85
|
+
* **ER Diagram** (`erDiagram`) - Entities, attributes, and relationships
|
|
86
|
+
* **User Journey** (`journey`) - Tasks, scores, and sections
|
|
87
|
+
* **Git Graph** (`gitGraph`) - Commits, branches, merges, and tags
|
|
88
|
+
* **Pie Chart** (`pie`) - Data and labels
|
|
89
|
+
|
|
90
|
+
==== Feature Complete
|
|
91
|
+
|
|
92
|
+
These types are fully implemented with minor differences:
|
|
93
|
+
|
|
94
|
+
* **Gantt Chart** (`gantt`) - All features except click events
|
|
95
|
+
* **Quadrant Chart** (`quadrantChart`) - All features
|
|
96
|
+
* **Requirement Diagram** (`requirementDiagram`) - All features
|
|
97
|
+
* **C4 Diagram** (all 5 types) - Context, Container, Component, Dynamic, Deployment
|
|
98
|
+
* **Mindmap** (`mindmap`) - All node types and levels
|
|
99
|
+
* **Timeline** (`timeline`) - All period types
|
|
100
|
+
* **Sankey** (`sankey-beta`) - All flow types
|
|
101
|
+
* **XY Chart** (`xychart-beta`) - All chart types
|
|
102
|
+
* **Block Diagram** (`block-beta`) - All block types
|
|
103
|
+
* **Architecture** (`architecture-beta`) - All component types
|
|
104
|
+
* **Kanban** (`kanban`) - All column types
|
|
105
|
+
|
|
106
|
+
==== Additional Sirena Types
|
|
107
|
+
|
|
108
|
+
* **Radar Chart** (`radar`) - Not in standard Mermaid.js
|
|
109
|
+
* **Treemap** (`treemap`) - Not in standard Mermaid.js
|
|
110
|
+
* **Packet Diagram** (`packet`) - Network packet visualization
|
|
111
|
+
* **Info Diagram** (`info`) - Information display
|
|
112
|
+
* **Error Diagram** (`error`) - Error state visualization
|
|
113
|
+
|
|
114
|
+
==== Not Supported
|
|
115
|
+
|
|
116
|
+
* **ZenUML** - No specification available in Mermaid.js. Use `sequenceDiagram` instead.
|
|
117
|
+
|
|
118
|
+
=== Syntax Compatibility
|
|
119
|
+
|
|
120
|
+
==== Identical Syntax
|
|
121
|
+
|
|
122
|
+
The following syntax is 100% identical between Mermaid.js and Sirena:
|
|
123
|
+
|
|
124
|
+
* Diagram type declarations
|
|
125
|
+
* Node definitions
|
|
126
|
+
* Edge/relationship definitions
|
|
127
|
+
* Labels and text
|
|
128
|
+
* Subgraphs and grouping
|
|
129
|
+
* Comments (`%%`)
|
|
130
|
+
* Title and accessibility attributes
|
|
131
|
+
|
|
132
|
+
==== Minor Differences
|
|
133
|
+
|
|
134
|
+
===== Styling
|
|
135
|
+
|
|
136
|
+
**Mermaid.js:**
|
|
137
|
+
[source,mermaid]
|
|
138
|
+
----
|
|
139
|
+
graph TD
|
|
140
|
+
A[Node]
|
|
141
|
+
style A fill:#f9f,stroke:#333,stroke-width:4px
|
|
142
|
+
----
|
|
143
|
+
|
|
144
|
+
**Sirena:**
|
|
145
|
+
Uses YAML themes instead of inline styles. Apply themes globally:
|
|
146
|
+
[source,bash]
|
|
147
|
+
----
|
|
148
|
+
sirena render diagram.mmd --theme dark
|
|
149
|
+
----
|
|
150
|
+
|
|
151
|
+
===== Click Events
|
|
152
|
+
|
|
153
|
+
**Mermaid.js:** Supports click events and callbacks
|
|
154
|
+
[source,mermaid]
|
|
155
|
+
----
|
|
156
|
+
graph TD
|
|
157
|
+
A[Node]
|
|
158
|
+
click A callback "Tooltip"
|
|
159
|
+
----
|
|
160
|
+
|
|
161
|
+
**Sirena:** Not supported (static SVG output)
|
|
162
|
+
|
|
163
|
+
===== Custom CSS Classes
|
|
164
|
+
|
|
165
|
+
**Mermaid.js:** Supports CSS class assignment
|
|
166
|
+
[source,mermaid]
|
|
167
|
+
----
|
|
168
|
+
graph TD
|
|
169
|
+
A[Node]
|
|
170
|
+
class A myClass
|
|
171
|
+
----
|
|
172
|
+
|
|
173
|
+
**Sirena:** Use theme system for styling
|
|
174
|
+
|
|
175
|
+
=== Performance Comparison
|
|
176
|
+
|
|
177
|
+
Benchmarks for rendering 100 diagrams:
|
|
178
|
+
|
|
179
|
+
[cols="2,2,2,2"]
|
|
180
|
+
|===
|
|
181
|
+
|Metric |Mermaid.js |Sirena |Improvement
|
|
182
|
+
|
|
183
|
+
|Total Time
|
|
184
|
+
|~240s
|
|
185
|
+
|~15s
|
|
186
|
+
|**16x faster**
|
|
187
|
+
|
|
188
|
+
|Memory Peak
|
|
189
|
+
|~1.2GB
|
|
190
|
+
|~150MB
|
|
191
|
+
|**8x less**
|
|
192
|
+
|
|
193
|
+
|Startup
|
|
194
|
+
|~2s per diagram
|
|
195
|
+
|~50ms per diagram
|
|
196
|
+
|**40x faster**
|
|
197
|
+
|
|
198
|
+
|Dependencies
|
|
199
|
+
|Node, Puppeteer, Chrome
|
|
200
|
+
|Ruby only
|
|
201
|
+
|Simpler
|
|
202
|
+
|===
|
|
203
|
+
|
|
204
|
+
=== Migration Benefits
|
|
205
|
+
|
|
206
|
+
==== Why Migrate to Sirena?
|
|
207
|
+
|
|
208
|
+
**Simpler Deployment**
|
|
209
|
+
|
|
210
|
+
* No Node.js required
|
|
211
|
+
* No headless browser (Puppeteer/Chrome)
|
|
212
|
+
* Single Ruby gem installation
|
|
213
|
+
* Smaller Docker images
|
|
214
|
+
|
|
215
|
+
**Better Performance**
|
|
216
|
+
|
|
217
|
+
* 16x faster batch processing
|
|
218
|
+
* 8x lower memory usage
|
|
219
|
+
* Faster CI/CD builds
|
|
220
|
+
* Better for serverless
|
|
221
|
+
|
|
222
|
+
**Native Ruby Integration**
|
|
223
|
+
|
|
224
|
+
* Rails helpers and views
|
|
225
|
+
* Jekyll static sites
|
|
226
|
+
* Rake task automation
|
|
227
|
+
* Ruby gem ecosystem
|
|
228
|
+
|
|
229
|
+
**Enhanced Tooling**
|
|
230
|
+
|
|
231
|
+
* Built-in batch processor
|
|
232
|
+
* Better error messages
|
|
233
|
+
* YAML-based themes
|
|
234
|
+
* Command-line tools
|
|
235
|
+
|
|
236
|
+
=== Not Migrating? When to Use Each
|
|
237
|
+
|
|
238
|
+
==== Use Mermaid.js When:
|
|
239
|
+
|
|
240
|
+
* You need interactive diagrams in browser
|
|
241
|
+
* You need click events and callbacks
|
|
242
|
+
* You have complex custom styling
|
|
243
|
+
* You're already using Node.js stack
|
|
244
|
+
* You need real-time client-side rendering
|
|
245
|
+
|
|
246
|
+
==== Use Sirena When:
|
|
247
|
+
|
|
248
|
+
* Server-side rendering is required
|
|
249
|
+
* Building Ruby applications (Rails, Jekyll)
|
|
250
|
+
* Batch processing many diagrams
|
|
251
|
+
* CI/CD diagram generation
|
|
252
|
+
* Simpler deployment is priority
|
|
253
|
+
* Lower resource usage is important
|
|
254
|
+
|
|
255
|
+
=== Migration Path
|
|
256
|
+
|
|
257
|
+
See link:{% link _guides/migration-from-mermaid.adoc %}[Migration Guide] for:
|
|
258
|
+
|
|
259
|
+
* Step-by-step migration instructions
|
|
260
|
+
* Syntax conversion examples
|
|
261
|
+
* Tool comparison
|
|
262
|
+
* Performance optimization
|
|
263
|
+
* Troubleshooting tips
|
|
264
|
+
|
|
265
|
+
=== Compatibility Testing
|
|
266
|
+
|
|
267
|
+
Sirena includes comprehensive compatibility testing:
|
|
268
|
+
|
|
269
|
+
[source,bash]
|
|
270
|
+
----
|
|
271
|
+
# Run Mermaid.js compatibility tests
|
|
272
|
+
rake mermaid:validate
|
|
273
|
+
|
|
274
|
+
# Compare output with Mermaid.js
|
|
275
|
+
sirena render diagram.mmd -o sirena-output.svg
|
|
276
|
+
# Compare with mermaid-cli output
|
|
277
|
+
----
|
|
278
|
+
|
|
279
|
+
=== Future Compatibility
|
|
280
|
+
|
|
281
|
+
Sirena aims to maintain syntax parity with Mermaid.js. New Mermaid.js features will be evaluated for inclusion based on:
|
|
282
|
+
|
|
283
|
+
* Server-side rendering applicability
|
|
284
|
+
* Ruby ecosystem fit
|
|
285
|
+
* Performance impact
|
|
286
|
+
* Community demand
|
|
287
|
+
|
|
288
|
+
=== Getting Help
|
|
289
|
+
|
|
290
|
+
* **Issues**: https://github.com/claricle/sirena/issues[Report compatibility issues]
|
|
291
|
+
* **Migration**: link:{% link _guides/migration-from-mermaid.adoc %}[Migration Guide]
|
|
292
|
+
* **Examples**: https://github.com/claricle/sirena/tree/main/examples[Example Diagrams]
|
|
293
|
+
|
|
294
|
+
=== Related Documentation
|
|
295
|
+
|
|
296
|
+
* link:comparison/[Tool Comparison] - Compare Sirena with Mermaid.js, PlantUML, and Graphviz
|
|
297
|
+
* link:{% link _guides/migration-from-mermaid.adoc %}[Migration from Mermaid.js] - Step-by-step migration guide
|
|
298
|
+
* link:{% link _diagram_types/index.adoc %}[Diagram Types Reference] - Syntax for all diagram types
|
|
299
|
+
* link:{% link _features/theme-system.adoc %}[Theme System] - YAML-based theming
|
|
300
|
+
* link:{% link _guides/performance-optimization.adoc %}[Performance Optimization] - Optimization techniques
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
---
|
|
2
|
+
layout: default
|
|
3
|
+
title: Core Topics
|
|
4
|
+
nav_order: 2
|
|
5
|
+
has_children: true
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
== Core Topics
|
|
9
|
+
|
|
10
|
+
Essential concepts and information you need to understand and use Sirena effectively.
|
|
11
|
+
|
|
12
|
+
== What's in This Section
|
|
13
|
+
|
|
14
|
+
This section covers fundamental topics including:
|
|
15
|
+
|
|
16
|
+
* **Installation** - How to install and set up Sirena
|
|
17
|
+
* **Architecture** - Understanding Sirena's design and components
|
|
18
|
+
* **Theming System** - How themes work in Sirena
|
|
19
|
+
* **Compatibility** - Mermaid.js syntax compatibility matrix
|
|
20
|
+
* **Comparison** - Sirena vs Mermaid.js vs PlantUML vs Graphviz
|
|
21
|
+
* **Configuration** - Configuring Sirena for your needs
|
|
22
|
+
|
|
23
|
+
== Quick Navigation
|
|
24
|
+
|
|
25
|
+
Browse the topics in the sidebar or use the search function to find specific information.
|
|
26
|
+
|
|
27
|
+
== Getting Started
|
|
28
|
+
|
|
29
|
+
If you're new to Sirena, we recommend starting with:
|
|
30
|
+
|
|
31
|
+
. link:{% link _tutorials/getting-started.adoc %}[Getting Started Tutorial]
|
|
32
|
+
. link:{% link _pages/architecture.adoc %}[Architecture Overview]
|
|
33
|
+
. link:{% link _diagram_types/index.adoc %}[Diagram Types Reference]
|
|
34
|
+
|
|
35
|
+
== Need Help?
|
|
36
|
+
|
|
37
|
+
* See link:{% link _tutorials/index.adoc %}[Tutorials] for step-by-step guides
|
|
38
|
+
* Check link:{% link _references/index.adoc %}[References] for API documentation
|
|
39
|
+
* Visit our https://github.com/claricle/sirena/issues[GitHub Issues] for support
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
---
|
|
2
|
+
layout: default
|
|
3
|
+
title: References
|
|
4
|
+
nav_order: 7
|
|
5
|
+
has_children: true
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
== References
|
|
9
|
+
|
|
10
|
+
Complete API, CLI, and configuration references for quick lookup.
|
|
11
|
+
|
|
12
|
+
== What's in This Section
|
|
13
|
+
|
|
14
|
+
Comprehensive reference documentation:
|
|
15
|
+
|
|
16
|
+
* **CLI Reference** - Complete command-line interface
|
|
17
|
+
* **API Reference** - Programmatic API documentation
|
|
18
|
+
* **Theme Reference** - Theme configuration schema
|
|
19
|
+
* **Error Codes** - All error codes and meanings
|
|
20
|
+
* **Configuration** - Configuration options
|
|
21
|
+
* **Mermaid Compatibility** - Syntax compatibility matrix
|
|
22
|
+
|
|
23
|
+
== Reference Format
|
|
24
|
+
|
|
25
|
+
Each reference page provides:
|
|
26
|
+
|
|
27
|
+
* **Quick lookup tables** - Find information fast
|
|
28
|
+
* **Complete listings** - Exhaustive documentation
|
|
29
|
+
* **Examples** - Usage demonstrations
|
|
30
|
+
* **Notes** - Important details and caveats
|
|
31
|
+
* **See also** - Related documentation
|
|
32
|
+
|
|
33
|
+
== Command-Line Interface
|
|
34
|
+
|
|
35
|
+
=== link:{% link _references/cli-reference.adoc %}[CLI Reference]
|
|
36
|
+
|
|
37
|
+
Complete documentation of all `sirena` commands:
|
|
38
|
+
|
|
39
|
+
* `sirena render` - Render a single diagram
|
|
40
|
+
* `sirena batch` - Process multiple diagrams
|
|
41
|
+
* `sirena types` - List supported diagram types
|
|
42
|
+
* `sirena version` - Show version information
|
|
43
|
+
|
|
44
|
+
== Programmatic API
|
|
45
|
+
|
|
46
|
+
=== link:{% link _references/api-reference.adoc %}[API Reference]
|
|
47
|
+
|
|
48
|
+
Ruby API documentation:
|
|
49
|
+
|
|
50
|
+
* `Sirena.render()` - Main rendering method
|
|
51
|
+
* `Sirena::Engine` - Core engine class
|
|
52
|
+
* `Sirena::Theme` - Theme system
|
|
53
|
+
* `Sirena::Parser` - Parser classes
|
|
54
|
+
* `Sirena::Renderer` - Renderer classes
|
|
55
|
+
|
|
56
|
+
== Configuration
|
|
57
|
+
|
|
58
|
+
=== link:{% link _references/theme-reference.adoc %}[Theme Reference]
|
|
59
|
+
|
|
60
|
+
Complete theme configuration schema:
|
|
61
|
+
|
|
62
|
+
* Color palette configuration
|
|
63
|
+
* Typography settings
|
|
64
|
+
* Shape styles
|
|
65
|
+
* Spacing configuration
|
|
66
|
+
* Effect styles
|
|
67
|
+
|
|
68
|
+
== Error Handling
|
|
69
|
+
|
|
70
|
+
=== link:{% link _references/error-codes.adoc %}[Error Codes]
|
|
71
|
+
|
|
72
|
+
All error codes with:
|
|
73
|
+
|
|
74
|
+
* Error code number
|
|
75
|
+
* Error message
|
|
76
|
+
* Cause explanation
|
|
77
|
+
* Resolution steps
|
|
78
|
+
* Examples
|
|
79
|
+
|
|
80
|
+
== Compatibility
|
|
81
|
+
|
|
82
|
+
=== link:{% link _references/mermaid-compatibility.adoc %}[Mermaid Compatibility]
|
|
83
|
+
|
|
84
|
+
Feature-by-feature comparison:
|
|
85
|
+
|
|
86
|
+
* Supported syntax
|
|
87
|
+
* Unsupported features
|
|
88
|
+
* Behavioral differences
|
|
89
|
+
* Migration notes
|
|
90
|
+
|
|
91
|
+
== Quick Reference Cards
|
|
92
|
+
|
|
93
|
+
Downloadable quick references:
|
|
94
|
+
|
|
95
|
+
* link:{% link _references/cli-quick-reference.adoc %}[CLI Quick Reference]
|
|
96
|
+
* link:{% link _references/api-quick-reference.adoc %}[API Quick Reference]
|
|
97
|
+
* link:{% link _references/syntax-quick-reference.adoc %}[Syntax Quick Reference]
|
|
98
|
+
|
|
99
|
+
== Related Documentation
|
|
100
|
+
|
|
101
|
+
* link:{% link _tutorials/index.adoc %}[Tutorials] - Learn step-by-step
|
|
102
|
+
* link:{% link _guides/index.adoc %}[Guides] - In-depth topics
|
|
103
|
+
* link:{% link _diagram_types/index.adoc %}[Diagram Types] - Syntax for each type
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
---
|
|
2
|
+
layout: default
|
|
3
|
+
title: Tutorials
|
|
4
|
+
nav_order: 3
|
|
5
|
+
has_children: true
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
== Tutorials
|
|
9
|
+
|
|
10
|
+
Step-by-step tutorials to help you accomplish specific tasks with Sirena.
|
|
11
|
+
|
|
12
|
+
== What's in This Section
|
|
13
|
+
|
|
14
|
+
Hands-on tutorials covering:
|
|
15
|
+
|
|
16
|
+
* **Getting Started** - Installation and first diagram
|
|
17
|
+
* **CLI Usage** - Command-line interface walkthrough
|
|
18
|
+
* **Rails Integration** - Using Sirena in Rails applications
|
|
19
|
+
* **Jekyll Integration** - Static site generation with Sirena
|
|
20
|
+
* **Batch Processing** - Processing multiple diagrams at once
|
|
21
|
+
* **Theme Customization** - Creating and applying custom themes
|
|
22
|
+
|
|
23
|
+
== Tutorial Format
|
|
24
|
+
|
|
25
|
+
Each tutorial includes:
|
|
26
|
+
|
|
27
|
+
* **Prerequisites** - What you need before starting
|
|
28
|
+
* **Step-by-step instructions** - Clear, actionable steps
|
|
29
|
+
* **Code examples** - Copy-paste ready code
|
|
30
|
+
* **Expected results** - What you should see
|
|
31
|
+
* **Troubleshooting** - Common issues and solutions
|
|
32
|
+
|
|
33
|
+
== Recommended Learning Path
|
|
34
|
+
|
|
35
|
+
For beginners:
|
|
36
|
+
|
|
37
|
+
. link:{% link _tutorials/getting-started.adoc %}[Getting Started]
|
|
38
|
+
. link:{% link _tutorials/cli-usage.adoc %}[CLI Usage]
|
|
39
|
+
. link:{% link _tutorials/creating-first-diagram.adoc %}[Creating Your First Diagram]
|
|
40
|
+
|
|
41
|
+
For application integration:
|
|
42
|
+
|
|
43
|
+
. link:{% link _tutorials/rails-integration.adoc %}[Rails Integration]
|
|
44
|
+
. link:{% link _tutorials/jekyll-integration.adoc %}[Jekyll Integration]
|
|
45
|
+
|
|
46
|
+
For advanced usage:
|
|
47
|
+
|
|
48
|
+
. link:{% link _tutorials/batch-processing.adoc %}[Batch Processing]
|
|
49
|
+
. link:{% link _tutorials/theme-customization.adoc %}[Theme Customization]
|
|
50
|
+
|
|
51
|
+
== Next Steps
|
|
52
|
+
|
|
53
|
+
After completing tutorials:
|
|
54
|
+
|
|
55
|
+
* Explore link:{% link _guides/index.adoc %}[Guides] for in-depth topics
|
|
56
|
+
* Reference link:{% link _diagram_types/index.adoc %}[Diagram Types] for syntax
|
|
57
|
+
* Check link:{% link _references/index.adoc %}[API Reference] for programmatic use
|
data/docs/index.adoc
ADDED
|
@@ -0,0 +1,166 @@
|
|
|
1
|
+
---
|
|
2
|
+
layout: default
|
|
3
|
+
title: Home
|
|
4
|
+
nav_order: 1
|
|
5
|
+
description: "Sirena: Pure Ruby Mermaid diagram renderer with 19 diagram types"
|
|
6
|
+
permalink: /
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
== Sirena Documentation
|
|
10
|
+
|
|
11
|
+
Welcome to Sirena, a pure Ruby Mermaid diagram rendering library that converts Mermaid syntax into beautiful SVG diagrams. Built for server-side rendering, Sirena provides native integration with Ruby applications without requiring Node.js or browser dependencies.
|
|
12
|
+
|
|
13
|
+
== Why Sirena?
|
|
14
|
+
|
|
15
|
+
=== Pure Ruby Implementation
|
|
16
|
+
* No Node.js dependencies
|
|
17
|
+
* No Puppeteer/Chrome requirements
|
|
18
|
+
* Simpler deployment in Ruby environments
|
|
19
|
+
* Native integration with Rails, Jekyll, and Ruby applications
|
|
20
|
+
|
|
21
|
+
=== Better Performance
|
|
22
|
+
* Faster startup (no browser launch)
|
|
23
|
+
* Lower memory footprint
|
|
24
|
+
* Better for batch processing
|
|
25
|
+
* Suitable for serverless environments
|
|
26
|
+
|
|
27
|
+
=== Comprehensive Diagram Support
|
|
28
|
+
* 19 diagram types fully implemented
|
|
29
|
+
* Mermaid.js syntax compatibility
|
|
30
|
+
* Advanced theming system
|
|
31
|
+
* Professional-quality SVG output
|
|
32
|
+
|
|
33
|
+
== Quick Start
|
|
34
|
+
|
|
35
|
+
[source,ruby]
|
|
36
|
+
----
|
|
37
|
+
# Installation
|
|
38
|
+
gem install sirena
|
|
39
|
+
|
|
40
|
+
# Basic usage
|
|
41
|
+
require 'sirena'
|
|
42
|
+
|
|
43
|
+
svg = Sirena.render(<<~MERMAID)
|
|
44
|
+
graph TD
|
|
45
|
+
Start --> End
|
|
46
|
+
MERMAID
|
|
47
|
+
|
|
48
|
+
puts svg
|
|
49
|
+
----
|
|
50
|
+
|
|
51
|
+
See link:{% link _tutorials/getting-started.adoc %}[Getting Started Tutorial] for complete installation and usage instructions.
|
|
52
|
+
|
|
53
|
+
== Documentation Structure
|
|
54
|
+
|
|
55
|
+
=== link:{% link _pages/index.adoc %}[Core Topics]
|
|
56
|
+
Essential concepts and architecture you need to understand Sirena.
|
|
57
|
+
|
|
58
|
+
=== link:{% link _tutorials/index.adoc %}[Tutorials]
|
|
59
|
+
Step-by-step guides to help you get started and accomplish specific tasks.
|
|
60
|
+
|
|
61
|
+
=== link:{% link _guides/index.adoc %}[Guides]
|
|
62
|
+
In-depth guides for advanced features and best practices.
|
|
63
|
+
|
|
64
|
+
=== link:{% link _diagram_types/index.adoc %}[Diagram Types]
|
|
65
|
+
Complete reference for all 19 diagram types with syntax and examples.
|
|
66
|
+
|
|
67
|
+
=== link:{% link _features/index.adoc %}[Features]
|
|
68
|
+
Detailed documentation of Sirena's unique features and capabilities.
|
|
69
|
+
|
|
70
|
+
=== link:{% link _references/index.adoc %}[References]
|
|
71
|
+
Complete API and CLI references for quick lookup.
|
|
72
|
+
|
|
73
|
+
== Supported Diagram Types
|
|
74
|
+
|
|
75
|
+
Sirena supports 19 diagram types compatible with Mermaid.js syntax:
|
|
76
|
+
|
|
77
|
+
[cols="1,3"]
|
|
78
|
+
|===
|
|
79
|
+
|Type |Use Case
|
|
80
|
+
|
|
81
|
+
|link:{% link _diagram_types/flowchart.adoc %}[Flowchart]
|
|
82
|
+
|Process flows and directed graphs
|
|
83
|
+
|
|
84
|
+
|link:{% link _diagram_types/sequence-diagram.adoc %}[Sequence]
|
|
85
|
+
|Message interactions over time
|
|
86
|
+
|
|
87
|
+
|link:{% link _diagram_types/class-diagram.adoc %}[Class]
|
|
88
|
+
|Object-oriented class structures
|
|
89
|
+
|
|
90
|
+
|link:{% link _diagram_types/state-diagram.adoc %}[State]
|
|
91
|
+
|State machines and transitions
|
|
92
|
+
|
|
93
|
+
|link:{% link _diagram_types/er-diagram.adoc %}[ER Diagram]
|
|
94
|
+
|Database entity relationships
|
|
95
|
+
|
|
96
|
+
|link:{% link _diagram_types/user-journey.adoc %}[User Journey]
|
|
97
|
+
|User experience mapping
|
|
98
|
+
|
|
99
|
+
|link:{% link _diagram_types/git-graph.adoc %}[Git Graph]
|
|
100
|
+
|Repository history visualization
|
|
101
|
+
|
|
102
|
+
|link:{% link _diagram_types/pie-chart.adoc %}[Pie Chart]
|
|
103
|
+
|Proportional data visualization
|
|
104
|
+
|
|
105
|
+
|link:{% link _diagram_types/gantt-chart.adoc %}[Gantt Chart]
|
|
106
|
+
|Project timeline planning
|
|
107
|
+
|
|
108
|
+
|link:{% link _diagram_types/quadrant-chart.adoc %}[Quadrant]
|
|
109
|
+
|Priority/complexity matrices
|
|
110
|
+
|
|
111
|
+
|link:{% link _diagram_types/requirement-diagram.adoc %}[Requirement]
|
|
112
|
+
|Requirements traceability
|
|
113
|
+
|
|
114
|
+
|link:{% link _diagram_types/c4-diagram.adoc %}[C4]
|
|
115
|
+
|Software architecture (Context, Container, Component, Code)
|
|
116
|
+
|
|
117
|
+
|link:{% link _diagram_types/mindmap.adoc %}[Mindmap]
|
|
118
|
+
|Hierarchical idea organization
|
|
119
|
+
|
|
120
|
+
|link:{% link _diagram_types/timeline.adoc %}[Timeline]
|
|
121
|
+
|Historical event visualization
|
|
122
|
+
|
|
123
|
+
|link:{% link _diagram_types/sankey-diagram.adoc %}[Sankey]
|
|
124
|
+
|Flow quantity visualization
|
|
125
|
+
|
|
126
|
+
|link:{% link _diagram_types/xy-chart.adoc %}[XY Chart]
|
|
127
|
+
|Data point plotting
|
|
128
|
+
|
|
129
|
+
|link:{% link _diagram_types/block-diagram.adoc %}[Block]
|
|
130
|
+
|Component relationships
|
|
131
|
+
|
|
132
|
+
|link:{% link _diagram_types/architecture-diagram.adoc %}[Architecture]
|
|
133
|
+
|System architecture views
|
|
134
|
+
|
|
135
|
+
|link:{% link _diagram_types/kanban-diagram.adoc %}[Kanban]
|
|
136
|
+
|Workflow board visualization
|
|
137
|
+
|===
|
|
138
|
+
|
|
139
|
+
See the complete link:{% link _diagram_types/index.adoc %}[Diagram Types Reference] for detailed syntax and examples.
|
|
140
|
+
|
|
141
|
+
== Key Features
|
|
142
|
+
|
|
143
|
+
* **Theme System**: YAML-based theming with 4 built-in themes (default, dark, light, high-contrast)
|
|
144
|
+
* **Batch Processing**: Built-in batch renderer for documentation sets
|
|
145
|
+
* **Rails Integration**: Native Ruby integration with Rails helpers
|
|
146
|
+
* **Jekyll Support**: Static site generation compatibility
|
|
147
|
+
* **Parslet Parsing**: Robust grammar-based parsing with clear error messages
|
|
148
|
+
* **SVG Output**: Professional-quality scalable vector graphics
|
|
149
|
+
|
|
150
|
+
== Compatibility & Comparison
|
|
151
|
+
|
|
152
|
+
Sirena maintains syntax compatibility with Mermaid.js while providing a pure Ruby implementation optimized for server-side rendering.
|
|
153
|
+
|
|
154
|
+
* link:{% link _pages/compatibility.adoc %}[Mermaid.js Compatibility] - Detailed syntax compatibility matrix
|
|
155
|
+
* link:{% link _pages/comparison.adoc %}[Tool Comparison] - Compare Sirena with Mermaid.js, PlantUML, and Graphviz
|
|
156
|
+
|
|
157
|
+
== Getting Help
|
|
158
|
+
|
|
159
|
+
* **Report Issues**: https://github.com/claricle/sirena/issues[GitHub Issues]
|
|
160
|
+
* **Source Code**: https://github.com/claricle/sirena[GitHub Repository]
|
|
161
|
+
* **RubyGems**: https://rubygems.org/gems/sirena[Sirena Gem]
|
|
162
|
+
* **Migration Guide**: link:{% link _guides/migration-from-mermaid.adoc %}[Migrating from Mermaid.js]
|
|
163
|
+
|
|
164
|
+
== License
|
|
165
|
+
|
|
166
|
+
Sirena is open source under the MIT License.
|
data/docs/lychee.toml
ADDED
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
# Cache results between runs
|
|
2
|
+
cache = true
|
|
3
|
+
|
|
4
|
+
# Maximum number of concurrent link checks
|
|
5
|
+
max_concurrency = 16
|
|
6
|
+
|
|
7
|
+
# Accept status codes
|
|
8
|
+
accept = [200, 204, 301, 302, 307, 308, 403, 429]
|
|
9
|
+
|
|
10
|
+
# Exclude patterns
|
|
11
|
+
exclude = [
|
|
12
|
+
# Skip local file URLs that won't exist in production
|
|
13
|
+
'^file://',
|
|
14
|
+
# Skip mailto links
|
|
15
|
+
'^mailto:',
|
|
16
|
+
# Skip anchors without base URL
|
|
17
|
+
'^#',
|
|
18
|
+
]
|
|
19
|
+
|
|
20
|
+
# Include patterns
|
|
21
|
+
include = [
|
|
22
|
+
# Check all HTTP/HTTPS links
|
|
23
|
+
'^https?://',
|
|
24
|
+
]
|
|
25
|
+
|
|
26
|
+
# Timeout for each request (in seconds)
|
|
27
|
+
timeout = 30
|
|
28
|
+
|
|
29
|
+
# Number of retries
|
|
30
|
+
max_retries = 3
|
|
31
|
+
|
|
32
|
+
# User agent
|
|
33
|
+
user_agent = "lychee/link-checker"
|
|
34
|
+
|
|
35
|
+
# Exclude certain file types from link checking
|
|
36
|
+
exclude_file = []
|
|
37
|
+
|
|
38
|
+
# Skip checking links in certain HTML elements
|
|
39
|
+
exclude_mail = true
|
|
40
|
+
|
|
41
|
+
# Check for broken fragments (anchors)
|
|
42
|
+
check_anchors = true
|
|
43
|
+
|
|
44
|
+
# Verify SSL certificates
|
|
45
|
+
require_https = false
|
|
46
|
+
|
|
47
|
+
# Follow redirects
|
|
48
|
+
follow_redirects = true
|
|
49
|
+
|
|
50
|
+
# Maximum redirect depth
|
|
51
|
+
max_redirects = 10
|
|
52
|
+
|
|
53
|
+
# Verbosity
|
|
54
|
+
verbose = true
|