diff --git a/CHANGELOG.md b/CHANGELOG.md index ac9cfec..792f93f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,9 +6,39 @@ format is based on [Keep a Changelog], and this project aims to follow ## [Unreleased] +## [0.15.0] - 2024-06-06 + +### Added + +- Support for instancing variable fonts and reading variable font + related tables such as `fvar`, `gvar`, `avar`. +- Support for CFF2: Reading, instancing, subsetting to CFF, and extracting + outlines. +- Refactor Glyph types to be more compact and track phantom points. +- Ability to generate a HTML font specimen. Gated behind off-by-default + `specimen` feature. + ### Changed - Use default feature mask when shaping Thai and Lao text. +- `pathfinder_geometry` is no longer optional as it's used for variable fonts. +- Apply `rvrn` early in shaping. +- Use bitflags for `macStyle` and `fsSelection`. +- Introduce `RawGlyphFlags` for tracking glyph flags. +- Add `ParseError::UnsuitableCmap` and change `Font::new` to return + `Result` instead of `Result, _>`. + +### Fixed + +- Fix registry and ordering when converting CFF Type 1 to CID. +- Recognise Apple's `true` magic for TrueType fonts. + +## [0.14.2] - 2024-05-29 + +### Fixed + +- Fix issue where some mark-to-mark positioning was incorrect. + [#107](https://github.com/yeslogic/allsorts/issues/107) ## [0.14.1] - 2023-08-15 @@ -236,7 +266,9 @@ format is based on [Keep a Changelog], and this project aims to follow - Initial release -[Unreleased]: https://github.com/yeslogic/allsorts/compare/v0.14.1...HEAD +[Unreleased]: https://github.com/yeslogic/allsorts/compare/v0.15.0...HEAD +[0.15.0]: https://github.com/yeslogic/allsorts/compare/v0.14.2...v0.15.0 +[0.14.2]: https://github.com/yeslogic/allsorts/compare/v0.14.1...v0.14.2 [0.14.1]: https://github.com/yeslogic/allsorts/compare/v0.14.0...v0.14.1 [0.14.0]: https://github.com/yeslogic/allsorts/compare/v0.13.0...v0.14.0 [0.13.0]: https://github.com/yeslogic/allsorts/compare/v0.12.1...v0.13.0 diff --git a/Cargo.toml b/Cargo.toml index ba08b4b..a977fed 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "allsorts" -version = "0.14.1" +version = "0.15.0" authors = ["YesLogic Pty. Ltd. "] edition = "2018" diff --git a/README.md b/README.md index 6a8a9bb..c02d61e 100644 --- a/README.md +++ b/README.md @@ -36,12 +36,13 @@ which aims to specify OpenType font shaping behaviour. ## Features -* **Parse** TrueType (`ttf`), OpenType (`otf`), WOFF, and WOFF2 files. +* **Parse** TrueType/OpenType (`glyf`, `CFF`, `CFF2`), WOFF, and WOFF2 files. * **Shape** Arabic, Cyrillic, Greek, Hebrew, [Indic scripts](https://en.wikipedia.org/wiki/Languages_of_India) (Bengali, Devanagari, Gujarati, Gurmukhi, Kannada, Malayalam, Oriya, Sinhala, Tamil, Telugu), Khmer, Lao, Latin, Syriac, Thai, and other scripts. * **Subset** from TrueType, OpenType, WOFF, and WOFF2 files into OpenType. +* **Instance** variable fonts into non-variable fonts. ## What is font shaping? @@ -79,8 +80,8 @@ Known limitations: ## Development Status Allsorts is still under active development but reached its first release -milestone with its inclusion in Prince 13. In Prince it is responsible for -all font loading, and font shaping. +milestone with its inclusion in Prince 13 in 2019. In Prince it is responsible +for all font loading, and font shaping. Currently, the font parsing code is handwritten. It is planned for this to eventually be replaced by machine generated code via our [declarative data