Skip to content

Releases: moi15moi/FontCollector

v3.0.0

09 Jun 17:21
Compare
Choose a tag to compare

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 via ABCFontFace.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 to FontResult
  • 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)

v3.0.0rc2

03 May 16:40
Compare
Choose a tag to compare
v3.0.0rc2 Pre-release
Pre-release
  • Fallback to freetype when fontTools isn't able to read a cmap (#44)

v3.0.0c1

29 Apr 17:46
Compare
Choose a tag to compare
v3.0.0c1 Pre-release
Pre-release

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 via ABCFontFace.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 to FontResult
  • Implemented typing for all the package

General

  • Add mypy and pytest verification workflow (#33)

v2.1.4

29 Oct 16:14
Compare
Choose a tag to compare
  • Update the build system AND add automatic package uploads to PyPI (#27)

v2.1.3

08 Oct 23:03
Compare
Choose a tag to compare
  • Use the same method as GDI for get_decoded_name (#25)
  • Get missing glyphs - Use freetype instead of fonttools + fixes (#26)
    • This introduce a new parameter support_only_ascii_char_for_symbol_font for Font::get_missing_glyphs. For more detail, see the documentation.

v2.1.2

28 Jul 00:24
c5b3a4f
Compare
Choose a tag to compare

Add --collect-draw-fonts arguments
To know when use this argument, see: libass/libass#617

v2.1.1

16 Jun 01:07
d44279d
Compare
Choose a tag to compare

Replace matplolib by FindSystemFontsFilename

v2.1.0

27 Mar 01:11
cea4426
Compare
Choose a tag to compare

Corrected bugs:

  • Correct the variable font algorithm to match the GDI implementation
  • Mimic how GDI decode an NameRecord

v2.0.5

27 Feb 03:17
60b0e60
Compare
Choose a tag to compare

Corrected bugs:

  • If an .ass file did not contain an WrapStyle element in the [Script Info] section, it would previously raise an exception. Now, if it isn't specified, we use the WrapStyle 0 like libass/VSFilter.
  • Transform cmap codepoint into string like VSFilter/Libass.
  • Transform name into string like VSFilter (it basically doesn't impact any font.

v2.0.4

04 Feb 22:21
21276d8
Compare
Choose a tag to compare

New feature:

  • If there is an unknow problem while parsing a font, raise an exception with a message that contain the font path

Corrected bugs:

  • If the AxisValueArray is None, return an empty array which won't raise an exception