フローチャート
flowchart TD
A[開始] --≷ B{条件?}
B -- はい --≷ C[処理1]
B -- いいえ --≷ D[処理2]
C --≷ E[終了]
D --≷ E[終了]
Mermaidは、テキスト記法で図表を定義し、ブラウザでSVGとして描画するツールです。フローチャート、シーケンス図、クラス図、ER図、ガント、マインドマップ、タイムライン、ジャーニーなど多数対応。コードレビューしやすく、差分管理や自動生成と相性が良いのが強みです。
flowchart TD / sequenceDiagram / classDiagram など。A --≷ B)。[]や()で形状を変えられます。.mmd 拡張子にするか、Markdown内のコードブロックに記述。mermaid.min.js を読み込み、mermaid.initialize() 後に mermaid.render() で描画します。<script src="https://cdn.jsdelivr.net/npm/mermaid@10/dist/mermaid.min.js"></script>
<script>
mermaid.initialize({ startOnLoad: false, theme: 'default', securityLevel:'strict' });
// 文字列から描画
async function draw(id, code){
const { svg } = await mermaid.render(id, code);
document.querySelector('#preview').innerHTML = svg;
}
</script>
A[四角] --≷ B(丸)
B --≷ C{ひし形}
C --≷ D[[スタジアム]]
D --≷ E[(円柱)]
flowchart LR
A[開始]:::start --≷ B[処理]
classDef start fill:#2ecc71,stroke:#1e8449,color:#fff;
linkStyle 0 stroke:#2ecc71,stroke-width:2px;
mmdc(mermaid-cli)を使い、SVG/PNGをビルド成果物として出力。mermaid.initialize({ themeVariables: { primaryColor: '#...' } })include 代替としてビルド段で結合。title/desc付与、コントラスト配慮。Mermaidの更新は比較的活発です。新しい図種・テーマ・セキュリティ設定の変更が行われることがあります。運用前に リリースノート と ドキュメント を確認し、バージョンを固定(@10 など)するのがおすすめです。
| ツール | 特徴 | 利点 | 注意点 |
|---|---|---|---|
| Mermaid | JSでSVG描画、Markdownと相性◎ | 導入が容易、図種が豊富 | 巨大図のパフォーマンス、細密レイアウトは工夫 |
| PlantUML | サーバ/Java実行で画像生成 | 表現力が高い、UMLが充実 | 実行環境が必要、SVGの最適化は別途 |
| Graphviz (DOT) | レイアウト最適化が強力 | 階層・有向グラフが美しい | 学習コスト、Web直描画は工夫 |
| D2 | YAML風で読みやすい | 自動レイアウト・モダン | 運用実績/図種は要確認 |
flowchart/sequenceDiagram/…)。securityLevel:'strict' 推奨)。\" など。mmdc による静的書き出し。TD/LR/BT/RLclassDef / classflowchart TD
A[開始] --≷ B{条件?}
B -- はい --≷ C[処理1]
B -- いいえ --≷ D[処理2]
C --≷ E[終了]
D --≷ E[終了]
sequenceDiagram
participant U as User
participant W as Web
participant S as Server
U->>W: ページ要求
W->>S: API /items
S--≷>W: JSON
W--≷>U: HTMLレンダリング
classDiagram
class User {
+id: int
+name: string
+login() bool
}
class Article {
+id: int
+title: string
+authorId: int
}
User <|-- Admin
User "1" --o "*" Article : writes
stateDiagram-v2
[*] --≷ Draft
Draft --≷ Review: 送信
Review --≷ Approved: 承認
Review --≷ Draft: 差戻し
Approved --≷ [*]
erDiagram
USERS ||--o{ ARTICLES : writes
USERS {
int id PK
string name
}
ARTICLES {
int id PK
string title
int author_id FK
}
gantt
title リリース計画
dateFormat YYYY-MM-DD
section 企画
要件定義 :done, des1, 2025-08-01, 2025-08-07
section 開発
実装 :active, des2, 2025-08-08, 10d
テスト : des3, after des2, 5d
section 提供
リリース : des4, after des3, 2d
pie title ブラウザシェア
"Chrome" : 63
"Safari" : 20
"Firefox" : 4
"その他" : 13
mindmap
root((Mermaid))
図表
フロー
シーケンス
ER
利点
テキストで管理
レビューしやすい
差分が見える
timeline
title プロジェクト里程標
2025-08-01 : 計画開始
2025-08-10 : 実装開始
2025-08-20 : テスト
2025-08-30 : リリース
journey
title ECサイト購入体験
section 訪問
検索から来訪: 3: User
section 検討
カート投入: 2: User
レビュー確認: 3: User
section 購入
決済: 2: User
完了メール受信: 1: User