Skip to content

v0.1.4

Compare
Choose a tag to compare
@alixander alixander released this 31 Dec 06:00
· 3083 commits to master since this release
a796ee5

This release introduces interactive diagrams. Namely, tooltip and link can now be set, which allows you to hover to see more or click to go to an external link. This small change enables many possibilities, including richer integrations like internal wiki's that can be linked together through diagrams. An icon will indicate that a shape has a tooltip that can be hovered over for more information, or a link. We have much more in store for interactivity, stay tuned!

Screen Shot 2022-12-30 at 6 47 45 PM

Since interactive features obviously won't work on static export formats like PNG, they will be included automatically in an appendix when exporting to those formats, like so:

tooltip

This release also gives more power to configure layouts. width and height are D2 keywords which previously only worked on images, but now work on any non-containers. Additionally, all the layout engines have configurations exposed. D2 sets sensible defaults to each layout engine without any input, so this is meant to be an advanced feature for users who want that extra control.

Happy new years!

Features 🚀

Improvements 🧹

  • Watch mode renders fit to screen. #560

Bugfixes ⛑️

  • Fixes rendering class and table with empty headers. #498
  • Fixes rendering of sql_table with no columns. #553
  • Diagram bounding boxes account for stroke widths. #574
  • Restricts where near key constant values can be used, with good error messages, instead of erroring (e.g. setting near: top-center on a container would cause bad layouts or error). #538
  • Fixes panic when images with empty labels are rendered with ELK. #555

Breaking changes

  • For usages of D2 as a library, d2dagrelayout.Layout and d2elklayout.Layout now accept a third parameter for options. If you would like to keep the defaults, please change your code to call dagrelayout.DefaultLayout and d2elklayout.DefaultLayout respectively.