mermaid
Version:
Markdownish syntax for generating flowcharts, sequence diagrams and gantt charts.
212 lines (186 loc) • 17.4 kB
HTML
<html>
<head>
<title>demos.md</title>
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<link rel="stylesheet" media="all" href="../doc-style.css" />
<script src="../doc-filelist.js"></script>
<script>
var relativeDir = "../", thisFile = "Users/knut/Documents/source/mermaid/docs/demos.md", defaultSidebar = true;
</script>
<script src="../doc-script.js"></script>
<script src="../mermaid.js"></script>
<link rel="stylesheet" href="../mermaid.css" />
</head>
<body>
<div id="sidebar_wrapper">
<div id="sidebar_switch">
<span class="tree">Files</span>
<span class="headings">Headings</span>
</div>
<div id="tree"></div>
<div id="headings">
<div class="heading h1">
<a href="#Demos">Demos</a>
</div>
<div class="heading h2">
<a href="#Basic flowchart">Basic flowchart</a>
</div>
<div class="heading h2">
<a href="#Larger flowchart with some styling">Larger flowchart with some styling</a>
</div>
<div class="heading h2">
<a href="#Basic sequence diagram">Basic sequence diagram</a>
</div>
<div class="heading h2">
<a href="#Loops, alt and opt">Loops, alt and opt</a>
</div>
<div class="heading h2">
<a href="#Message to self in loop">Message to self in loop</a>
</div>
</div>
</div>
<div id="sidebar-toggle"></div>
<div id="container"><div class="docs markdown"><div class="pilwrap" id="Demos">
<h1>
<a href="#Demos" name="Demos" class="pilcrow">¶</a>
Demos</h1>
</div>
<div class="pilwrap" id="Basic flowchart">
<h2>
<a href="#Basic flowchart" name="Basic flowchart" class="pilcrow">¶</a>
Basic flowchart</h2>
</div>
<div class="highlight"><pre><code><span class="o">%%</span> <span class="nx">Example</span> <span class="nx">diagram</span>
<span class="nx">graph</span> <span class="nx">LR</span>
<span class="nx">A</span><span class="p">[</span><span class="nx">Square</span> <span class="nx">Rect</span><span class="p">]</span> <span class="o">--</span> <span class="nx">Link</span> <span class="nx">text</span> <span class="o">--</span> <span class="nx">B</span><span class="p">((</span><span class="nx">Circle</span><span class="p">))</span>
<span class="nx">A</span> <span class="o">--</span> <span class="nx">C</span><span class="p">(</span><span class="nx">Round</span> <span class="nx">Rect</span><span class="p">)</span>
<span class="nx">B</span> <span class="o">--</span> <span class="nx">D</span><span class="p">{</span><span class="nx">Rhombus</span><span class="p">}</span>
<span class="nx">C</span> <span class="o">--</span> <span class="nx">D</span>
</code></pre></div>
<script>mermaid.initialize({startOnLoad:true});</script><div class="mermaid">graph LR
A[Square Rect] -- Link text --> B((Circle))
A --> C(Round Rect)
B --> D{Rhombus}
C --> D</div><div class="pilwrap" id="Larger flowchart with some styling">
<h2>
<a href="#Larger flowchart with some styling" name="Larger flowchart with some styling" class="pilcrow">¶</a>
Larger flowchart with some styling</h2>
</div>
<div class="highlight"><pre><code><span class="o">%%</span> <span class="nx">Code</span> <span class="k">for</span> <span class="nx">flowchart</span> <span class="nx">below</span>
<span class="nx">graph</span> <span class="nx">TB</span>
<span class="nx">sq</span><span class="p">[</span><span class="nx">Square</span> <span class="nx">shape</span><span class="p">]</span> <span class="o">--</span> <span class="nx">ci</span><span class="p">((</span><span class="nx">Circle</span> <span class="nx">shape</span><span class="p">))</span>
<span class="nx">subgraph</span> <span class="nx">A</span> <span class="nx">subgraph</span>
<span class="nx">odOdd</span> <span class="nx">shape</span><span class="p">]</span><span class="o">--</span> <span class="nx">Two</span> <span class="nx">linelt</span><span class="p">;</span><span class="nx">bredge</span> <span class="nx">comment</span> <span class="o">--</span> <span class="nx">ro</span>
<span class="nx">di</span><span class="p">{</span><span class="nx">Diamond</span> <span class="kd">with</span> <span class="nx">lt</span><span class="p">;</span><span class="nx">br</span><span class="o">/</span> <span class="nx">line</span> <span class="k">break</span><span class="p">}</span> <span class="o">-</span><span class="p">.</span><span class="o">-</span> <span class="nx">ro</span><span class="p">(</span><span class="nx">Roundedlt</span><span class="p">;</span><span class="nx">brsquarelt</span><span class="p">;</span><span class="nx">brshape</span><span class="p">)</span>
<span class="nx">di</span><span class="o">==</span><span class="nx">ro2</span><span class="p">(</span><span class="nx">Rounded</span> <span class="nx">square</span> <span class="nx">shape</span><span class="p">)</span>
<span class="nx">end</span>
<span class="o">%%</span> <span class="nx">Notice</span> <span class="nx">that</span> <span class="nx">no</span> <span class="nx">text</span> <span class="k">in</span> <span class="nx">shape</span> <span class="nx">are</span> <span class="nx">added</span> <span class="nx">here</span> <span class="nx">instead</span> <span class="nx">that</span> <span class="nx">is</span> <span class="nx">appended</span> <span class="nx">further</span> <span class="nx">down</span>
<span class="nx">e</span> <span class="o">--</span> <span class="nx">od3Really</span> <span class="kr">long</span> <span class="nx">text</span> <span class="kd">with</span> <span class="nx">linebreaklt</span><span class="p">;</span><span class="nx">brin</span> <span class="nx">an</span> <span class="nx">Odd</span> <span class="nx">shape</span><span class="p">]</span>
<span class="o">%%</span> <span class="nx">Comments</span> <span class="nx">after</span> <span class="kr">double</span> <span class="nx">percent</span> <span class="nx">signs</span>
<span class="nx">e</span><span class="p">((</span><span class="nx">Inner</span> <span class="o">/</span> <span class="nx">circlelt</span><span class="p">;</span><span class="nx">brand</span> <span class="nx">some</span> <span class="nx">odd</span> <span class="nx">lt</span><span class="p">;</span><span class="nx">brspecial</span> <span class="nx">characters</span><span class="p">))</span> <span class="o">--</span> <span class="nx">f</span><span class="p">(,.</span><span class="o">?!+-*</span><span class="err">ز</span><span class="p">)</span>
<span class="nx">cyr</span><span class="p">[</span><span class="nx">Cyrillic</span><span class="p">]</span><span class="o">--</span><span class="nx">cyr2</span><span class="p">((</span><span class="nx">Circle</span> <span class="nx">shape</span> <span class="err">Начало</span><span class="p">));</span>
<span class="nx">classDef</span> <span class="nx">green</span> <span class="nx">fill</span><span class="o">:</span><span class="err">#</span><span class="mi">9</span><span class="nx">f6</span><span class="p">,</span><span class="nx">stroke</span><span class="o">:</span><span class="err">#</span><span class="mi">333</span><span class="p">,</span><span class="nx">stroke</span><span class="o">-</span><span class="nx">width</span><span class="o">:</span><span class="mi">2</span><span class="nx">px</span><span class="p">;</span>
<span class="nx">classDef</span> <span class="nx">orange</span> <span class="nx">fill</span><span class="o">:</span><span class="err">#</span><span class="nx">f96</span><span class="p">,</span><span class="nx">stroke</span><span class="o">:</span><span class="err">#</span><span class="mi">333</span><span class="p">,</span><span class="nx">stroke</span><span class="o">-</span><span class="nx">width</span><span class="o">:</span><span class="mi">4</span><span class="nx">px</span><span class="p">;</span>
<span class="kr">class</span> <span class="nx">sq</span><span class="p">,</span><span class="nx">e</span> <span class="nx">green</span>
<span class="kr">class</span> <span class="nx">di</span> <span class="nx">orange</span>
</code></pre></div>
<div class="mermaid">graph TB
sq[Square shape] --> ci((Circle shape))
subgraph A subgraph
od>Odd shape]-- Two line<br>edge comment --> ro
di{Diamond with <br/> line break} -.-> ro(Rounded<br>square<br>shape)
di==>ro2(Rounded square shape)
end
%% Notice that no text in shape are added here instead that is appended further down
e --> od3>Really long text with linebreak<br>in an Odd shape]
%% Comments after double percent signs
e((Inner / circle<br>and some odd <br>special characters)) --> f(,.?!+-*ز)
cyr[Cyrillic]-->cyr2((Circle shape Начало));
classDef green fill:#9f6,stroke:#333,stroke-width:2px;
classDef orange fill:#f96,stroke:#333,stroke-width:4px;
class sq,e green
class di orange</div><div class="pilwrap" id="Basic sequence diagram">
<h2>
<a href="#Basic sequence diagram" name="Basic sequence diagram" class="pilcrow">¶</a>
Basic sequence diagram</h2>
</div>
<div class="highlight"><pre><code><span class="o">%%</span> <span class="nx">Sequence</span> <span class="nx">diagram</span> <span class="nx">code</span>
<span class="nx">sequenceDiagram</span>
<span class="nx">Alice</span> <span class="o">-</span> <span class="nx">Bob</span><span class="o">:</span> <span class="nx">Hello</span> <span class="nx">Bob</span><span class="p">,</span> <span class="nx">how</span> <span class="nx">are</span> <span class="nx">you</span><span class="o">?</span>
<span class="nx">Bob</span><span class="o">--</span><span class="nx">John</span><span class="o">:</span> <span class="nx">How</span> <span class="nx">about</span> <span class="nx">you</span> <span class="nx">John</span><span class="o">?</span>
<span class="nx">Bob</span><span class="o">--</span><span class="nx">x</span> <span class="nx">Alice</span><span class="o">:</span> <span class="nx">I</span> <span class="nx">am</span> <span class="nx">good</span> <span class="nx">thanks</span><span class="o">!</span>
<span class="nx">Bob</span><span class="o">-</span><span class="nx">x</span> <span class="nx">John</span><span class="o">:</span> <span class="nx">I</span> <span class="nx">am</span> <span class="nx">good</span> <span class="nx">thanks</span><span class="o">!</span>
<span class="nx">Note</span> <span class="nx">right</span> <span class="nx">of</span> <span class="nx">John</span><span class="o">:</span> <span class="nx">Bob</span> <span class="nx">thinks</span> <span class="nx">a</span> <span class="nx">longlt</span><span class="p">;</span><span class="nx">br</span><span class="o">/</span><span class="kr">long</span> <span class="nx">time</span><span class="p">,</span> <span class="nx">so</span> <span class="nx">longlt</span><span class="p">;</span><span class="nx">br</span><span class="o">/</span><span class="nx">that</span> <span class="nx">the</span> <span class="nx">text</span> <span class="nx">doeslt</span><span class="p">;</span><span class="nx">br</span><span class="o">/</span><span class="nx">not</span> <span class="nx">fit</span> <span class="nx">on</span> <span class="nx">a</span> <span class="nx">row</span><span class="p">.</span>
<span class="nx">Bob</span><span class="o">--</span><span class="nx">Alice</span><span class="o">:</span> <span class="nx">Checking</span> <span class="kd">with</span> <span class="nx">John</span><span class="p">...</span>
<span class="nx">Alice</span><span class="o">-</span><span class="nx">John</span><span class="o">:</span> <span class="nx">Yes</span><span class="p">...</span> <span class="nx">John</span><span class="p">,</span> <span class="nx">how</span> <span class="nx">are</span> <span class="nx">you</span><span class="o">?</span>
</code></pre></div>
<div class="mermaid">sequenceDiagram
Alice->> Bob: Hello Bob, how are you?
Bob-->> John: How about you John?
Bob--x Alice: I am good thanks!
Bob-x John: I am good thanks!
Note right of John: Bob thinks a long<br/>long time, so long<br/>that the text does<br/>not fit on a row.
Bob-->Alice: Checking with John...
Alice->John: Yes... John, how are you?</div><div class="pilwrap" id="Loops, alt and opt">
<h2>
<a href="#Loops, alt and opt" name="Loops, alt and opt" class="pilcrow">¶</a>
Loops, alt and opt</h2>
</div>
<div class="highlight"><pre><code><span class="o">%%</span> <span class="nx">Sequence</span> <span class="nx">diagram</span> <span class="nx">code</span>
<span class="nx">sequenceDiagram</span>
<span class="nx">loop</span> <span class="nx">Daily</span> <span class="nx">query</span>
<span class="nx">Alice</span><span class="o">-</span><span class="nx">gt</span><span class="p">;</span><span class="nx">gt</span><span class="p">;</span><span class="nx">Bob</span><span class="o">:</span> <span class="nx">Hello</span> <span class="nx">Bob</span><span class="p">,</span> <span class="nx">how</span> <span class="nx">are</span> <span class="nx">you</span><span class="o">?</span>
<span class="nx">alt</span> <span class="nx">is</span> <span class="nx">sick</span>
<span class="nx">Bob</span><span class="o">-</span><span class="nx">gt</span><span class="p">;</span><span class="nx">gt</span><span class="p">;</span><span class="nx">Alice</span><span class="o">:</span> <span class="nx">Not</span> <span class="nx">so</span> <span class="nx">good</span> <span class="o">:</span><span class="p">(</span>
<span class="k">else</span> <span class="nx">is</span> <span class="nx">well</span>
<span class="nx">Bob</span><span class="o">-</span><span class="nx">gt</span><span class="p">;</span><span class="nx">gt</span><span class="p">;</span><span class="nx">Alice</span><span class="o">:</span> <span class="nx">Feeling</span> <span class="nx">fresh</span> <span class="nx">like</span> <span class="nx">a</span> <span class="nx">daisy</span>
<span class="nx">end</span>
<span class="nx">opt</span> <span class="nx">Extra</span> <span class="nx">response</span>
<span class="nx">Bob</span><span class="o">-</span><span class="nx">gt</span><span class="p">;</span><span class="nx">gt</span><span class="p">;</span><span class="nx">Alice</span><span class="o">:</span> <span class="nx">Thanks</span> <span class="k">for</span> <span class="nx">asking</span>
<span class="nx">end</span>
<span class="nx">end</span>
</code></pre></div>
<div class="mermaid">sequenceDiagram
loop Daily query
Alice->>Bob: Hello Bob, how are you?
alt is sick
Bob->>Alice: Not so good :(
else is well
Bob->>Alice: Feeling fresh like a daisy
end
opt Extra response
Bob->>Alice: Thanks for asking
end
end</div><div class="pilwrap" id="Message to self in loop">
<h2>
<a href="#Message to self in loop" name="Message to self in loop" class="pilcrow">¶</a>
Message to self in loop</h2>
</div>
<div class="highlight"><pre><code><span class="o">%%</span> <span class="nx">Sequence</span> <span class="nx">diagram</span> <span class="nx">code</span>
<span class="nx">sequenceDiagram</span>
<span class="nx">participant</span> <span class="nx">Alice</span>
<span class="nx">participant</span> <span class="nx">Bob</span>
<span class="nx">Alice</span><span class="o">-</span><span class="nx">John</span><span class="o">:</span> <span class="nx">Hello</span> <span class="nx">John</span><span class="p">,</span> <span class="nx">how</span> <span class="nx">are</span> <span class="nx">you</span><span class="o">?</span>
<span class="nx">loop</span> <span class="nx">Healthcheck</span>
<span class="nx">John</span><span class="o">-</span><span class="nx">John</span><span class="o">:</span> <span class="nx">Fight</span> <span class="nx">against</span> <span class="nx">hypochondria</span>
<span class="nx">end</span>
<span class="nx">Note</span> <span class="nx">right</span> <span class="nx">of</span> <span class="nx">John</span><span class="o">:</span> <span class="nx">Rational</span> <span class="nx">thoughtslt</span><span class="p">;</span><span class="nx">br</span><span class="o">/</span><span class="nx">prevail</span><span class="p">...</span>
<span class="nx">John</span><span class="o">--</span><span class="nx">Alice</span><span class="o">:</span> <span class="nx">Great</span><span class="o">!</span>
<span class="nx">John</span><span class="o">-</span><span class="nx">Bob</span><span class="o">:</span> <span class="nx">How</span> <span class="nx">about</span> <span class="nx">you</span><span class="o">?</span>
<span class="nx">Bob</span><span class="o">--</span><span class="nx">John</span><span class="o">:</span> <span class="nx">Jolly</span> <span class="nx">good</span><span class="o">!</span>
</code></pre></div>
<div class="mermaid">sequenceDiagram
participant Alice
participant Bob
Alice->>John: Hello John, how are you?
loop Healthcheck
John->>John: Fight against hypochondria
end
Note right of John: Rational thoughts<br/>prevail...
John-->>Alice: Great!
John->>Bob: How about you?
Bob-->>John: Jolly good!</div></div>
</div>
</body>
</html>