Mermaid記法の書き方(Markdownテキストでチャート・グラフが描ける)

NotePM 公式ヘルプによる Mermaid 記法の解説記事。テキストだけでフローチャート・シーケンス図・ガントチャート・クラス図・Gitグラフ・ER図・ユーザージャーニー図・ステータス図・円グラフ・要件図の10種類を描く構文を網羅。

概要

Mermaid はテキストでグラフやチャートを描ける記法。テキストベースのため検索が容易で修正も手軽。NotePM のコードブロックで mermaid を指定して使う。

対応ダイアグラム一覧(本記事収録分)

フローチャート(graph TD

graph TD;
    A-->B;
    A-->C;
    B-->D;
    C-->D;

--> で要素同士を結ぶ。TD(Top-Down)方向。

シーケンス図(sequenceDiagram

sequenceDiagram
    participant 太郎
    participant 花子
    太郎->>花子: こんにちは
    loop Healthcheck
        花子->>花子: Fight against hypochondria
    end
    花子-->>太郎: 良いですよ!
  • ->> : 実線矢印
  • -->> : 破線矢印
  • loop ... end : ループブロック
  • Note right of X: : 注釈

ガントチャート(gantt

gantt
dateFormat  YYYY-MM-DD
title ガントチャートのサンプル
section A section
完了したタスク   :done,   des1, 2022-07-06,2022-07-08
アクティブなタスク :active, des2, 2022-07-09, 3d
未来のタスク     :        des3, after des2, 5d

タスクに done / active のステータスを付与できる。after des2 で依存関係を表現。

クラス図(classDiagram

PlantUML でも使われる図。関係性を示す矢印記号が多数ある(<|--*--o---->--|> 等)。

Gitグラフ(gitGraph

gitGraph
    commit
    commit
    branch develop
    commit
    checkout main
    commit

GitHub などで見られる Git ツリーを表現。commitbranchcheckout の3コマンドで構成。

ER図(erDiagram

erDiagram
    CUSTOMER ||--o{ ORDER : places
    ORDER ||--|{ LINE-ITEM : contains

データベースのスキーマ表現。||--o{(1対多)など関係性記号でエンティティ間の多重度を表現。

ユーザージャーニー図(journey

journey
    title My working day
    section Go to work
      Make tea: 5: Me
      Go upstairs: 3: Me

カスタマージャーニーのユーザー活動を可視化。スコア(1〜5)とアクター名を付与できる。

ステータス図(stateDiagram-v2

stateDiagram-v2
    state if_state <<choice>>
    [*] --> IsPositive
    IsPositive --> if_state
    if_state --> False: if n < 0
    if_state --> True : if n >= 0

フローチャートよりシステム的な状態遷移の表現。<<choice>> で分岐ノードを定義。

円グラフ(pie

pie showData
    title Key elements in Product X
    "Calcium" : 42.96
    "Potassium" : 50.05

showData オプションで実数値をラベルに表示できる。

要件図(requirementDiagram

SysML で使用される図。要件同士・モデル要素との関係を表現。satisfies 等の関係タイプを使う。

関連ページ