Post

[CS]Mermaid

markdown으로 문서 작업을 대부분 하면서 mermaid라는 그래프 툴이 있어 활용하기 편할 것 같아 정리하게 되었다.

flowchart [LR, RL, TD(TB), DT]

graph TD;
    A-->B;
    A-->C;
		subgraph ide1 [one]
		A-->B
		end
		
		id1["break syntax : This is the (text) in the box"]
1
2
3
4
5
6
7
8
graph TD;
    A-->B;
    A-->C;
		subgraph ide1 [one]
		A-->B
		end
		
		id1["break syntax : This is the (text) in the box"]

flowchart

nodesyntaxarrowsyntax
rectangle[text]arrow head–>
round edges(text)open link
stadium-round([text])text on link–|text|–
subroutine[[text]]arrow head–>|text|
databse[(text)]dotted-.->
circle((text))thick==>
asymmetric>text]chain–> b & c
rhombus{text}new typeo–o, x–x
hexagon   
parallelogram[\text\]  
    
Length123
Normal—-—–
Normal with arrow–>—>—->
Thick============
Thick with arrow==>===>====>
Dotted-.--..--…-
Dotted with arrow-.->-..->-…->

SequenceDiagram

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!
1
2
3
4
5
6
7
8
9
10
11
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!

SequenceDiagram

|Type |Description| | :-:| :-: | |-> |Solid line without arrow| |–> |Dotted line without arrow| |-» |Solid line with arrowhead| |–» |Dotted line with arrowhead| |-x |Solid line with a cross at the end| |–x |Dotted line with a cross at the end.| |-) |Solid line with an open arrow at the end (async)| |–) |Dotted line with a open arrow at the end (async)|

Gantt diagram

```mermaid gantt dateFormat YYYY-MM-DD title Adding GANTT diagram functionality to mermaid excludes weekends %% (excludes accepts specific dates in YYYY-MM-DD format, days of the week (“sunday”) or “weekends”, but not the word “weekdays”.)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
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
Functionality added                 :milestone, 2014-01-25, 0d

section Documentation
Describe gantt syntax               :active, a1, after des1, 3d
Add gantt diagram to demo page      :after a1  , 20h
Add another diagram to demo page    :doc1, after a1  , 48h

section Last section
Describe gantt syntax               :after doc1, 3d
Add gantt diagram to demo page      :20h
Add another diagram to demo page    :48h ``` ```bash gantt
dateFormat  YYYY-MM-DD
title       Adding GANTT diagram functionality to mermaid
excludes    weekends
%% (`excludes` accepts specific dates in YYYY-MM-DD format, days of the week ("sunday") or "weekends", but not the word "weekdays".)

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
Functionality added                 :milestone, 2014-01-25, 0d

section Documentation
Describe gantt syntax               :active, a1, after des1, 3d
Add gantt diagram to demo page      :after a1  , 20h
Add another diagram to demo page    :doc1, after a1  , 48h

section Last section
Describe gantt syntax               :after doc1, 3d
Add gantt diagram to demo page      :20h
Add another diagram to demo page    :48h ```

class diagram

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

Git Graph

    gitGraph
       commit
       commit id: "Normal" tag: "v1.0.0"
       branch develop
       commit id: "Reverse" type: REVERSE tag: "RC_1"
       commit
       commit id: "Highlight" type: HIGHLIGHT tag: "8.8.4"
       commit
       checkout main
       commit
       commit
1
2
3
4
5
6
7
8
9
10
11
    gitGraph
       commit
       commit id: "Normal" tag: "v1.0.0"
       branch develop
       commit id: "Reverse" type: REVERSE tag: "RC_1"
       commit
       commit id: "Highlight" type: HIGHLIGHT tag: "8.8.4"
       commit
       checkout main
       commit
       commit

Entity Relationship Diagram - ❗ experimental

erDiagram
    CUSTOMER ||--o{ ORDER : places
    ORDER ||--|{ LINE-ITEM : contains
    CUSTOMER }|..|{ DELIVERY-ADDRESS : uses
1
2
3
4
erDiagram
    CUSTOMER ||--o{ ORDER : places
    ORDER ||--|{ LINE-ITEM : contains
    CUSTOMER }|..|{ DELIVERY-ADDRESS : uses

Pie chart

```mermaid pie title Pets adopted by volunteers “Dogs” : 386 “Cats” : 85 “Rats” : 15

1
2
3
4
5
6
```bash
pie title Pets adopted by volunteers
    "Dogs" : 386
    "Cats" : 85
    "Rats" : 15

User Journey Diagram

journey
    title My working day
    section Go to work
      Make tea: 5: Me
      Go upstairs: 3: Me
      Do work: 1: Me, Cat
    section Go home
      Go downstairs: 5: Me
      Sit down: 5: Me
1
2
3
4
5
6
7
8
9
journey
    title My working day
    section Go to work
      Make tea: 5: Me
      Go upstairs: 3: Me
      Do work: 1: Me, Cat
    section Go home
      Go downstairs: 5: Me
      Sit down: 5: Me

REFERENCES.

[1] : Flowcharts - Basic Syntax | Mermaid

This post is licensed under CC BY 4.0 by the author.