--- weight: 5 title: "Theme Documentation - mermaid Shortcode" date: 2020-03-03T15:29:41+08:00 lastmod: 2020-03-03T15:29:41+08:00 draft: false author: "Dillon" authorLink: "https://dillonzq.com" description: "The mermaid shortcode supports diagrams in Hugo with Mermaid library." images: ["featured-image.png"] resources: - name: "featured-image" src: "featured-image.png" tags: ["shortcodes"] categories: ["documentation"] hiddenFromHomePage: true --- The `mermaid` shortcode supports diagrams in Hugo with [Mermaid](https://mermaidjs.github.io/) library. **Mermaid** 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. ## 1 Flowchart {#flowchart} Example **flowchart** `mermaid` input: ```markdown {{}} graph LR; A[Hard edge] -->|Link text| B(Round edge) B --> C{Decision} C -->|One| D[Result one] C -->|Two| E[Result two] {{}} ``` The rendered output looks like this: {{< mermaid >}} graph LR; A[Hard edge] -->|Link text| B(Round edge) B --> C{Decision} C -->|One| D[Result one] C -->|Two| E[Result two] {{< /mermaid >}} ## 2 Sequence Diagram {#sequence-diagram} Example **sequence diagram** `mermaid` input: ```markdown {{}} 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
prevail... John-->Alice: Great! John->Bob: How about you? Bob-->John: Jolly good! {{}} ``` The rendered output looks like this: {{< 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
prevail... John-->Alice: Great! John->Bob: How about you? Bob-->John: Jolly good! {{< /mermaid >}} ## 3 GANTT {#gantt} Example **GANTT** `mermaid` input: ```markdown {{}} 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 {{}} ``` The rendered output looks like this: {{< 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 >}} ## 4 Class Diagram {#class-diagram} Example **class diagram** `mermaid` input: ```markdown {{}} 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 {{}} ``` The rendered output looks like this: {{< 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 >}} ## 5 State Diagram {#state-diagram} Example **state diagram** `mermaid` input: ```markdown {{}} stateDiagram [*] --> Still Still --> [*] Still --> Moving Moving --> Still Moving --> Crash Crash --> [*] {{}} ``` The rendered output looks like this: {{< mermaid >}} stateDiagram [*] --> Still Still --> [*] Still --> Moving Moving --> Still Moving --> Crash Crash --> [*] {{< /mermaid >}} ## 6 Git Graph {#git-graph} Example **git graph** `mermaid` input: ```markdown {{}} gitGraph commit commit branch develop checkout develop commit commit checkout main merge develop commit commit {{}} ``` The rendered output looks like this: {{< mermaid >}} gitGraph commit commit branch develop checkout develop commit commit checkout main merge develop commit commit {{< /mermaid >}} ## 7 Pie {#pie} Example **pie** `mermaid` input: ```markdown {{}} pie "Dogs" : 386 "Cats" : 85 "Rats" : 15 {{}} ``` The rendered output looks like this: {{< mermaid >}} pie "Dogs" : 386 "Cats" : 85 "Rats" : 15 {{< /mermaid >}}