D2 v0.6 introduces variable substitutions and globs. These two were the last of the features planned in the initial designs for D2, and v1 is now very close!
The power of variables and globs in a programming language need no introduction, so here's two minimal examples to get started:
Variables:
vars: {
color: aquamarine
}
x.style.fill: ${color}
Globs:
x
y
z
*.style.fill: aquamarine
Both are live on D2 Playground so give it a try! Looking forward to your issues and iterating
Layout capability also takes a subtle but important step forward: you can now customize the position of labels and icons.
Features ๐
- Variables and substitutions are implemented. See docs. #1473
- Configure timeout value with D2_TIMEOUT env var #1392
- Scale renders and disable fit to screen with
--scale
flag #1413 null
keyword can be used to un-declare. See docs #1446- Develop multi-board diagrams in watch mode (links to layers/scenarios/steps work in
--watch
) #1503 - Glob patterns have been implemented. See docs. #1479
Improvements ๐งน
- Display version on CLI help invocation #1400
- Improved readability of connection labels when they overlap another connection #447
- Error message when
shape
is given a composite #1415 - Improved rendering and text measurement for code shapes #1425
- The autoformatter moves board declarations to the bottom of its scope #1424
- All font styles in sketch mode use a consistent font-family #1463
- Tooltip and link icons are positioned on shape border #1466
- Tooltip and link icons are always rendered over shapes #1467
- Boards with no objects are considered folders #1504
DEBUG
environment variable ignored if set incorrectly #1505