v0.3.0
d2lang/d2v0.3.0Mar 30, 2023by alixander
AI Summary
This release focuses on optimization and composition, reducing SVG file sizes by 5% through font subsetting and enabling animations for multi-board diagrams.
Key Highlights
- SVG sizes are ~5% of previous versions due to font subsetting.
- Introduction of multi-board diagram animations via `--animate-interval`.
- Support for custom fonts via command-line flags.
- New 'Origami' theme.
New Features
- Flags to set a custom font
- `--animate-interval` flag to animate multi-board diagrams
- New `fill-pattern`: `paper`
- Fonts are subsetted to only include necessary characters
- New theme: Origami
Full Release Notes
D2 0.3 is here! ## Major updates: - SVG sizes are ~**5%** of what they were in D2 0.2. - The disproportionately largest contributor to this size was the font. Instead of encoding the entire font, D2 now only bundles only the used part of it (e.g. if you don't use the letter "b", the font encoding for "b" won't be included). - The first practical applications of multi-board compositions are here: animations. Composition is among D2's most powerful features, and these first applications are just the tip of the iceberg. Stay tuned for more in upcoming 0.3.x releases. See [docs](https://d2lang.com/tour/composition).  - Customizable fonts. You can pass in whatever you want to use through the command line. <img width="300" alt="Screen Shot 2023-03-29 at 8 27 45 PM" src="https://user-images.githubusercontent.com/3120367/228721122-577c8d28-5fbf-473e-924c-35f6f1e98fa1.png"> ### Other - New "Origami" theme <img width="550" alt="Screen Shot 2023-03-29 at 7 59 31 PM" src="https://user-images.githubusercontent.com/3120367/228721029-2136e162-e303-4b87-9da3-d8e6ad02af92.png"> #### Features ๐ - Flags to set a custom font are supported. See [docs](https://d2lang.com/tour/fonts). [#1108](https://github.com/terrastruct/d2/pull/1108) - `--animate-interval` can be passed as a flag to animate multi-board diagrams. See [docs](https://d2lang.com/tour/composition). [#1088](https://github.com/terrastruct/d2/pull/1088) - New `fill-pattern`: `paper` [#1070](https://github.com/terrastruct/d2/pull/1070) - Fonts are subsetted to only include what's necessary [#1089](https://github.com/terrastruct/d2/pull/1089) - New theme: Origami [#1110](https://github.com/terrastruct/d2/pull/1110) #### Improvements ๐งน - Prevent `tooltip` being set to a URL when `link` is already set (for security) [#1091](https://github.com/terrastruct/d2/pull/1091) - Scale arrowhead sizes appropriately to `stroke-width`. [#1101](https://github.com/terrastruct/d2/pull/1101) #### Bugfixes โ๏ธ - Prevents an object's `near` from targeting another object with `near` set to a constant [#1100](https://github.com/terrastruct/d2/pull/1100) - Fixes inaccurate bold edge label padding [#1108](https://github.com/terrastruct/d2/pull/1108) - Prevents Latex blocks from being uppercased in special themes [#1111](https://github.com/terrastruct/d2/pull/1111)