v0.7.1

pbakaus/impeccablev0.7.1Aug 19, 2025by alixander

AI Summary

This release enhances rendering capabilities with ASCII support and new arrowheads, introduces CLI flags for custom monospace fonts, and fixes several bugs related to diagram layout and glob behavior.

Key Highlights

  • ASCII rendering output for D2 diagrams
  • Custom monospace font options via CLI flags
  • Markdown, LaTeX, and code support for edge labels
  • Fix for double glob behavior in scenarios
  • New 'cross' arrowhead shape

Breaking Changes

  • If using D2 as a library/API, FontFamily with 'sketch' renders now applies the font instead of ignoring it.

New Features

  • ASCII renders
  • Cross arrowhead shape
  • Style underline support for class fields and methods
  • Markdown, LaTeX, and code as edge labels
  • Border-x label positioning
  • Tooltips with 'near' set always show
  • CLI supports customizing monospace fonts

Full Release Notes

#### Features ๐Ÿš€

- ASCII renders. Output `txt` for d2 to render diagrams as ASCII art [#2572](https://github.com/terrastruct/d2/pull/2572)
- `cross` arrowhead shape is available [#2190](https://github.com/terrastruct/d2/pull/2190)
- `style.underline` support for class fields and methods [#2544](https://github.com/terrastruct/d2/pull/2544)
- markdown, latex, and code can be used as edge labels [#2545](https://github.com/terrastruct/d2/pull/2545)
- border-x label positioning functionality [#2549](https://github.com/terrastruct/d2/pull/2549)
- tooltips with `near` set always show even without hover [#2564](https://github.com/terrastruct/d2/pull/2564)
- CLI supports customizing monospace fonts with `--font-mono`, `--font-mono-bold`, `--font-mono-italic`, and `--font-mono-semibold` flags [#2590](https://github.com/terrastruct/d2/pull/2590)

#### Improvements ๐Ÿงน

- labels on scenario/step boards can be set with primary value (like layers) [#2579](https://github.com/terrastruct/d2/pull/2579)
- autoformatter preserves order of boards [#2580](https://github.com/terrastruct/d2/pull/2580)
- rename "Legend" with a title/label of your choosing (especially useful for non-English diagrams) [#2582](https://github.com/terrastruct/d2/pull/2582)
- sketch mode fonts will use custom fonts if provided [#2582](https://github.com/terrastruct/d2/pull/2591)

#### Bugfixes โ›‘๏ธ

- actors in sequence diagrams with labels and icons together no longer overlap, position keywords now work too [#2548](https://github.com/terrastruct/d2/pull/2548)
- fix double glob behavior in scenarios (wasn't propagating correctly) [#2557](https://github.com/terrastruct/d2/pull/2557)
- fix diagram bounding box not accounting for legend in some cases [#2584](https://github.com/terrastruct/d2/pull/2584)

#### Breaking Changes

- If you are using D2 as a library/API, passing in a FontFamily with `sketch` renders will now use the font, instead of previously ignoring it.

---

For the latest d2.js changes, see separate [changelog](https://github.com/terrastruct/d2/blob/master/d2js/js/CHANGELOG.md).