Skip to main content

mermaid_svg/
lib.rs

1//! Render [Mermaid](https://mermaid.js.org/) diagrams to SVG in pure Rust.
2//!
3//! Supported diagram types: pie, sequence, flowchart, state, class, ER,
4//! gantt, journey, timeline, sankey, quadrantChart, xychart, radar, packet,
5//! mindmap, gitGraph, requirementDiagram, C4 (Context/Container/Component/
6//! Dynamic/Deployment), block, architecture, kanban, treemap, zenuml.
7//!
8//! ```
9//! let svg = mermaid_svg::render("pie\n\"A\" : 1\n\"B\" : 2\n").unwrap();
10//! assert!(svg.starts_with("<svg"));
11//! ```
12//!
13//! # Gallery
14//!
15//! Reference output for every supported diagram type, rendered by this crate
16//! from the sources in
17//! [`samples/`](https://github.com/xmiksay/mermaid/tree/master/samples)
18//! (regenerate with `cargo run --example gen-doc-diagrams`).
19#![doc = include_str!("../assets/gallery/pie.md")]
20#![doc = include_str!("../assets/gallery/sequence.md")]
21#![doc = include_str!("../assets/gallery/flowchart.md")]
22#![doc = include_str!("../assets/gallery/state.md")]
23#![doc = include_str!("../assets/gallery/class.md")]
24#![doc = include_str!("../assets/gallery/er.md")]
25#![doc = include_str!("../assets/gallery/gantt.md")]
26#![doc = include_str!("../assets/gallery/journey.md")]
27#![doc = include_str!("../assets/gallery/timeline.md")]
28#![doc = include_str!("../assets/gallery/sankey.md")]
29#![doc = include_str!("../assets/gallery/quadrant.md")]
30#![doc = include_str!("../assets/gallery/xychart.md")]
31#![doc = include_str!("../assets/gallery/radar.md")]
32#![doc = include_str!("../assets/gallery/packet.md")]
33#![doc = include_str!("../assets/gallery/mindmap.md")]
34#![doc = include_str!("../assets/gallery/gitgraph.md")]
35#![doc = include_str!("../assets/gallery/requirement.md")]
36#![doc = include_str!("../assets/gallery/c4.md")]
37#![doc = include_str!("../assets/gallery/block.md")]
38#![doc = include_str!("../assets/gallery/architecture.md")]
39#![doc = include_str!("../assets/gallery/kanban.md")]
40#![doc = include_str!("../assets/gallery/treemap.md")]
41#![doc = include_str!("../assets/gallery/zenuml.md")]
42
43mod parse;
44mod sugiyama;
45mod svg;
46
47pub use parse::ast;
48pub use parse::ast::{Diagram, DiagramMeta};
49pub use parse::{parse, parse_with_meta, ParseError, SyntaxKind};
50pub use svg::{render, render_diagram, render_diagram_with, render_with, RenderError, Theme};