v0.7.0
What's Changed
- Plumb stop-opacity through layout.GradientStop by @carlos7ags in #146
- Fix CSS !important cascade at inline/stylesheet boundary (#137) by @carlos7ags in #144
- Fix panic on
inside and other inline elements (#147) by @carlos7ags in #149 - Land stress-test examples from #126 and fix stale README claims by @carlos7ags in #153
- Add comprehensive
-in-inline regression tests (#147, #10) by @carlos7ags in #151 - Replace magic-string line-break marker with TextRun.IsLineBreak (#150) by @carlos7ags in #156
- Add CJK line-breaking support with kinsoku shori rules by @carlos7ags in #157
- Add RTL text support: bidi, Arabic shaping, GSUB, HTML direction (#37, #160) by @carlos7ags in #148
- Add tmpl package: Go html/template integration for PDF generation by @carlos7ags in #155
- Support @font-face with base64 data URI fonts (#159) by @carlos7ags in #163
- Wire OpenType GSUB substitutions into Arabic shaper (#160) by @carlos7ags in #164
- Audit content package: validation, ISO 32000 operators, coverage by @carlos7ags in #166
- Audit core package: correctness fixes, tests, and gradual API cleanup by @carlos7ags in #165
- Harden image decoders against malicious input by @carlos7ags in #167
- Audit font package: sentinel errors, concurrency contract, coverage by @carlos7ags in #168
- Strengthen image tests, fix JPEG parser OOB found by fuzz by @carlos7ags in #169
- Segment text runs by Unicode script per UAX #24 by @carlos7ags in #170
- Parse and apply GSUB LookupType 4 ligature substitutions by @carlos7ags in #171
- Fix TrueType kern table coverage decode, cache pairs, measure kerning by @carlos7ags in #172
- Phase 2 audit follow-ups: composite glyph tests and Adobe CMYK JPEGs by @carlos7ags in #173
- Parse and apply GSUB LookupType 6 chaining contextual substitution by @carlos7ags in #174
- Parse OpenType GPOS pair and mark-to-base positioning by @carlos7ags in #175
- Implement UAX #29 grapheme clusters and snap bidi splits to cluster boundaries by @carlos7ags in #176
- Optimizer phase 1: cross-reference streams and object streams by @carlos7ags in #177
- Phase 3 audit follow-ups: SVG preserveAspectRatio and barcode fuzzers by @carlos7ags in #178
- Kashida (tatweel) justification for Arabic paragraphs by @carlos7ags in #179
- Emit /ActualText markers around shaped Arabic words by @carlos7ags in #180
- examples/optimize: multi-fixture comparison and README mention by @carlos7ags in #181
- Wire GSUB ligature features into Arabic shaping by @carlos7ags in #182
- Make font.MeasureString cluster-aware by @carlos7ags in #183
- Dispatch GSUB chain context actions to ligature and chain lookups by @carlos7ags in #184
- Wire GPOS mark-to-base anchors into the draw pipeline by @carlos7ags in #185
- Add Devanagari shaper for Hindi, Sanskrit, Marathi, Nepali by @carlos7ags in #186
- Bump golang.org/x/net from 0.52.0 to 0.53.0 by @dependabot[bot] in #188
- Bump golang.org/x/image from 0.38.0 to 0.39.0 by @dependabot[bot] in #189
- Fix multi-column layout: sequential balanced fill instead of round-robin by @carlos7ags in #193
- Bump softprops/action-gh-release from 2 to 3 by @dependabot[bot] in #200
- optimize: orphan sweep + size-regression guard primitive (#201) by @carlos7ags in #202
- optimize: Flate recompression of stream payloads (#203) by @carlos7ags in #204
- Add examples/indic program showing Devanagari shaping by @carlos7ags in #191
- optimize: structural deduplication + content stream operator cleanup by @carlos7ags in #205
Full Changelog: v0.6.2...v0.7.0