v3.0.0
Users
- Add new command line option
--additional-fonts-recursive
(#30) - Support duplicate style name like VSFilter/libass (#31)
- Truncate font name to 31 characters like VSFilter if the user ask about it (#18)
- If two fonts have the same attributes, always collect the oldest font (#8)
- The collected fonts have appropriate filename capitalization (#34)
Developers
A big refactor have been done in #34. This break the compatibility with the version 2.1.4. I highly recommend you to look at this example.
- Distinct a font file from a font face.
There are now 2 kinds of font face. "Variable" is for variable font and "Normal" for the rest. - Know what is the language of a family name or a exact name
- From a FontFace, get the best name depending of the OS language via
ABCFontFace.get_best_family_name
/ABCFontFace.get_best_exact_name
. The user can also query a family name from a BCP47 tag viaABCFontFace.get_family_name_from_lang
/ABCFontFace.get_exact_name_from_lang
- Users can know implement their own ass document reader. They just need to extend the class ABCAssDocument
- Users can create their own strategy to find a font. They simply need to implement FontSelectionStrategy.
Also, the user can choose between 2 strategy (FontSelectionStrategyLibass and FontSelectionStrategyVSFilter) - Know if a font is a font collection (TTC/OTC file)
- Know what is the font type (opentype/truetype)
- Create a FontCollection class. It has the same responsabilities has the old FontLoader. The new FontLoader now only load the font cache, load a batch of fonts and load the system fonts.
- Add
need_faux_bold
attribute toFontResult
- Implemented typing for all the package
- Fallback to freetype when fontTools isn't able to read a cmap (#44)
- Bump FindSystemFontsFilename version to 0.3.0 (38160c6)
General
- Add mypy and pytest verification workflow (#33)