コンテンツにスキップ

Mermaid カタログ

konoma は Mermaid の図をすべて自分で解析し、配置し、描いています。ブラウザも Node も外部レンダラも要りません。Markdown の ```mermaid フェンスは 端末の中で本物の絵になり、単体の .mmd ファイルは全画面で開きます。

konoma で samples/mermaid.md を開いた画面。シーケンス図と ZenUML 図が実画像としてインライン描画されている

以下の絵はすべてそのレンダラの出力です。元は samples/mermaid.ja.md のフェンスで、設定は出荷時の既定(ui.mermaid_theme = "dark"ui.mermaid_curve = "basis")。 背景は透過です — 端末では自分の背景の上に乗ります。ここでは暗い板の上に置いています。

既定の見え方は mermaid そのものです。何も指定しなければ何も変わりません。 1 行足すと、flowchart と状態図が konoma 自身の直交ルーティングと配色に切り替わります:

[ui]
mermaid_routing = "konoma-orthogonal"

このモードでは辺は直角にしか曲がらず(角も丸めません)、判断のひし形は面取り矩形に なって辺が平らな面に着地し、ランクを貫く直進辺は 1 本のまっすぐなレーンに整列します。 配色も konoma 自身のものになります — 暗いノード塗り・破線のサブグラフ枠・classDef / style の色をノードの枠と辺とラベルへ一貫して適用(したがって ui.mermaid_theme は このモードでは効きません)。

効くのは flowchartstateDiagram-v2 だけです。この 2 種は下で 2 枚ずつ (konoma-orthogonal を先に、次に既定の splines)、残り 21 種は 1 枚ずつ掲載しています =ルーティングはそもそも届きません。

Mermaid 関連の設定は設定リファレンス、 ズーム・パン・全画面のキーはプレビューを使い倒すを参照してください。

図の描かれ方を変える [ui] の設定は 3 つあり、さらに図が自分のソースの中から そのうち 1 つを上書きできます。この節の絵はどれも、このページの下にあるサンプルを 1 つだけ動かして描き直したものです。違って見えるものは、キャプションが示すものだけが 原因です。

どの図にも共通する決まりがいくつかあります。mermaid_curve を読むのは flowchart 自身の辺だけです。mermaid_curvemermaid_themekonoma-orthogonal では どちらも無効です — そのモードに曲線は無く直角の区間だけがあり、配色も専用のものを 持っているためです。テーマの背景は常に透過なので、図は端末の背景に馴染みます。

3 つの中でいちばん素直な図です。角丸・判定のひし形・2 本の分岐・合流だけででき ていて、基本の形がいちばんよく読めます。

同じ図を konoma 自身の Mermaid レンダラで mermaid_routing = "konoma-orthogonal" として描いたもの
konoma-orthogonal

konoma 独自のルータ。辺は 90° でしか曲がらず枠へは必ず垂直に入射し、判定ノードは面取り矩形になります。配色も konoma 独自の設計配色に切り替わります。

同じ図を konoma 自身の Mermaid レンダラで mermaid_routing = "splines" として描いたもの
splines既定

出荷時の既定。従来の mermaid のレイアウトで、辺は mermaid_curve が指す曲線に従います。

flowchart はヘッダの語で向きを指定します(flowchart LR / TB / RL / BT)。 配線の規則はどの向きでも同じです — RLBT はそれぞれ LRTB を流れの 軸に沿って鏡映しにしたもので、分岐がどちら側に出るかは変わりません。 konoma-orthogonal の設計参照 2b2c が同じグラフの LR 版と TB 版なのは、 まさにそのためです。

同じ図を konoma 自身の Mermaid レンダラで direction = "LR" として描いたもの
LR既定
同じ図を konoma 自身の Mermaid レンダラで direction = "TB" として描いたもの
TB
同じ図を konoma 自身の Mermaid レンダラで direction = "RL" として描いたもの
RL
同じ図を konoma 自身の Mermaid レンダラで direction = "BT" として描いたもの
BT
同じ図を konoma 自身の Mermaid レンダラで mermaid_curve = "basis" として描いたもの
basis既定
同じ図を konoma 自身の Mermaid レンダラで mermaid_curve = "linear" として描いたもの
linear
同じ図を konoma 自身の Mermaid レンダラで mermaid_curve = "step" として描いたもの
step
同じ図を konoma 自身の Mermaid レンダラで mermaid_curve = "stepBefore" として描いたもの
stepBefore
同じ図を konoma 自身の Mermaid レンダラで mermaid_curve = "stepAfter" として描いたもの
stepAfter
同じ図を konoma 自身の Mermaid レンダラで mermaid_curve = "natural" として描いたもの
natural
同じ図を konoma 自身の Mermaid レンダラで mermaid_curve = "cardinal" として描いたもの
cardinal
同じ図を konoma 自身の Mermaid レンダラで mermaid_curve = "catmullRom" として描いたもの
catmullRom
同じ図を konoma 自身の Mermaid レンダラで mermaid_curve = "monotoneX" として描いたもの
monotoneX
同じ図を konoma 自身の Mermaid レンダラで mermaid_curve = "monotoneY" として描いたもの
monotoneY
同じ図を konoma 自身の Mermaid レンダラで mermaid_curve = "bumpX" として描いたもの
bumpX
同じ図を konoma 自身の Mermaid レンダラで mermaid_curve = "bumpY" として描いたもの
bumpY
同じ図を konoma 自身の Mermaid レンダラで mermaid_curve = "rounded" として描いたもの
rounded

設定を既定の basis のままにしても、図の側から別の曲線を要求できます。弱い順に、 この設定 < 図側の %%{init: {"flowchart": {"curve": "..."}}}%% ディレクティブ < 特定の辺だけを指す linkStyle <n> interpolate <curve>。どちらも konoma-orthogonal では無効です。

同じ図を konoma 自身の Mermaid レンダラで override = "init-step" として描いたもの
%%{init: {"flowchart": {"curve": "step"}}}%%
同じ図を konoma 自身の Mermaid レンダラで override = "linkstyle-stepAfter" として描いたもの
linkStyle 1 interpolate stepAfter
同じ図を konoma 自身の Mermaid レンダラで mermaid_theme = "dark" として描いたもの
暗い端末
同じ図を konoma 自身の Mermaid レンダラで mermaid_theme = "dark" として描いたもの
明るい端末
dark既定
同じ図を konoma 自身の Mermaid レンダラで mermaid_theme = "light" として描いたもの
暗い端末
同じ図を konoma 自身の Mermaid レンダラで mermaid_theme = "light" として描いたもの
明るい端末
light
同じ図を konoma 自身の Mermaid レンダラで mermaid_theme = "classic" として描いたもの
暗い端末
同じ図を konoma 自身の Mermaid レンダラで mermaid_theme = "classic" として描いたもの
明るい端末
classic
同じ図を konoma 自身の Mermaid レンダラで mermaid_theme = "forest" として描いたもの
暗い端末
同じ図を konoma 自身の Mermaid レンダラで mermaid_theme = "forest" として描いたもの
明るい端末
forest
同じ図を konoma 自身の Mermaid レンダラで mermaid_theme = "neutral" として描いたもの
暗い端末
同じ図を konoma 自身の Mermaid レンダラで mermaid_theme = "neutral" として描いたもの
明るい端末
neutral

classDef / ::: / style で図が自分の色を指定しています。テーマと作者が選んだ色の 関係が見える図です — テーマは図が塗らなかった部分を塗り、作者の色はその上に残ります。

同じ図を konoma 自身の Mermaid レンダラで mermaid_routing = "konoma-orthogonal" として描いたもの
konoma-orthogonal
同じ図を konoma 自身の Mermaid レンダラで mermaid_routing = "splines" として描いたもの
splines既定
同じ図を konoma 自身の Mermaid レンダラで mermaid_curve = "basis" として描いたもの
basis既定
同じ図を konoma 自身の Mermaid レンダラで mermaid_curve = "linear" として描いたもの
linear
同じ図を konoma 自身の Mermaid レンダラで mermaid_curve = "step" として描いたもの
step
同じ図を konoma 自身の Mermaid レンダラで mermaid_curve = "stepBefore" として描いたもの
stepBefore
同じ図を konoma 自身の Mermaid レンダラで mermaid_curve = "stepAfter" として描いたもの
stepAfter
同じ図を konoma 自身の Mermaid レンダラで mermaid_curve = "natural" として描いたもの
natural
同じ図を konoma 自身の Mermaid レンダラで mermaid_curve = "cardinal" として描いたもの
cardinal
同じ図を konoma 自身の Mermaid レンダラで mermaid_curve = "catmullRom" として描いたもの
catmullRom
同じ図を konoma 自身の Mermaid レンダラで mermaid_curve = "monotoneX" として描いたもの
monotoneX
同じ図を konoma 自身の Mermaid レンダラで mermaid_curve = "monotoneY" として描いたもの
monotoneY
同じ図を konoma 自身の Mermaid レンダラで mermaid_curve = "bumpX" として描いたもの
bumpX
同じ図を konoma 自身の Mermaid レンダラで mermaid_curve = "bumpY" として描いたもの
bumpY
同じ図を konoma 自身の Mermaid レンダラで mermaid_curve = "rounded" として描いたもの
rounded
同じ図を konoma 自身の Mermaid レンダラで mermaid_theme = "dark" として描いたもの
暗い端末
同じ図を konoma 自身の Mermaid レンダラで mermaid_theme = "dark" として描いたもの
明るい端末
dark既定
同じ図を konoma 自身の Mermaid レンダラで mermaid_theme = "light" として描いたもの
暗い端末
同じ図を konoma 自身の Mermaid レンダラで mermaid_theme = "light" として描いたもの
明るい端末
light
同じ図を konoma 自身の Mermaid レンダラで mermaid_theme = "classic" として描いたもの
暗い端末
同じ図を konoma 自身の Mermaid レンダラで mermaid_theme = "classic" として描いたもの
明るい端末
classic
同じ図を konoma 自身の Mermaid レンダラで mermaid_theme = "forest" として描いたもの
暗い端末
同じ図を konoma 自身の Mermaid レンダラで mermaid_theme = "forest" として描いたもの
明るい端末
forest
同じ図を konoma 自身の Mermaid レンダラで mermaid_theme = "neutral" として描いたもの
暗い端末
同じ図を konoma 自身の Mermaid レンダラで mermaid_theme = "neutral" として描いたもの
明るい端末
neutral

中身の多い図で、下の曲線の一覧が 1 列なのはこの図だからです。辺がいくつものランクを またいで伸びており、13 種の曲線が実際に差を見せるのはこうした長い辺の上です。

同じ図を konoma 自身の Mermaid レンダラで mermaid_routing = "konoma-orthogonal" として描いたもの
konoma-orthogonal
同じ図を konoma 自身の Mermaid レンダラで mermaid_routing = "splines" として描いたもの
splines既定
同じ図を konoma 自身の Mermaid レンダラで mermaid_curve = "basis" として描いたもの
basis既定
同じ図を konoma 自身の Mermaid レンダラで mermaid_curve = "linear" として描いたもの
linear
同じ図を konoma 自身の Mermaid レンダラで mermaid_curve = "step" として描いたもの
step
同じ図を konoma 自身の Mermaid レンダラで mermaid_curve = "stepBefore" として描いたもの
stepBefore
同じ図を konoma 自身の Mermaid レンダラで mermaid_curve = "stepAfter" として描いたもの
stepAfter
同じ図を konoma 自身の Mermaid レンダラで mermaid_curve = "natural" として描いたもの
natural
同じ図を konoma 自身の Mermaid レンダラで mermaid_curve = "cardinal" として描いたもの
cardinal
同じ図を konoma 自身の Mermaid レンダラで mermaid_curve = "catmullRom" として描いたもの
catmullRom
同じ図を konoma 自身の Mermaid レンダラで mermaid_curve = "monotoneX" として描いたもの
monotoneX
同じ図を konoma 自身の Mermaid レンダラで mermaid_curve = "monotoneY" として描いたもの
monotoneY
同じ図を konoma 自身の Mermaid レンダラで mermaid_curve = "bumpX" として描いたもの
bumpX
同じ図を konoma 自身の Mermaid レンダラで mermaid_curve = "bumpY" として描いたもの
bumpY
同じ図を konoma 自身の Mermaid レンダラで mermaid_curve = "rounded" として描いたもの
rounded
同じ図を konoma 自身の Mermaid レンダラで mermaid_theme = "dark" として描いたもの
暗い端末
同じ図を konoma 自身の Mermaid レンダラで mermaid_theme = "dark" として描いたもの
明るい端末
dark既定
同じ図を konoma 自身の Mermaid レンダラで mermaid_theme = "light" として描いたもの
暗い端末
同じ図を konoma 自身の Mermaid レンダラで mermaid_theme = "light" として描いたもの
明るい端末
light
同じ図を konoma 自身の Mermaid レンダラで mermaid_theme = "classic" として描いたもの
暗い端末
同じ図を konoma 自身の Mermaid レンダラで mermaid_theme = "classic" として描いたもの
明るい端末
classic
同じ図を konoma 自身の Mermaid レンダラで mermaid_theme = "forest" として描いたもの
暗い端末
同じ図を konoma 自身の Mermaid レンダラで mermaid_theme = "forest" として描いたもの
明るい端末
forest
同じ図を konoma 自身の Mermaid レンダラで mermaid_theme = "neutral" として描いたもの
暗い端末
同じ図を konoma 自身の Mermaid レンダラで mermaid_theme = "neutral" として描いたもの
明るい端末
neutral

mermaid_routing は状態図にも効きます(2 枚の比較は下の stateDiagram-v2 にあります)が、mermaid_curve は届きません。残るのは、テーマごとの状態機械の配色と、並べる向きです。

同じ図を konoma 自身の Mermaid レンダラで mermaid_theme = "dark" として描いたもの
暗い端末
同じ図を konoma 自身の Mermaid レンダラで mermaid_theme = "dark" として描いたもの
明るい端末
dark既定
同じ図を konoma 自身の Mermaid レンダラで mermaid_theme = "light" として描いたもの
暗い端末
同じ図を konoma 自身の Mermaid レンダラで mermaid_theme = "light" として描いたもの
明るい端末
light
同じ図を konoma 自身の Mermaid レンダラで mermaid_theme = "classic" として描いたもの
暗い端末
同じ図を konoma 自身の Mermaid レンダラで mermaid_theme = "classic" として描いたもの
明るい端末
classic
同じ図を konoma 自身の Mermaid レンダラで mermaid_theme = "forest" として描いたもの
暗い端末
同じ図を konoma 自身の Mermaid レンダラで mermaid_theme = "forest" として描いたもの
明るい端末
forest
同じ図を konoma 自身の Mermaid レンダラで mermaid_theme = "neutral" として描いたもの
暗い端末
同じ図を konoma 自身の Mermaid レンダラで mermaid_theme = "neutral" として描いたもの
明るい端末
neutral

状態図は本文中の direction 行で向きを指定し、書かなければ上から下です。配線の規則は どちらでも同じです — konoma-orthogonal の設計参照 2b2c が同じグラフの LR 版と TB 版なのは、まさにそのためです。

同じ図を konoma 自身の Mermaid レンダラで direction = "TB" として描いたもの
TB既定
同じ図を konoma 自身の Mermaid レンダラで direction = "LR" として描いたもの
LR

いちばん使われる図種で、実際に見かける mermaid の 4 分の 3 はこれです。向きの指定 (LR)、角丸とひし形の形の違い、矢印に乗るラベルに注目してください。

konoma 自身の Mermaid レンダラが描いた flowchart 図 (routing = konoma-orthogonal)
konoma-orthogonal
konoma 自身の Mermaid レンダラが描いた flowchart 図 (routing = splines)
default (splines)
Mermaid ソース
flowchart LR
  K([キー入力]) --> S{どの面か}
  S -->|ツリー| M[移動・開く]
  S -->|プレビュー| P[スクロール・検索]
  M --> R[再描画]
  P --> R

色 — classDef / ::: / style / linkStyle

Section titled “色 — classDef / ::: / style / linkStyle”

flowchart は色で「どれが同じ仲間か」を語ります。classDef が宣言に名前を付け、 class(短縮形は :::)がノードに割り当て、style は 1 つのノードを直接塗り、 linkStyle宣言順の添字で辺を塗ります。

konoma 自身の Mermaid レンダラが描いた flowchart 図 (routing = konoma-orthogonal)
konoma-orthogonal
konoma 自身の Mermaid レンダラが描いた flowchart 図 (routing = splines)
default (splines)
Mermaid ソース
flowchart LR
  F[ファイル] --> R{ルールに一致?}
  R -->|画像| I[デコード]:::media
  R -->|Markdown| M[ブロックモデル]:::text
  R -->|なし| X[プレビュー不可]
  I --> K[kitty 転送]:::media
  M --> K
  classDef media fill:#132a3a,stroke:#1f6feb,color:#c9d1d9
  classDef text fill:#12291c,stroke:#2da44e,color:#c9d1d9
  style X fill:#2d2418,stroke:#d4a017,color:#c9d1d9
  linkStyle 0 stroke:#8b949e
  linkStyle 1,4 stroke:#1f6feb
  linkStyle 2,5 stroke:#2da44e
  linkStyle 3 stroke:#d4a017

大きさ — 図は必要なだけの大きさで描かれる

Section titled “大きさ — 図は必要なだけの大きさで描かれる”

konoma は図を周囲の文字と同じ大きさで組み、拡大はしません。中身の多い図は 本当に横に長いので、その分だけ画面を使います — これは konoma 自身のプレビューの 振り分けで、扱える全形式と、絵が端末に届く 3 通りの経路です。

konoma 自身の Mermaid レンダラが描いた flowchart 図 (routing = konoma-orthogonal)
konoma-orthogonal
konoma 自身の Mermaid レンダラが描いた flowchart 図 (routing = splines)
default (splines)
Mermaid ソース
flowchart LR
  F[ファイル] --> C{設定のルール}
  C -->|テキスト| T[窓読み]
  C -->|コード| S[構文強調]
  C -->|Markdown| MD[ブロックモデル]
  C -->|CSV / TSV| TB[表]
  C -->|画像| IM[デコード]
  C -->|PDF| PD[ページ描画]
  C -->|SVG| SV[usvg]
  C -->|動画| VD[キーフレーム]
  C -->|書庫| AR[一覧]
  C -->|なし| NA[プレビュー不可]
  MD --> MM[mermaid]
  MD --> MA[数式]
  MM --> RS[ラスタライズ]
  MA --> RS
  SV --> RS
  PD --> RS
  IM --> FIT[セルに合わせる]
  RS --> FIT
  VD --> FIT
  FIT --> K{端末}
  K -->|kitty| KT[圧縮転送]
  K -->|sixel / iTerm2| RI[画像プロトコル]
  K -->|それ以外| HB[ハーフブロック]
  classDef pix fill:#132a3a,stroke:#1f6feb,color:#c9d1d9
  classDef txt fill:#12291c,stroke:#2da44e,color:#c9d1d9
  class IM,PD,SV,VD,MM,MA,RS,FIT,KT,RI,HB pix
  class T,S,MD,TB,AR txt
  style NA fill:#2d2418,stroke:#d4a017,color:#c9d1d9

konoma の UI は 2 つのモードと、その間の行き来だけでできています。[*] は開始と終了の 印です。状態の中に状態機械を入れられ、枠は入れ子から導かれます(指示ではありません)。

konoma 自身の Mermaid レンダラが描いた stateDiagram-v2 図 (routing = konoma-orthogonal)
konoma-orthogonal
konoma 自身の Mermaid レンダラが描いた stateDiagram-v2 図 (routing = splines)
default (splines)
Mermaid ソース
stateDiagram-v2
  [*] --> ツリー
  ツリー --> プレビュー : Enter
  プレビュー --> ツリー : q
  state プレビュー {
    [*] --> デコード中
    デコード中 --> 表示 : 画像が届く
  }
  ツリー --> [*] : Q

classDiagram — 型と、その持ちもの

Section titled “classDiagram — 型と、その持ちもの”

クラスの箱は区画に分かれます。名前・フィールド・メソッドの順で、+/- が可視性です。 <|-- が継承、--> がただの関連です。

konoma 自身の Mermaid レンダラが描いた classDiagram 図 (routing = splines)
Mermaid ソース
classDiagram
  class Preview {
    +PathBuf path
    +DisplayMode mode
    +render(width) Lines
  }
  class Renderer {
    +draw(source) Svg
  }
  class MermaidRenderer {
    +DiagramKind kind
    +draw(source) Svg
  }
  Preview --> Renderer : 委譲する
  Renderer <|-- MermaidRenderer

どの図種もテーマに従います。暗い板と明るい板の両方で示しています。

同じ図を konoma 自身の Mermaid レンダラで mermaid_theme = "dark" として描いたもの
暗い端末
同じ図を konoma 自身の Mermaid レンダラで mermaid_theme = "dark" として描いたもの
明るい端末
dark既定
同じ図を konoma 自身の Mermaid レンダラで mermaid_theme = "light" として描いたもの
暗い端末
同じ図を konoma 自身の Mermaid レンダラで mermaid_theme = "light" として描いたもの
明るい端末
light
同じ図を konoma 自身の Mermaid レンダラで mermaid_theme = "classic" として描いたもの
暗い端末
同じ図を konoma 自身の Mermaid レンダラで mermaid_theme = "classic" として描いたもの
明るい端末
classic
同じ図を konoma 自身の Mermaid レンダラで mermaid_theme = "forest" として描いたもの
暗い端末
同じ図を konoma 自身の Mermaid レンダラで mermaid_theme = "forest" として描いたもの
明るい端末
forest
同じ図を konoma 自身の Mermaid レンダラで mermaid_theme = "neutral" として描いたもの
暗い端末
同じ図を konoma 自身の Mermaid レンダラで mermaid_theme = "neutral" として描いたもの
明るい端末
neutral

鳥の足のような記号が要点です。|| はちょうど 1 つ、o{ は 0 個以上を表します。実体には 型と PK/FK を並べた属性表を持たせられます。

konoma 自身の Mermaid レンダラが描いた erDiagram 図 (routing = splines)
Mermaid ソース
erDiagram
  TAB["タブ"] {
    int index PK
    string root
    string cursor
  }
  MARK["ブックマーク"] {
    string key PK
    string path
  }
  ROOT["ルート"] {
    string path PK
  }
  TAB ||--|| ROOT : 起点にする
  TAB ||--o{ MARK : 覚える
同じ図を konoma 自身の Mermaid レンダラで mermaid_theme = "dark" として描いたもの
暗い端末
同じ図を konoma 自身の Mermaid レンダラで mermaid_theme = "dark" として描いたもの
明るい端末
dark既定
同じ図を konoma 自身の Mermaid レンダラで mermaid_theme = "light" として描いたもの
暗い端末
同じ図を konoma 自身の Mermaid レンダラで mermaid_theme = "light" として描いたもの
明るい端末
light
同じ図を konoma 自身の Mermaid レンダラで mermaid_theme = "classic" として描いたもの
暗い端末
同じ図を konoma 自身の Mermaid レンダラで mermaid_theme = "classic" として描いたもの
明るい端末
classic
同じ図を konoma 自身の Mermaid レンダラで mermaid_theme = "forest" として描いたもの
暗い端末
同じ図を konoma 自身の Mermaid レンダラで mermaid_theme = "forest" として描いたもの
明るい端末
forest
同じ図を konoma 自身の Mermaid レンダラで mermaid_theme = "neutral" として描いたもの
暗い端末
同じ図を konoma 自身の Mermaid レンダラで mermaid_theme = "neutral" として描いたもの
明るい端末
neutral

sequenceDiagram — 誰が何を、どの順で

Section titled “sequenceDiagram — 誰が何を、どの順で”

時間は上から下へ流れます。棒人間の登場人物、ワーカーが動いている間を示す活性化バー (+deactivate)、端末ごとに分かれる alt ブロックを使っています。

konoma 自身の Mermaid レンダラが描いた sequenceDiagram 図 (routing = splines)
Mermaid ソース
sequenceDiagram
  actor U as あなた
  participant K as konoma
  participant W as ワーカー
  U->>K: .png で Enter
  K->>+W: UI とは別スレッドで復号
  alt kitty graphics
    W-->>K: 圧縮した RGBA
  else 非対応
    W-->>K: ハーフブロック
  end
  deactivate W
  K-->>U: 全画面プレビュー
同じ図を konoma 自身の Mermaid レンダラで mermaid_theme = "dark" として描いたもの
暗い端末
同じ図を konoma 自身の Mermaid レンダラで mermaid_theme = "dark" として描いたもの
明るい端末
dark既定
同じ図を konoma 自身の Mermaid レンダラで mermaid_theme = "light" として描いたもの
暗い端末
同じ図を konoma 自身の Mermaid レンダラで mermaid_theme = "light" として描いたもの
明るい端末
light
同じ図を konoma 自身の Mermaid レンダラで mermaid_theme = "classic" として描いたもの
暗い端末
同じ図を konoma 自身の Mermaid レンダラで mermaid_theme = "classic" として描いたもの
明るい端末
classic
同じ図を konoma 自身の Mermaid レンダラで mermaid_theme = "forest" として描いたもの
暗い端末
同じ図を konoma 自身の Mermaid レンダラで mermaid_theme = "forest" として描いたもの
明るい端末
forest
同じ図を konoma 自身の Mermaid レンダラで mermaid_theme = "neutral" として描いたもの
暗い端末
同じ図を konoma 自身の Mermaid レンダラで mermaid_theme = "neutral" として描いたもの
明るい端末
neutral

zenuml — 同じ話を、コードのように書く

Section titled “zenuml — 同じ話を、コードのように書く”

ZenUML は矢印ではなく入れ子の呼び出しとしてやりとりを書きます。{ … } の中は呼ばれた 側の仕事で、if/else はプログラムそのままの読み方になります。

konoma 自身の Mermaid レンダラが描いた zenuml 図 (routing = splines)
Mermaid ソース
zenuml
  title ファイルを開く
  @Actor You
  You->konoma: Enter
  konoma->Resolver.resolve(path) {
    return kind
  }
  if(kind == "image") {
    konoma->Decoder: 復号する
  } else {
    konoma->Window: 1 画面ぶん読む
  }
  konoma->You: 全画面プレビュー
同じ図を konoma 自身の Mermaid レンダラで mermaid_theme = "dark" として描いたもの
暗い端末
同じ図を konoma 自身の Mermaid レンダラで mermaid_theme = "dark" として描いたもの
明るい端末
dark既定
同じ図を konoma 自身の Mermaid レンダラで mermaid_theme = "light" として描いたもの
暗い端末
同じ図を konoma 自身の Mermaid レンダラで mermaid_theme = "light" として描いたもの
明るい端末
light
同じ図を konoma 自身の Mermaid レンダラで mermaid_theme = "classic" として描いたもの
暗い端末
同じ図を konoma 自身の Mermaid レンダラで mermaid_theme = "classic" として描いたもの
明るい端末
classic
同じ図を konoma 自身の Mermaid レンダラで mermaid_theme = "forest" として描いたもの
暗い端末
同じ図を konoma 自身の Mermaid レンダラで mermaid_theme = "forest" として描いたもの
明るい端末
forest
同じ図を konoma 自身の Mermaid レンダラで mermaid_theme = "neutral" として描いたもの
暗い端末
同じ図を konoma 自身の Mermaid レンダラで mermaid_theme = "neutral" として描いたもの
明るい端末
neutral

mindmap — 1 つの考えから枝分かれ

Section titled “mindmap — 1 つの考えから枝分かれ”

字下げだけで書きます。konoma は放射状ではなく左から右へ並べます。放射状だと端末では ラベルの半分が線の反対側に来て読めなくなるからです。

konoma 自身の Mermaid レンダラが描いた mindmap 図 (routing = splines)
Mermaid ソース
mindmap
  root((konoma のプレビュー))
    テキスト
      Markdown
      ソースコード
    メディア
      画像
      PDF と動画
    データ
      CSV の表
      書庫
同じ図を konoma 自身の Mermaid レンダラで mermaid_theme = "dark" として描いたもの
暗い端末
同じ図を konoma 自身の Mermaid レンダラで mermaid_theme = "dark" として描いたもの
明るい端末
dark既定
同じ図を konoma 自身の Mermaid レンダラで mermaid_theme = "light" として描いたもの
暗い端末
同じ図を konoma 自身の Mermaid レンダラで mermaid_theme = "light" として描いたもの
明るい端末
light
同じ図を konoma 自身の Mermaid レンダラで mermaid_theme = "classic" として描いたもの
暗い端末
同じ図を konoma 自身の Mermaid レンダラで mermaid_theme = "classic" として描いたもの
明るい端末
classic
同じ図を konoma 自身の Mermaid レンダラで mermaid_theme = "forest" として描いたもの
暗い端末
同じ図を konoma 自身の Mermaid レンダラで mermaid_theme = "forest" として描いたもの
明るい端末
forest
同じ図を konoma 自身の Mermaid レンダラで mermaid_theme = "neutral" として描いたもの
暗い端末
同じ図を konoma 自身の Mermaid レンダラで mermaid_theme = "neutral" として描いたもの
明るい端末
neutral

字下げの 1 段目が列、2 段目がカードです。@{ … } でカードに担当・優先度・チケットを 付けられます。

konoma 自身の Mermaid レンダラが描いた kanban 図 (routing = splines)
Mermaid ソース
kanban
  未着手
    k1[sixel の色を調整する]
  作業中
    k2[mermaid ギャラリーを書く]@{ assigned: 'konoma', priority: 'High' }
  完了
    k3[レンダラの依存を外す]@{ ticket: 'v0.27.0' }
同じ図を konoma 自身の Mermaid レンダラで mermaid_theme = "dark" として描いたもの
暗い端末
同じ図を konoma 自身の Mermaid レンダラで mermaid_theme = "dark" として描いたもの
明るい端末
dark既定
同じ図を konoma 自身の Mermaid レンダラで mermaid_theme = "light" として描いたもの
暗い端末
同じ図を konoma 自身の Mermaid レンダラで mermaid_theme = "light" として描いたもの
明るい端末
light
同じ図を konoma 自身の Mermaid レンダラで mermaid_theme = "classic" として描いたもの
暗い端末
同じ図を konoma 自身の Mermaid レンダラで mermaid_theme = "classic" として描いたもの
明るい端末
classic
同じ図を konoma 自身の Mermaid レンダラで mermaid_theme = "forest" として描いたもの
暗い端末
同じ図を konoma 自身の Mermaid レンダラで mermaid_theme = "forest" として描いたもの
明るい端末
forest
同じ図を konoma 自身の Mermaid レンダラで mermaid_theme = "neutral" として描いたもの
暗い端末
同じ図を konoma 自身の Mermaid レンダラで mermaid_theme = "neutral" として描いたもの
明るい端末
neutral

journey — その作業が実際どう感じられたか

Section titled “journey — その作業が実際どう感じられたか”

各手順に 1〜5 の点数が付き、顔として描かれます。点数のあとに関わった人が並びます。 section が 1 日を帯に区切ります。

konoma 自身の Mermaid レンダラが描いた journey 図 (routing = splines)
Mermaid ソース
journey
  title AI と組んで書く午前
  section 読む
    差分をながめる: 4: 私, AI
    落ちている所を開く: 5: 私
  section 直す
    真因を見つける: 2: 私
    テストが緑になる: 5: 私, AI
同じ図を konoma 自身の Mermaid レンダラで mermaid_theme = "dark" として描いたもの
暗い端末
同じ図を konoma 自身の Mermaid レンダラで mermaid_theme = "dark" として描いたもの
明るい端末
dark既定
同じ図を konoma 自身の Mermaid レンダラで mermaid_theme = "light" として描いたもの
暗い端末
同じ図を konoma 自身の Mermaid レンダラで mermaid_theme = "light" として描いたもの
明るい端末
light
同じ図を konoma 自身の Mermaid レンダラで mermaid_theme = "classic" として描いたもの
暗い端末
同じ図を konoma 自身の Mermaid レンダラで mermaid_theme = "classic" として描いたもの
明るい端末
classic
同じ図を konoma 自身の Mermaid レンダラで mermaid_theme = "forest" として描いたもの
暗い端末
同じ図を konoma 自身の Mermaid レンダラで mermaid_theme = "forest" として描いたもの
明るい端末
forest
同じ図を konoma 自身の Mermaid レンダラで mermaid_theme = "neutral" として描いたもの
暗い端末
同じ図を konoma 自身の Mermaid レンダラで mermaid_theme = "neutral" として描いたもの
明るい端末
neutral

左に期間、右に出来事。section で帯に分けます。1 つの期間に : 区切りで複数の出来事を 書けます。

konoma 自身の Mermaid レンダラが描いた timeline 図 (routing = splines)
Mermaid ソース
timeline
  title プレビュー種別とリリース
  section 2026 年前半
    v0.4 : CSV の表 : 行の範囲選択
    v0.11 : キャレット行でエディタを開く
  section 2026 年後半
    v0.15 : mermaid を画像として描く
    v0.27 : 全図種を自前で描く
同じ図を konoma 自身の Mermaid レンダラで mermaid_theme = "dark" として描いたもの
暗い端末
同じ図を konoma 自身の Mermaid レンダラで mermaid_theme = "dark" として描いたもの
明るい端末
dark既定
同じ図を konoma 自身の Mermaid レンダラで mermaid_theme = "light" として描いたもの
暗い端末
同じ図を konoma 自身の Mermaid レンダラで mermaid_theme = "light" として描いたもの
明るい端末
light
同じ図を konoma 自身の Mermaid レンダラで mermaid_theme = "classic" として描いたもの
暗い端末
同じ図を konoma 自身の Mermaid レンダラで mermaid_theme = "classic" として描いたもの
明るい端末
classic
同じ図を konoma 自身の Mermaid レンダラで mermaid_theme = "forest" として描いたもの
暗い端末
同じ図を konoma 自身の Mermaid レンダラで mermaid_theme = "forest" として描いたもの
明るい端末
forest
同じ図を konoma 自身の Mermaid レンダラで mermaid_theme = "neutral" として描いたもの
暗い端末
同じ図を konoma 自身の Mermaid レンダラで mermaid_theme = "neutral" として描いたもの
明るい端末
neutral

section の帯、前の棒の終わりに繋ぐ after の依存、crit タグ、棒ではなくひし形で 描かれる milestone に注目してください。

konoma 自身の Mermaid レンダラが描いた gantt 図 (routing = splines)
Mermaid ソース
gantt
  title レンダラを出すまで
  dateFormat YYYY-MM-DD
  axisFormat %m/%d
  section 作る
    パーサ     :p1, 2026-08-01, 6d
    レイアウト :after p1, 5d
  section 出す
    監査       :crit, a1, 2026-08-12, 2d
    リリース   :milestone, m1, after a1, 0d
    告知       :after m1, 1d
同じ図を konoma 自身の Mermaid レンダラで mermaid_theme = "dark" として描いたもの
暗い端末
同じ図を konoma 自身の Mermaid レンダラで mermaid_theme = "dark" として描いたもの
明るい端末
dark既定
同じ図を konoma 自身の Mermaid レンダラで mermaid_theme = "light" として描いたもの
暗い端末
同じ図を konoma 自身の Mermaid レンダラで mermaid_theme = "light" として描いたもの
明るい端末
light
同じ図を konoma 自身の Mermaid レンダラで mermaid_theme = "classic" として描いたもの
暗い端末
同じ図を konoma 自身の Mermaid レンダラで mermaid_theme = "classic" として描いたもの
明るい端末
classic
同じ図を konoma 自身の Mermaid レンダラで mermaid_theme = "forest" として描いたもの
暗い端末
同じ図を konoma 自身の Mermaid レンダラで mermaid_theme = "forest" として描いたもの
明るい端末
forest
同じ図を konoma 自身の Mermaid レンダラで mermaid_theme = "neutral" として描いたもの
暗い端末
同じ図を konoma 自身の Mermaid レンダラで mermaid_theme = "neutral" として描いたもの
明るい端末
neutral

requirementDiagram — 満たすべきことと、それを示すもの

Section titled “requirementDiagram — 満たすべきことと、それを示すもの”

要件は id・本文・リスク・検証方法を持ち、element がそれを満たす/検証する側です。

konoma 自身の Mermaid レンダラが描いた requirementDiagram 図 (routing = splines)
Mermaid ソース
requirementDiagram
  requirement 描画は止まらない {
    id: 1
    text: 再描画は必ず 60ms 以内に終わる
    risk: high
    verifymethod: test
  }
  element 速度テスト {
    type: simulation
  }
  速度テスト - verifies -> 描画は止まらない
同じ図を konoma 自身の Mermaid レンダラで mermaid_theme = "dark" として描いたもの
暗い端末
同じ図を konoma 自身の Mermaid レンダラで mermaid_theme = "dark" として描いたもの
明るい端末
dark既定
同じ図を konoma 自身の Mermaid レンダラで mermaid_theme = "light" として描いたもの
暗い端末
同じ図を konoma 自身の Mermaid レンダラで mermaid_theme = "light" として描いたもの
明るい端末
light
同じ図を konoma 自身の Mermaid レンダラで mermaid_theme = "classic" として描いたもの
暗い端末
同じ図を konoma 自身の Mermaid レンダラで mermaid_theme = "classic" として描いたもの
明るい端末
classic
同じ図を konoma 自身の Mermaid レンダラで mermaid_theme = "forest" として描いたもの
暗い端末
同じ図を konoma 自身の Mermaid レンダラで mermaid_theme = "forest" として描いたもの
明るい端末
forest
同じ図を konoma 自身の Mermaid レンダラで mermaid_theme = "neutral" として描いたもの
暗い端末
同じ図を konoma 自身の Mermaid レンダラで mermaid_theme = "neutral" として描いたもの
明るい端末
neutral

コミットがレーンに並び、branch で枝が増え、checkout で移り、merge で戻ります。 タグは対象のコミットの脇に出ます。

konoma 自身の Mermaid レンダラが描いた gitGraph 図 (routing = splines)
Mermaid ソース
gitGraph
  commit id: "v0.26.5"
  branch renderer
  commit id: "解析"
  commit id: "配置"
  checkout main
  merge renderer tag: "v0.27.0"
同じ図を konoma 自身の Mermaid レンダラで mermaid_theme = "dark" として描いたもの
暗い端末
同じ図を konoma 自身の Mermaid レンダラで mermaid_theme = "dark" として描いたもの
明るい端末
dark既定
同じ図を konoma 自身の Mermaid レンダラで mermaid_theme = "light" として描いたもの
暗い端末
同じ図を konoma 自身の Mermaid レンダラで mermaid_theme = "light" として描いたもの
明るい端末
light
同じ図を konoma 自身の Mermaid レンダラで mermaid_theme = "classic" として描いたもの
暗い端末
同じ図を konoma 自身の Mermaid レンダラで mermaid_theme = "classic" として描いたもの
明るい端末
classic
同じ図を konoma 自身の Mermaid レンダラで mermaid_theme = "forest" として描いたもの
暗い端末
同じ図を konoma 自身の Mermaid レンダラで mermaid_theme = "forest" として描いたもの
明るい端末
forest
同じ図を konoma 自身の Mermaid レンダラで mermaid_theme = "neutral" として描いたもの
暗い端末
同じ図を konoma 自身の Mermaid レンダラで mermaid_theme = "neutral" として描いたもの
明るい端末
neutral

C4 の語彙です。Person(人)、自分たちの System、外部の System_Ext、そして自分たちの 範囲を囲む境界。関連には技術名を 2 つ目のラベルとして添えられます。

konoma 自身の Mermaid レンダラが描いた C4Context 図 (routing = splines)
Mermaid ソース
C4Context
  title AI と組むときの konoma
  Person(dev, "開発者", "左で読み、右で指示する。")
  Enterprise_Boundary(term, "1 つの端末") {
    System(konoma, "konoma", "ツリーと全画面プレビュー。")
    System(agent, "コーディング AI", "ファイルを編集する。")
  }
  System_Ext(editor, "エディタ", "必要なときに行を指定して開く。")
  Rel(dev, konoma, "閲覧する")
  Rel(agent, konoma, "配下を書き換える", "fs イベント")
  Rel(konoma, editor, "委譲する", "$EDITOR")
同じ図を konoma 自身の Mermaid レンダラで mermaid_theme = "dark" として描いたもの
暗い端末
同じ図を konoma 自身の Mermaid レンダラで mermaid_theme = "dark" として描いたもの
明るい端末
dark既定
同じ図を konoma 自身の Mermaid レンダラで mermaid_theme = "light" として描いたもの
暗い端末
同じ図を konoma 自身の Mermaid レンダラで mermaid_theme = "light" として描いたもの
明るい端末
light
同じ図を konoma 自身の Mermaid レンダラで mermaid_theme = "classic" として描いたもの
暗い端末
同じ図を konoma 自身の Mermaid レンダラで mermaid_theme = "classic" として描いたもの
明るい端末
classic
同じ図を konoma 自身の Mermaid レンダラで mermaid_theme = "forest" として描いたもの
暗い端末
同じ図を konoma 自身の Mermaid レンダラで mermaid_theme = "forest" として描いたもの
明るい端末
forest
同じ図を konoma 自身の Mermaid レンダラで mermaid_theme = "neutral" として描いたもの
暗い端末
同じ図を konoma 自身の Mermaid レンダラで mermaid_theme = "neutral" として描いたもの
明るい端末
neutral

block-beta — 置き場所としての格子

Section titled “block-beta — 置き場所としての格子”

flowchart と違い、形を決めるのは columns です。1 行に入る枡の数を指定し、:n で横に 広げ、block: の枠で枡の中にさらに格子を入れます。

konoma 自身の Mermaid レンダラが描いた block-beta 図 (routing = splines)
Mermaid ソース
block-beta
  columns 2
  ui["ツリーとプレビュー"]:2
  block:workers:1
    columns 1
    img["画像の復号"]
    git["git status"]
  end
  cache[("キャッシュ")]
  ui --> workers
  workers --> cache
同じ図を konoma 自身の Mermaid レンダラで mermaid_theme = "dark" として描いたもの
暗い端末
同じ図を konoma 自身の Mermaid レンダラで mermaid_theme = "dark" として描いたもの
明るい端末
dark既定
同じ図を konoma 自身の Mermaid レンダラで mermaid_theme = "light" として描いたもの
暗い端末
同じ図を konoma 自身の Mermaid レンダラで mermaid_theme = "light" として描いたもの
明るい端末
light
同じ図を konoma 自身の Mermaid レンダラで mermaid_theme = "classic" として描いたもの
暗い端末
同じ図を konoma 自身の Mermaid レンダラで mermaid_theme = "classic" として描いたもの
明るい端末
classic
同じ図を konoma 自身の Mermaid レンダラで mermaid_theme = "forest" として描いたもの
暗い端末
同じ図を konoma 自身の Mermaid レンダラで mermaid_theme = "forest" として描いたもの
明るい端末
forest
同じ図を konoma 自身の Mermaid レンダラで mermaid_theme = "neutral" として描いたもの
暗い端末
同じ図を konoma 自身の Mermaid レンダラで mermaid_theme = "neutral" として描いたもの
明るい端末
neutral

architecture-beta — サービスと、線が出る辺

Section titled “architecture-beta — サービスと、線が出る辺”

辺ごとにどちら側から出てどちら側に入るかを書きます(R 右・L 左・T 上・B 下)。 推測ではなく指定された絵になります。

konoma 自身の Mermaid レンダラが描いた architecture-beta 図 (routing = splines)
Mermaid ソース
architecture-beta
  group term(cloud)[端末]
    service tree(server)[ツリー] in term
    service prev(server)[プレビュー] in term
  service repo(database)[git リポジトリ]
  service cache(disk)[画像キャッシュ]
  tree:R --> L:prev
  tree:B --> T:repo
  prev:B --> T:cache
同じ図を konoma 自身の Mermaid レンダラで mermaid_theme = "dark" として描いたもの
暗い端末
同じ図を konoma 自身の Mermaid レンダラで mermaid_theme = "dark" として描いたもの
明るい端末
dark既定
同じ図を konoma 自身の Mermaid レンダラで mermaid_theme = "light" として描いたもの
暗い端末
同じ図を konoma 自身の Mermaid レンダラで mermaid_theme = "light" として描いたもの
明るい端末
light
同じ図を konoma 自身の Mermaid レンダラで mermaid_theme = "classic" として描いたもの
暗い端末
同じ図を konoma 自身の Mermaid レンダラで mermaid_theme = "classic" として描いたもの
明るい端末
classic
同じ図を konoma 自身の Mermaid レンダラで mermaid_theme = "forest" として描いたもの
暗い端末
同じ図を konoma 自身の Mermaid レンダラで mermaid_theme = "forest" として描いたもの
明るい端末
forest
同じ図を konoma 自身の Mermaid レンダラで mermaid_theme = "neutral" として描いたもの
暗い端末
同じ図を konoma 自身の Mermaid レンダラで mermaid_theme = "neutral" として描いたもの
明るい端末
neutral

showData を付けると、割合に加えて元の数値もラベルの脇に出ます。

konoma 自身の Mermaid レンダラが描いた pie 図 (routing = splines)
Mermaid ソース
pie showData
  title 全画面 1 回の再描画の内訳(ms)
  "端末への転送" : 31
  "画像の復号" : 12
  "レイアウト" : 4
  "その他" : 3
同じ図を konoma 自身の Mermaid レンダラで mermaid_theme = "dark" として描いたもの
暗い端末
同じ図を konoma 自身の Mermaid レンダラで mermaid_theme = "dark" として描いたもの
明るい端末
dark既定
同じ図を konoma 自身の Mermaid レンダラで mermaid_theme = "light" として描いたもの
暗い端末
同じ図を konoma 自身の Mermaid レンダラで mermaid_theme = "light" として描いたもの
明るい端末
light
同じ図を konoma 自身の Mermaid レンダラで mermaid_theme = "classic" として描いたもの
暗い端末
同じ図を konoma 自身の Mermaid レンダラで mermaid_theme = "classic" として描いたもの
明るい端末
classic
同じ図を konoma 自身の Mermaid レンダラで mermaid_theme = "forest" として描いたもの
暗い端末
同じ図を konoma 自身の Mermaid レンダラで mermaid_theme = "forest" として描いたもの
明るい端末
forest
同じ図を konoma 自身の Mermaid レンダラで mermaid_theme = "neutral" として描いたもの
暗い端末
同じ図を konoma 自身の Mermaid レンダラで mermaid_theme = "neutral" として描いたもの
明るい端末
neutral

xychart-beta — 同じ軸に棒と折れ線

Section titled “xychart-beta — 同じ軸に棒と折れ線”

1 つの x 軸に 2 系列。実測を棒で、目標を折れ線で重ねています。

konoma 自身の Mermaid レンダラが描いた xychart-beta 図 (routing = splines)
Mermaid ソース
xychart-beta
  title "図のレイアウト時間"
  x-axis [flow, state, class, er, seq]
  y-axis "マイクロ秒" 0 --> 1200
  bar "実測" [90, 140, 260, 300, 880]
  line "目標" [1000, 1000, 1000, 1000, 1000]
同じ図を konoma 自身の Mermaid レンダラで mermaid_theme = "dark" として描いたもの
暗い端末
同じ図を konoma 自身の Mermaid レンダラで mermaid_theme = "dark" として描いたもの
明るい端末
dark既定
同じ図を konoma 自身の Mermaid レンダラで mermaid_theme = "light" として描いたもの
暗い端末
同じ図を konoma 自身の Mermaid レンダラで mermaid_theme = "light" として描いたもの
明るい端末
light
同じ図を konoma 自身の Mermaid レンダラで mermaid_theme = "classic" として描いたもの
暗い端末
同じ図を konoma 自身の Mermaid レンダラで mermaid_theme = "classic" として描いたもの
明るい端末
classic
同じ図を konoma 自身の Mermaid レンダラで mermaid_theme = "forest" として描いたもの
暗い端末
同じ図を konoma 自身の Mermaid レンダラで mermaid_theme = "forest" として描いたもの
明るい端末
forest
同じ図を konoma 自身の Mermaid レンダラで mermaid_theme = "neutral" として描いたもの
暗い端末
同じ図を konoma 自身の Mermaid レンダラで mermaid_theme = "neutral" として描いたもの
明るい端末
neutral

点は [x, y] で単位正方形の中に置かれ、各象限に名前が付きます。

konoma 自身の Mermaid レンダラが描いた quadrantChart 図 (routing = splines)
Mermaid ソース
quadrantChart
  title 手間と需要で見たプレビュー種別
  x-axis 安い --> 高い
  y-axis まれ --> よくある
  quadrant-1 やる価値あり
  quadrant-2 すぐ効く
  quadrant-3 いつか
  quadrant-4 よく考える
  Markdown: [0.62, 0.78]
  画像: [0.8, 0.62]
  CSV: [0.34, 0.3]
  書庫: [0.2, 0.12]
同じ図を konoma 自身の Mermaid レンダラで mermaid_theme = "dark" として描いたもの
暗い端末
同じ図を konoma 自身の Mermaid レンダラで mermaid_theme = "dark" として描いたもの
明るい端末
dark既定
同じ図を konoma 自身の Mermaid レンダラで mermaid_theme = "light" として描いたもの
暗い端末
同じ図を konoma 自身の Mermaid レンダラで mermaid_theme = "light" として描いたもの
明るい端末
light
同じ図を konoma 自身の Mermaid レンダラで mermaid_theme = "classic" として描いたもの
暗い端末
同じ図を konoma 自身の Mermaid レンダラで mermaid_theme = "classic" として描いたもの
明るい端末
classic
同じ図を konoma 自身の Mermaid レンダラで mermaid_theme = "forest" として描いたもの
暗い端末
同じ図を konoma 自身の Mermaid レンダラで mermaid_theme = "forest" として描いたもの
明るい端末
forest
同じ図を konoma 自身の Mermaid レンダラで mermaid_theme = "neutral" として描いたもの
暗い端末
同じ図を konoma 自身の Mermaid レンダラで mermaid_theme = "neutral" として描いたもの
明るい端末
neutral

radar-beta — 同じ軸で複数を比べる

Section titled “radar-beta — 同じ軸で複数を比べる”

軸を共有して、対象ごとに閉じた曲線を 1 本ずつ。形そのものが比較になります。

konoma 自身の Mermaid レンダラが描いた radar-beta 図 (routing = splines)
Mermaid ソース
radar-beta
  title 端末にできること
  axis img["画像"], vid["動画"], spd["速度"], col["色"]
  curve k["kitty graphics"]{5, 5, 5, 4}
  curve s["sixel"]{4, 3, 3, 4}
  curve h["ハーフブロック"]{2, 2, 4, 3}
  max 5
  min 0
同じ図を konoma 自身の Mermaid レンダラで mermaid_theme = "dark" として描いたもの
暗い端末
同じ図を konoma 自身の Mermaid レンダラで mermaid_theme = "dark" として描いたもの
明るい端末
dark既定
同じ図を konoma 自身の Mermaid レンダラで mermaid_theme = "light" として描いたもの
暗い端末
同じ図を konoma 自身の Mermaid レンダラで mermaid_theme = "light" として描いたもの
明るい端末
light
同じ図を konoma 自身の Mermaid レンダラで mermaid_theme = "classic" として描いたもの
暗い端末
同じ図を konoma 自身の Mermaid レンダラで mermaid_theme = "classic" として描いたもの
明るい端末
classic
同じ図を konoma 自身の Mermaid レンダラで mermaid_theme = "forest" として描いたもの
暗い端末
同じ図を konoma 自身の Mermaid レンダラで mermaid_theme = "forest" として描いたもの
明るい端末
forest
同じ図を konoma 自身の Mermaid レンダラで mermaid_theme = "neutral" として描いたもの
暗い端末
同じ図を konoma 自身の Mermaid レンダラで mermaid_theme = "neutral" として描いたもの
明るい端末
neutral

treemap-beta — 値の大きさが面積になる入れ子の箱

Section titled “treemap-beta — 値の大きさが面積になる入れ子の箱”

面積が数値です。字下げで入れ子になり、節の箱は葉の合計ぶんの大きさになります。

konoma 自身の Mermaid レンダラが描いた treemap-beta 図 (routing = splines)
Mermaid ソース
treemap-beta
"src"
  "preview": 21
  "app": 14
"docs"
  "PRD": 9
  "STATUS": 5
同じ図を konoma 自身の Mermaid レンダラで mermaid_theme = "dark" として描いたもの
暗い端末
同じ図を konoma 自身の Mermaid レンダラで mermaid_theme = "dark" として描いたもの
明るい端末
dark既定
同じ図を konoma 自身の Mermaid レンダラで mermaid_theme = "light" として描いたもの
暗い端末
同じ図を konoma 自身の Mermaid レンダラで mermaid_theme = "light" として描いたもの
明るい端末
light
同じ図を konoma 自身の Mermaid レンダラで mermaid_theme = "classic" として描いたもの
暗い端末
同じ図を konoma 自身の Mermaid レンダラで mermaid_theme = "classic" として描いたもの
明るい端末
classic
同じ図を konoma 自身の Mermaid レンダラで mermaid_theme = "forest" として描いたもの
暗い端末
同じ図を konoma 自身の Mermaid レンダラで mermaid_theme = "forest" として描いたもの
明るい端末
forest
同じ図を konoma 自身の Mermaid レンダラで mermaid_theme = "neutral" として描いたもの
暗い端末
同じ図を konoma 自身の Mermaid レンダラで mermaid_theme = "neutral" として描いたもの
明るい端末
neutral

packet-beta — ビット位置で並ぶフィールド

Section titled “packet-beta — ビット位置で並ぶフィールド”

範囲はビットの位置なので、幅の広いフィールドは本当に広く描かれます。

konoma 自身の Mermaid レンダラが描いた packet-beta 図 (routing = splines)
Mermaid ソース
packet-beta
0-7: "マジック"
8-11: "版"
12-15: "フラグ"
16-47: "本体の長さ"
48-63: "チェックサム"
同じ図を konoma 自身の Mermaid レンダラで mermaid_theme = "dark" として描いたもの
暗い端末
同じ図を konoma 自身の Mermaid レンダラで mermaid_theme = "dark" として描いたもの
明るい端末
dark既定
同じ図を konoma 自身の Mermaid レンダラで mermaid_theme = "light" として描いたもの
暗い端末
同じ図を konoma 自身の Mermaid レンダラで mermaid_theme = "light" として描いたもの
明るい端末
light
同じ図を konoma 自身の Mermaid レンダラで mermaid_theme = "classic" として描いたもの
暗い端末
同じ図を konoma 自身の Mermaid レンダラで mermaid_theme = "classic" として描いたもの
明るい端末
classic
同じ図を konoma 自身の Mermaid レンダラで mermaid_theme = "forest" として描いたもの
暗い端末
同じ図を konoma 自身の Mermaid レンダラで mermaid_theme = "forest" として描いたもの
明るい端末
forest
同じ図を konoma 自身の Mermaid レンダラで mermaid_theme = "neutral" として描いたもの
暗い端末
同じ図を konoma 自身の Mermaid レンダラで mermaid_theme = "neutral" として描いたもの
明るい端末
neutral

sankey-beta — 分かれても幅を保つ流れ

Section titled “sankey-beta — 分かれても幅を保つ流れ”

source,target,value をカンマ区切りで書きます。流れが分かれても帯の幅は比例したままです。

konoma 自身の Mermaid レンダラが描いた sankey-beta 図 (routing = splines)
Mermaid ソース
sankey-beta
リポジトリ,テキスト,62
リポジトリ,メディア,21
テキスト,Markdown プレビュー,38
テキスト,コードプレビュー,24
メディア,画像プレビュー,15
メディア,動画サムネイル,6
同じ図を konoma 自身の Mermaid レンダラで mermaid_theme = "dark" として描いたもの
暗い端末
同じ図を konoma 自身の Mermaid レンダラで mermaid_theme = "dark" として描いたもの
明るい端末
dark既定
同じ図を konoma 自身の Mermaid レンダラで mermaid_theme = "light" として描いたもの
暗い端末
同じ図を konoma 自身の Mermaid レンダラで mermaid_theme = "light" として描いたもの
明るい端末
light
同じ図を konoma 自身の Mermaid レンダラで mermaid_theme = "classic" として描いたもの
暗い端末
同じ図を konoma 自身の Mermaid レンダラで mermaid_theme = "classic" として描いたもの
明るい端末
classic
同じ図を konoma 自身の Mermaid レンダラで mermaid_theme = "forest" として描いたもの
暗い端末
同じ図を konoma 自身の Mermaid レンダラで mermaid_theme = "forest" として描いたもの
明るい端末
forest
同じ図を konoma 自身の Mermaid レンダラで mermaid_theme = "neutral" として描いたもの
暗い端末
同じ図を konoma 自身の Mermaid レンダラで mermaid_theme = "neutral" として描いたもの
明るい端末
neutral

でっち上げません。konoma が知らない図種や構文エラーは、ソースをテキストとして表示します。

ui.mermaid = "text" を指定すると、常に Unicode の罫線による描画になります。 グラフィックプロトコルを持たない端末で表示されるのもこれです。画像ではなく文字なので、 ここに置いてあるのはスクリーンショットではなく描画そのものです:

flowchart
                                        ┌────────────┐
                                       ▸│ 移 動 ・ 開 く  │────────────┐
                                       │└────────────┘            │
╭────────────╮       ╱──────────╲───プ─レ┘ビ ュ ー                     ▸┌────────┐
(  キ ー 入 力   )──────▸│ ど の 面 か  │   ツ リ ー                          │ 再 描 画  │
╰────────────╯       ╲──────────╱──────┐                          ▸└────────┘
                                       │┌──────────────────┐      │
                                       ▸│ ス ク ロ ー ル ・ 検 索  │──────┘
                                        └──────────────────┘
sequenceDiagram
 ┌──────────┐                  ┌──────────┐                         ┌────────────┐
 │  あ な た   │                  │  konoma  │                         │  ワ ー カ ー   │
 └──────────┘                  └──────────┘                         └────────────┘
       ┆ .png で  Enter               ┆                                     ┆
       ──────────────────────────────▸                                     ┆
       ┆                             ┆ UI と は 別 ス レ ッ ド で 復 号              ██
       ┆                             ──────────────────────────────────────▸█
       ┆                             ┆                                     ██
       ┆                      ╔═[alt]══[kitty graphics]════════════════════════════╗
       ┆                      ║░░░░░░┆░圧░縮░し░た░░RGBA░░░░░░░░░░░░░░░░░░░░░░░██░░░░░░║
       ┆                      ║░░░░░░◂┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄█░░░░░░║
       ┆                      ║░░░░░░┆░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░██░░░░░░║
       ┆                      ╠┄[非┄対┄応┄]┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄╣
       ┆                      ║░░░░░░┆░ハ░ー░フ░ブ░ロ░ッ░ク░░░░░░░░░░░░░░░░░░░░░░░██░░░░░░║
       ┆                      ║░░░░░░◂┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄█░░░░░░║
       ┆                      ║░░░░░░┆░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░┆░░░░░░░║
       ┆                      ╚════════════════════════════════════════════════════╝
       ┆ 全 画 面 プ レ ビ ュ ー             ┆                                     ┆
       ◂┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄                                     ┆
       ┆                             ┆                                     ┆
 ┌──────────┐                  ┌──────────┐                         ┌────────────┐
 │  あ な た   │                  │  konoma  │                         │  ワ ー カ ー   │
 └──────────┘                  └──────────┘                         └────────────┘