🧜🏻♀️
図をmermaid記法で書く
はじめに
Markdownで使える便利なmermaid記法は、文字で記載し図形を描画できます。
種類
種類は公式サイトに記載されている下記の通りです。
# | Diagram Syntax |
---|---|
1 | Basic flowchart |
2 | Sequence diagrams |
3 | Class diagrams |
4 | State Diagram |
5 | Entity Relationship Diagram |
6 | User Journey |
7 | Gantt |
8 | Pie Chart |
9 | Quadrant Chart |
10 | Requirement Diagram |
11 | Gitgraph (Git) Diagram |
12 | C4 Diagram |
13 | Mindmaps |
14 | Timeline |
15 | Sankey |
16 | XYChart |
17 | Block Diagram |
以下、mermaidで記述した図/併せてmermaidのcodeを記載します。
Basic flowchart - 基本フローチャート
-
基本
code
```mermaid graph TD; A-->B; A-->C; B-->D; C-->D; ```
DBサーバ Primary/Secondary構成切り替わり
-
通常時
code
```mermaid flowchart LR LB[LoadBalancer] LB --> A[Web1] LB --> B[Web2] LB --> C[Web3] LB --> D[Web4] A --> VIP B --> VIP C --> VIP D --> VIP subgraph "DB Cluster" VIP == P ==> DB1[(DB1)] VIP -- S --x DB2[(DB2)] Annotation[P:Primary<br>S:secondary] end ```
-
障害時
code
```mermaid flowchart LR LB[LoadBalancer] LB --> A[Web1] LB --> B[Web2] LB --> C[Web3] LB --> D[Web4] A --> VIP B --> VIP C --> VIP D --> VIP subgraph "DB Cluster" VIP -- S --x DB1[(DB1)] VIP -- P --> DB2[(DB2)] Annotation[P:Primary<br>S:secondary] end classDef classA fill:#f00,stroke:#fff,stroke-width:5px; class DB1 classA; ```
Azure - ApplicationGateway構成
code
```mermaid
flowchart LR
subgraph "Internet"
UserA
end
Internet -- example.com --> FrontIP
subgraph "ApplicationGateway"
FrontIP --> Rule1
FrontIP --> Rule2
subgraph "Rule1"
Lister1[Lister]
Backendport1["Backendport<br/>tcp/80"]
end
subgraph "BackEndPool1"
az-wb-p01
az-wb-p02
end
Rule1 --> az-wb-p01
Rule1 --> az-wb-p02
end
```
家系図
家系図をmermaidで書いてみたサイトがありました。なかなかおもしろい。
参考にしたサイト フクロモモンガ家系図.md
一世代のみの簡易な家系図
-
例)サザエさん家系図
二世代の例として、サザエさん一家をmermaid形式で記述
Sequence diagrams - シーケンス図
よくある清算フロー
code
```mermaid
sequenceDiagram
autonumber
actor user as 社員
participant check1 as チェック1<br/>リーダー/マネージャー
participant check2 as チェック2<br/>部門長
participant soumu as 総務
user ->>+ check1: 事前申請
check1 ->>+ check2: 承認
check2 ->>- user: 承認済み
user ->>+ check1: 支払い申請
Note right of user: 領収書添付
check1 ->>+ check2: 承認
check2 ->>+ soumu: 承認
soumu ->>+ user: 支払い
```
Discussion