Repolode
d2lang

d2lang/d2

テキストで図を記述できるスクリプト言語とCLI。`.d2`ファイルをSVG、PNG、GIF、PDF、PPTXに変換します。

代替できる製品:LucidchartVisio

スター
25,701
フォーク
767
未解決の Issue
536
最終コミット
10 日前

これは何?

D2は図を記述するスクリプト言語です。ノード、接続、コンテナ、スタイルをプレーンテキストで記述すると、D2 CLIがSVG、PNG、GIF、PDF、PPTXファイルとして描画します。watch modeでは、ソースファイルが変更されるたびに出力を再描画し、ブラウザのプレビューを再読み込みします。

Dagre(デフォルト)、ELK、TALAの3つのレイアウトエンジンが組み込まれており、フラグ、環境変数、またはD2ソース内の設定で選択できます。スケッチ風の描画とLaTeXラベルにも対応しており、ファイルに問題がある場合、パーサーは複数のエラーを報告します。オートフォーマッターとシンタックスハイライトを使えば、大規模な図の編集や管理も容易です。

D2はGoプログラムからライブラリとしても利用できます。VS Code、Vim、Obsidian向けのエディター拡張に加え、Markdownツール用のコミュニティプラグインも複数、プロジェクトの関連リソースに掲載されています。

主な機能

  • 01プレーンテキストの`.d2`スクリプトをSVG、PNG、GIF、PDF、PPTXに変換します。
  • 02watch modeを使うと、ファイルの変更時にブラウザのプレビューを自動で再読み込みします。
  • 03Dagre、ELK、TALAのレイアウトエンジンを内蔵し、図ごとに選択できます。
  • 04パーサーが複数のエラーを報告し、オートフォーマッターとシンタックスハイライトも利用できます。
  • 05Goライブラリとして利用し、プログラムから図を生成できます。

ユースケース

  • コードと一緒にバージョン管理できるソフトウェアアーキテクチャ図の作成。
  • 差分の確認やレビューがしやすいテキスト形式で、システム図やネットワーク図を最新の状態に保つ。
  • Goプログラムやドキュメントのビルドパイプラインから図を自動生成する。
  • Markdownベースのドキュメントサイトで、ER図やフロー図を作成する。

クイックスタート

  1. 1

    READMEに記載されているインストールスクリプトでD2をインストールする

  2. 2

    Go経由でD2をインストールする

    go install github.com/d2lang/d2@latest
  3. 3

    入力ファイルを作成し、ライブリロードでレンダリングする

    echo 'x -> y -> z' > in.d2 && d2 --watch in.d2 out.svg

使う前に知っておきたいこと

  • 推奨されているインストール方法は、curlスクリプトをshにパイプする方法です。この方法を避けるユーザーもいます。
  • Go installではmanページはインストールされません。

トピック

よくある質問

d2 とは?
テキストで図を記述できるスクリプト言語とCLI。`.d2`ファイルをSVG、PNG、GIF、PDF、PPTXに変換します。 D2は図を記述するスクリプト言語です。ノード、接続、コンテナ、スタイルをプレーンテキストで記述すると、D2 CLIがSVG、PNG、GIF、PDF、PPTXファイルとして描画します。watch modeでは、ソースファイルが変更されるたびに出力を再描画し、ブラウザのプレビューを再読み込みします。
d2 は無料で使えますか?ライセンスは?
d2 は MPL-2.0 ライセンスのオープンソースです。商用製品で使う前にライセンス条件を確認してください。
d2 は今もメンテナンスされていますか?
活発にメンテナンス中。d2 の最終コミットは 2026年10月11日 です。
d2 は何に使えますか?
コードと一緒にバージョン管理できるソフトウェアアーキテクチャ図の作成。 差分の確認やレビューがしやすいテキスト形式で、システム図やネットワーク図を最新の状態に保つ。 Goプログラムやドキュメントのビルドパイプラインから図を自動生成する。 Markdownベースのドキュメントサイトで、ER図やフロー図を作成する。
d2 のインストール方法は?
READMEに記載されているインストールスクリプトでD2をインストールする Go経由でD2をインストールする: go install github.com/d2lang/d2@latest 入力ファイルを作成し、ライブリロードでレンダリングする: echo 'x -> y -> z' > in.d2 && d2 --watch in.d2 out.svg
d2 はどこで入手できますか?
ソースコードとインストール手順は GitHub にあります:https://github.com/d2lang/d2

概要はプロジェクトの README をもとに AI が生成しています。GitHub の数値は毎日更新されます。

関連プロジェクト