4 ポイント 投稿者 GN⁺ 2025-08-20 | まだコメントはありません。 | WhatsAppで共有
  • D2 0.7.1 で、テキストダイアグラムを ASCII でレンダリングする機能が追加
  • コードコメント内で シンプルな ASCII ダイアグラム を使い、関数やクラスの流れを説明可能
  • デフォルトでは Unicode の罫線文字を使用 するが、オプションフラグで標準 ASCII を選択可能
  • この機能は アルファ段階 であり、一部のスタイル、特殊文字、特定の図形は未対応
  • D2 Playground や Vim 拡張などで ASCII レンダリングを直接体験 可能

D2 ASCII レンダリングの紹介

D2 の最新リリース(バージョン 0.7.1)から、テキストダイアグラムの ASCII 出力機能 が追加された。
.txt 拡張子を持つ出力ファイルは、自動的に ASCII レンダラーでレンダリングされる。
例は D2 Vim 拡張 で確認でき、.d2 ファイルを開いてプレビューウィンドウを通じて、保存のたびに ASCII ダイアグラムの出力状態をリアルタイムで確認できる。

コード文書化での活用

ASCII ダイアグラムは、ソースコードのコメント に挿入する際に最も実用的だ。

  • 小さな関数やクラスの横に簡単なダイアグラムを追加すると、文章で流れを説明するよりも直感的にコード理解を助けられる
  • Vim 拡張では、D2 コードを書いて選択範囲をそのまま ASCII ダイアグラムへ変換できる

Unicode と標準 ASCII の選択

デフォルトの ASCII レンダリングは、Unicode のボックス描画文字 を使って、より見やすい出力を提供する。

  • もし 最大限の移植性 を求めるなら、--ascii-mode=standard オプションフラグで通常の ASCII 文字によるレンダリングも可能

現在の制限

この ASCII レンダリング機能は アルファ段階 だ。

  • コーナーケース、改善点、バグが多数存在する可能性がある
  • Web サイトへのバグレポートやフィードバックの送信が推奨されている

主な制限事項

  • スタイル未対応
    • アニメーションやフォントなどは ASCII では意味を持たない
    • 今後、ターミナルカラーなど一部の限定的なスタイル対応を検討予定
    • テーマも対応対象ではない
    • double-border、multiple などは今後の改善予定リストに含まれている
  • 不均一な間隔
    • ASCII への変換過程で、ボックス配置が SVG と比べて不規則になることがある
  • レンダリング不可の対象
    • Markdown、Latex、コードなどの特殊テキストは未対応
    • 画像やアイコン、UML クラス、SQL テーブルなどはレンダリング不可
    • これらの項目を削除するか、プレースホルダー表示にするかは今後決定予定
  • 一部図形は未対応
    • クラウドや円などの曲線系図形は、ASCII ではうまく表現できない
    • これらの図形は四角形に置き換え、左上に小さなアイコンを追加して種類を区別する

実際に試してみる

この機能は D2 Playground ですぐに利用できる。

  • 提供されているコードブロックを開いて、ASCII レンダリングを直接体験できる

まだコメントはありません。

まだコメントはありません。