d2-lang
D2はテキスト記述を図表に変換するダイアグラムスクリプト言語です。「宣言型ダイアグラム作成」を意味しており、ユーザーが図示したい内容を記述するだけで、自動的に適切な図表を生成します。
code:example.d2
vars: {
d2-config: {
layout-engine: elk
# Terminal theme code
theme-id: 300
}
}
network: {
cell tower: {
satellites: {
shape: stored_data
style.multiple: true
}
transmitter
satellites -> transmitter: send
satellites -> transmitter: send
satellites -> transmitter: send
}
online portal: {
ui: {shape: hexagon}
}
data processor: {
storage: {
shape: cylinder
style.multiple: true
}
}
cell tower.transmitter -> data processor.storage: phone logs
}
user: {
shape: person
width: 130
}
user -> network.cell tower: make call
user -> network.online portal.ui: access {
style.stroke-dash: 3
}
api server -> network.online portal.ui: display
api server -> logs: persist
logs: {shape: page; style.multiple: true}
network.data processor -> api server
https://raw.githubusercontent.com/terrastruct/d2/refs/heads/master/docs/assets/example.svg
アスキーアートでの出力に対応している
https://d2lang.com/blog/ascii/
code:ascii.txt
┌────────┐ ***
╱‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾╱ ╱‾‾‾‾‾‾‾‾‾╱╲ │callout │ **** **** ╱‾‾‾‾‾‾‾‾‾╲
┌──────────┐ ╱ ╱ │ │ │ └────────┘ *** diamond *** ╱ ╲
│rectangle │ ╱ parallelogram ╱ │ queue │ │ │ ╱ **** **** ╲ hexagon ╱
│ │ ╱_______________╱ ╲________ ╲╱ │╱ ***** ╲_________╱
└──────────┘
│ │ │ │ │ │
▼ ▼ ▼ ▼ │ ▼
┌─────────┐ ┌──────────┐ ┌────┐ ╱‾‾‾‾‾‾‾‾‾‾‾╱ ▼ ┌☁─────────┐
│ │ │ document │ │ └────┐ ╱ ╱ ┌⬭────────┐ │ │
│ square │ │ .-`-.│ │ package │ │ stored_data │ oval │ │ cloud │
│ │ -.- └─────────┘ ╲ ╲ │ │ │ │
│ │ ╲___________╲ └─────────┘ │ │
└─────────┘ │ │ │ │ └──────────┘
│ │ │ │ │
▼ ▼ ▼ ▼ │
┌─────┐ .-‾‾‾‾-. ╲‾‾‾‾‾‾‾ ╲ ╱‾‾╲ ▼
│ ╲┐ │╲-____-╱│ ╲ ╲ ╲__╱ ┌⬭────────┐
│ page │ │ │ ╲ ╲ ╱‾‾‾‾╲ │ │
│ │ │ │ ╱ step ╱ ‾‾‾‾‾‾ │ circle │
└──────┘ │cylinder│ ╱ ╱ person │ │
│ │ ╱_______ ╱ │ │
╲-____-╱ └─────────┘
公式サイト: https://d2lang.com
リポジトリ: https://github.com/terrastruct/d2
関連: フローチャート作成 流れ図くん
#svg
#便利ツール
#プログラミング言語