テキストからダイアグラムを生成するツール。類似のツールとしてはMermaid、GraphViz、PlantUMLなどがあり、以下のサイトでこれらのツールで同じダイアグラムを書く場合の比較が可能。このサイトはD2開発元によるものらしい。

テキストと出力の例

公式サイトからの引用

# Actors
hans: Hans Niemann

defendants: {
  mc: Magnus Carlsen
  playmagnus: Play Magnus Group
  chesscom: Chess.com
  naka: Hikaru Nakamura

  mc -> playmagnus: Owns majority
  playmagnus <-> chesscom: Merger talks
  chesscom -> naka: Sponsoring
}

# Accusations
hans -> defendants: 'sueing for $100M'

# Offense
defendants.naka -> hans: Accused of cheating on his stream
defendants.mc -> hans: Lost then withdrew with accusations
defendants.chesscom -> hans: 72 page report of cheating

image

インストール

Macの場合はbrew install d2でOK

レイアウトエンジン(TALA)

ソフトウェアアーキテクチャ図に特化したレイアウトエンジンterrastruct/TALA: A diagram layout engine designed specifically for software architecture diagramsがあるようなのでインストール。

Macの場合はbrew install terrastruct/tap/talaでOK

D2から使用する場合は環境変数D2_LAYOUTtalaを指定する。

$ D2_LAYOUT=tala d2 in.d2 out.svg

プラグイン

すでにObsidian用のプラグインはあるがHugoQuartzで未サポートのため、本サイトではまだ使えない。

Integrate D2 diagrams · Issue #10579 · gohugoio/hugo