ci/release/changelogs/v0.1.0.md
When we launched D2 to open-source 2 weeks ago, we left the sprint after it a completely blank slate. Because, while we do have long-term goals, we wanted to make the first post-launch update focused 100% on addressing the biggest pain points that came up. Thank you so much to everyone who asked for or complained about something. Every item in this release was something that was posted on the D2 Discord, a GitHub issue/discussion, a comment on social media, or an email.
On top of the listed changes to core D2, we have been building out integrations, starting with Obsidian. Work has also begun on the API and Playground.
If you want a fast way to check out what a change looks like, we put screenshots in the PRs when it's a visual change.
Windows support has landed! See ./docs/INSTALL.md for usage instructions. #96
Sequence diagrams are now supported, experimentally. See docs. #99
Formatting of d2 scripts is supported on the CLI with the fmt subcommand. See man d2 or d2 --help. #292
direction keyword is now supported to specify up, down, right, left layouts. See docs for more.
#251
Self-referencing connections are now valid. E.g. x -> x. Render will vary based on layout engine. #273
Arrowhead labels are now supported. #182
Support for stroke-dash on shapes. #188
Support for font-color on shapes and connections. #215
Support for font-size on shapes and connections. #250
HTML IDs are now added in the SVG output. You can use this to query shapes and connections by ID post-render. #218
-b/--bundle flag to d2 bundles all image assets directly as base64 data urls. #278
install.sh now accepts -d as an alias for --dry-run. #266
icon keyword, e.g. icon: ./my_img.png. #146BROWSER=0 will disable opening a browser on --watch. #311d2 now lives in the root folder of the repository instead of as a subcommand. So you can now run go install oss.terrastruct.com/d2@latest to install from source. #290install.sh defaults to installation to /usr/local as before but now if /usr/local is not accessible to the current user, it will use ~/.local instead of prompting for sudo. You can pass --prefix /usr/local to force installation into /usr/local with a prompt for sudo. #372$BROWSER now works to open a custom browser correctly. For example, to open Firefox on macOS: BROWSER='open -a Firefox' #311dagre #321.