github terrastruct/d2 v0.6.0

latest releases: v0.6.6, v0.6.5, v0.6.4...
13 months ago

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

Bugfixes โ›‘๏ธ

  • Fixes edge case in compiler using dots in quotes #1401
  • Fixes grid label font size for TALA #1412
  • Fixes person shape label positioning with multiple or 3d #1478

Don't miss a new d2 release

NewReleases is sending notifications on new releases.