【mermaid】markdownのドキュメントに図を描く方法
markdownファイル内にテキストで図を描く方法についての記事です。
図はmermaidという記法を使って作成します。
HTML形式で出力もできて、結構便利で私は仕事で使ったりもしています。
この記事でわかること
mermaidの概要とメリットと使い方(例)が分かります。
-
mermaidの概要
- markdownファイル内にテキストで図を描くための記法
- シンプルな記法で様々な図が描ける
- 色々な面で使い勝手が良い
- VSCodeでHTML形式で出力できる
-
各図の書き方の基礎
-
色の変更方法 ※色以外の表示スタイルも変えられる
-
VSCodeでmermaidを使う場合の具体的な方法
mermaidとは?
mermaidは、テキストで図や表を描画するためのツールです。 以下のような特徴があります。
-
シンプルな記法
- mermaidの記法はシンプルで直感的
- 専門的なグラフィックススキルがなくても誰でも使い始められる
-
プレーンテキスト形式
- 通常のテキストエディタで編集できるため、互換性が高い
- バージョン管理がしやすい
-
様々な種類の図が描ける
- フローチャート、シーケンス図、ガントチャート、ER図、などなど
- 色を変えたいなどの場合そのコマンドを記入する
-
自動レイアウト
- 自動的に図のレイアウトを調整してくれる
- 手動でレイアウトを調整する手間が省け、表現したい内容に集中できる
-
無料
基礎的な書き方は?
シンプルな図とその元となるテキストを書いていきます。
これらのほかにもカスタマージャーニーズをかけた気がします。
フローチャート
入れ子になっていても大丈夫です。
また、graph
の後をLR
やTB
にすることで、フローの向きを変えることもできます。
graph TD;
A[開始] --> B{条件};
B -->|条件A true| C[アクションA];
B -->|条件A false| D[アクションB];
C --> E[終了];
D --> E;
graph TD;
A[開始] --> B{条件};
B -->|条件A true| C[アクションA];
B -->|条件A false| D[アクションB];
C --> E[終了];
D --> E;
graph TD;
A[開始] --> B[アクションA];
B --> C;
B --> D;
D --> E[終了];
subgraph D[アクションC]
アクションC-1--> アクションC-2;
end
subgraph C[アクションB]
アクションB-1--> アクションB-2;
end
アクションB-2--> アクションC-1;
graph TD;
A[開始] --> B[アクションA];
B --> C;
B --> D;
D --> E[終了];
subgraph D[アクションC]
アクションC-1--> アクションC-2;
end
subgraph C[アクションB]
アクションB-1--> アクションB-2;
end
アクションB-2--> アクションC-1;
シーケンス図
note
でコメントを記入できるほか、矢印の形や、実行状態かどうかなども表現できます。
sequenceDiagram
actor 人
participant クライアント
participant サーバー
人 ->>+ クライアント: リクエスト送信
クライアント ->>+ サーバー: リクエスト処理
note right of サーバー: hoge
サーバー --)- クライアント: レスポンス送信
クライアント --)- 人: レスポンス受信
sequenceDiagram
actor 人
participant クライアント
participant サーバー
人 ->>+ クライアント: リクエスト送信
クライアント ->>+ サーバー: リクエスト処理
note right of サーバー: hoge
サーバー --)- クライアント: レスポンス送信
クライアント --)- 人: レスポンス受信
ガントチャート
gantt
title ガントチャートの例
dateFormat YYYY-MM-DD
section 作業1
作業1のタスク1 :done, 2024-04-10, 2024-04-15
作業1のタスク2 :done, 2024-04-15, 2024-04-20
section 作業2
作業2のタスク1 :done, 2024-04-18, 2024-04-22
作業2のタスク2 :done, 2024-04-23, 2024-04-25
gantt
title ガントチャートの例
dateFormat YYYY-MM-DD
section 作業1
作業1のタスク1 :done, 2024-04-10, 2024-04-15
作業1のタスク2 :done, 2024-04-15, 2024-04-20
section 作業2
作業2のタスク1 :done, 2024-04-18, 2024-04-22
作業2のタスク2 :done, 2024-04-23, 2024-04-25
ER図
erDiagram
CUSTOMER ||--o{ ORDER : has
ORDER ||--|{ LINE-ITEM : contains
CUSTOMER {
string name
string address
string phone_number
}
ORDER {
string number
date date
}
LINE-ITEM {
number quantity
decimal price
}
erDiagram
CUSTOMER ||--o{ ORDER : has
ORDER ||--|{ LINE-ITEM : contains
CUSTOMER {
string name
string address
string phone_number
}
ORDER {
string number
date date
}
LINE-ITEM {
number quantity
decimal price
}
色とか変えられる? → Yes
こんな感じでテーマの色や図形の色を変えることができます。
もちろん
もっと詳しく知りたい方は、junkawaさんのページをはじめ様々なサイトで紹介されてますので、色々見てみてください~
変更前
graph LR;
A[開始] --> B{条件};
B -->|条件A true| C[アクションA];
B -->|条件A false| D[アクションB];
C --> E[終了];
D --> E;
graph LR;
A[開始] --> B{条件};
B -->|条件A true| C[アクションA];
B -->|条件A false| D[アクションB];
C --> E[終了];
D --> E;
変更後
%%{init: {'theme':'neutral'}}%%
graph LR;
classDef c1 fill:#eab700,fill-opacity:0.4
classDef c2 fill:#eab700,fill-opacity:1
A[開始] --> B{条件}:::c1;
B -->|条件A true| C[アクションA];
B -->|条件A false| D[アクションB]:::c2;
C --> E[終了]:::c1;
D --> E;
%%{init: {'theme':'neutral'}}%%
graph LR;
classDef c1 fill:#eab700,fill-opacity:0.4
classDef c2 fill:#eab700,fill-opacity:1
A[開始] --> B{条件}:::c1;
B -->|条件A true| C[アクションA];
B -->|条件A false| D[アクションB]:::c2;
C --> E[終了]:::c1;
D --> E;
VSCodeでmermaidを使う場合の具体的な方法
VSCodeでMarkdownをHTML化する方法に記載の初期設定と操作方法で、プレビューと出力ができると思います。
まとめ
markdownファイル内にテキストで図を描くためのmermaidという記法について紹介しました。
結構便利で私は仕事で使ったりもしているので、是非使ってみてください~