hugo-theme-relearn/exampleSite/content/shortcodes/mermaid.en.md

209 lines
5.6 KiB
Markdown
Raw Normal View History

2017-08-20 15:10:29 +00:00
---
title : "Mermaid"
description : "Generation of diagram and flowchart from text in a similar manner as markdown"
---
[Mermaid](https://mermaidjs.github.io/) is a library helping you to generate diagram and flowcharts from text, in a similar manner as Markdown.
Just insert your mermaid code in the `mermaid` shortcode and that's it.
2020-09-20 12:37:19 +00:00
## Examples
### Flowchart example
2019-02-18 11:47:01 +00:00
{{</*mermaid align="left"*/>}}
graph LR;
A[Hard edge] -->|Link text| B(Round edge)
2020-09-20 12:37:19 +00:00
B --> C{<strong>Decision</strong>}
C -->|One| D[Result one]
C -->|Two| E[Result two]
2017-08-20 15:10:29 +00:00
{{</* /mermaid */>}}
renders as
{{<mermaid align="left">}}
graph LR;
A[Hard edge] -->|Link text| B(Round edge)
2020-09-20 12:37:19 +00:00
B --> C{<strong>Decision</strong>}
2017-08-20 15:10:29 +00:00
C -->|One| D[Result one]
C -->|Two| E[Result two]
{{</mermaid>}}
2017-08-20 15:10:29 +00:00
or you can use this alternative syntax:
```mermaid
graph LR;
A[Hard edge] -->|Link text| B(Round edge)
B --> C{Decision}
C -->|One| D[Result one]
C -->|Two| E[Result two]
```
renders as
```mermaid
graph LR;
A[Hard edge] -->|Link text| B(Round edge)
B --> C{Decision}
C -->|One| D[Result one]
C -->|Two| E[Result two]
```
2017-08-20 15:10:29 +00:00
## Sequence example
{{</* 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!
{{</* /mermaid */>}}
2017-08-20 15:10:29 +00:00
renders as
{{<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!
{{</mermaid>}}
2019-02-18 11:47:01 +00:00
2020-09-20 12:37:19 +00:00
### GANTT Example
2017-08-20 15:10:29 +00:00
{{</* mermaid */>}}
gantt
dateFormat YYYY-MM-DD
title Adding GANTT diagram functionality to mermaid
section A section
Completed task :done, des1, 2014-01-06,2014-01-08
Active task :active, des2, 2014-01-09, 3d
Future task : des3, after des2, 5d
Future task2 : des4, after des3, 5d
section Critical tasks
Completed task in the critical line :crit, done, 2014-01-06,24h
Implement parser and jison :crit, done, after des1, 2d
Create tests for parser :crit, active, 3d
Future task in critical line :crit, 5d
Create tests for renderer :2d
Add to mermaid :1d
{{</* /mermaid */>}}
2017-08-20 15:10:29 +00:00
2019-02-18 11:47:01 +00:00
renders as
2017-08-20 15:10:29 +00:00
{{<mermaid>}}
gantt
dateFormat YYYY-MM-DD
title Adding GANTT diagram functionality to mermaid
section A section
Completed task :done, des1, 2014-01-06,2014-01-08
Active task :active, des2, 2014-01-09, 3d
Future task : des3, after des2, 5d
Future task2 : des4, after des3, 5d
section Critical tasks
Completed task in the critical line :crit, done, 2014-01-06,24h
Implement parser and jison :crit, done, after des1, 2d
Create tests for parser :crit, active, 3d
Future task in critical line :crit, 5d
Create tests for renderer :2d
Add to mermaid :1d
{{</mermaid>}}
2019-02-18 11:47:01 +00:00
### Class example
{{</* mermaid */>}}
classDiagram
Class01 <|-- AveryLongClass : Cool
Class03 *-- Class04
Class05 o-- Class06
Class07 .. Class08
Class09 --> C2 : Where am i?
Class09 --* C3
Class09 --|> Class07
Class07 : equals()
Class07 : Object[] elementData
Class01 : size()
Class01 : int chimp
Class01 : int gorilla
Class08 <--> C2: Cool label
{{</* /mermaid */>}}
2019-02-18 11:47:01 +00:00
renders as
{{<mermaid>}}
2019-02-18 11:47:01 +00:00
classDiagram
Class01 <|-- AveryLongClass : Cool
Class03 *-- Class04
Class05 o-- Class06
Class07 .. Class08
Class09 --> C2 : Where am i?
Class09 --* C3
Class09 --|> Class07
Class07 : equals()
Class07 : Object[] elementData
Class01 : size()
Class01 : int chimp
Class01 : int gorilla
Class08 <--> C2: Cool label
{{</mermaid>}}
### State Diagrams
{{</* mermaid */>}}
stateDiagram-v2
open: Open Door
closed: Closed Door
locked: Locked Door
open --> closed: Close
closed --> locked: Lock
locked --> closed: Unlock
closed --> open: Open
{{</* /mermaid */>}}
2019-02-18 11:47:01 +00:00
renders as
2017-08-20 15:10:29 +00:00
{{<mermaid>}}
stateDiagram-v2
open: Open Door
closed: Closed Door
locked: Locked Door
open --> closed: Close
closed --> locked: Lock
locked --> closed: Unlock
closed --> open: Open
{{</mermaid>}}
2020-09-20 12:37:19 +00:00
## Configuration
2021-07-02 20:05:35 +00:00
Mermaid is configured with default settings. You can customize mermaids default settings for all of your files thru a JSON object in your `config.toml` or override these settings sidewise thru your pages frontmatter.
2020-09-20 12:37:19 +00:00
This JSON object is forwarded into mermaids `mermaid.initialize()` function.
See [mermaid documentation](http://mermaid-js.github.io/mermaid/getting-started/Setup.html#mermaidapi-configuration-defaults) for all allowed settings.
2021-07-02 20:05:35 +00:00
### Example
2020-09-20 12:37:19 +00:00
````toml
[params]
2021-07-02 20:05:35 +00:00
mermaidInitialize = "{ \"theme\": \"dark\" }"
2020-09-20 12:37:19 +00:00
````
or pages frontmatter
````toml
+++
2021-07-02 20:05:35 +00:00
mermaidInitialize = "{ \"theme\": \"dark\" }"
2020-09-20 12:37:19 +00:00
+++
````