概要
- D2バージョン0.7.1 で新たに ASCII出力機能 を追加
- .txt拡張子 の出力ファイルは自動的にASCIIレンダラーを使用
- コードコメント 内での簡易図の利用が推奨
- Unicode/標準ASCII の切替が可能
- 制限事項 や既知の問題点も明記
D2のASCII出力機能の概要
- D2バージョン0.7.1 でASCII出力機能をリリース
- .txt拡張子 のファイルは自動でASCIIレンダラーを使用
- Vim拡張 によるプレビュー機能の例を紹介
- .d2ファイル を開き、保存時にプレビューウィンドウが自動更新
- コードコメント 内への小さな図挿入を推奨
- 関数やクラスの隣にシンプルな図を追加
- Vim拡張 でd2コードをASCII図に自動変換
- ASCIIレンダラー のデフォルトはUnicode文字セット
- より美しい罫線描画を実現
- --ascii-mode=standard フラグ指定で純粋なASCII出力も可能
制限事項と注意点
- ASCIIレンダラーはアルファ版
- 多くのコーナーケースやバグが存在
- 問題発見時は GitHub Issues で報告を推奨
- ELKレイアウトエンジン で決定したレイアウトをダウンサイジング
- さらに圧縮処理を実施
- スタイル非対応
- アニメーションやフォント指定はASCIIで意味がないため未対応
- 将来的に端末用の色付けなど一部機能追加の可能性
- テーマ機能は無意味
- ダブルボーダーや複数ボーダーなどは今後の課題
- 不均一なスペース
- ASCII描画の都合上、ボックス幅とラベル長のバランスが悪い場合あり
- SVG出力よりも見た目が劣るケース
- 未対応項目
- Markdown、LaTeX、コード、画像、アイコン
- UMLクラス、SQLテーブルも現在は特別扱いなし
- 全ての図形対応ではない
- cloudやcircleなど曲線を含む形状は矩形+左上にアイコンで代用
- 今後変更の可能性あり
- カスタム図形の使用は非推奨
実際に試す方法
- D2 Playground でASCII出力を即時体験可能
- コードブロックを開いて右上クリックで確認
参考リンク
- バグ報告・要望受付: https://github.com/terrastruct/d2/issues