Releases: googlefonts/glyphsLib
Releases · googlefonts/glyphsLib
v3.1.1
- More robustly handle public.glyphOrder: It is now generated/recovered in the way Glyphs.app expects it, leading to fewer differences when round-tripping. See 11d1111 for details.
- Glyph classes are now always placed at the top of generated feature files: custom lookups are usually placed in the "Prefix" of a .glyphs file and may use these classes. Previously, classes were placed after them, breaking them.
- Fix parsing backslash escaped glyph names in features. Fixes googlefonts/fontmake#445.
- A
GDEF
table is now only generated byglyphs2ufo
if you pass the--generate-GDEF
argument. TheGDEF
table should only be generated if you are generating final binaries and may need the--propagate-anchors
argument to work properly. - Make sure fontMasterID lib keys in UFOs are unique and error out otherwise. This can happen if you make a new master outside Glyphs.app.
- Italic masters aren't named "Regular Italic" anymore.
v3.1.0
- [axes] Fixed issue when 'Axes' custom parameter is defined but not all the masters contain a 'Axis Location' custom parameter (#409, #411, #416).
- [kerning] Round-trip kerning pairs as they are between UFO and glyphs, without performing any conflict resolution (best left to compiler) (#407).
- [glyphs2ufo] Made normalization of UFOs opt-in, instead of opt-out. Use
-N
or--normalize-ufos
to enable this from the command line script. Requires the ufonormalizer module (#415). - [glyphdata] Embed GlyphData.xml And GlyphData_Ideographs.xml as package data files and parse them at run-time. Removed
glyphdata_generated
module. Expose 'script' and 'description' attributes of GlyphData database (#410). - [parser] Always return list of hex strings when parsing
unicode
attribute (#405, 95dd3cd). - Added pre-commit hooks configuration and automatic linting and code reformatting to the CI checks. Reformatted the whole codebase with black. Fixed a few flake8 linter issues (#414).
v3.0.3
- Correct handling of codePageRanges
- UFO's openTypeOS2CodePageRanges has a few bits that Glyphs doesn't support, save those to a custom parameter on round-tripping.
- Empty openTypeOS2CodePageRanges lists stay empty instead of being removed.
- Fix openTypeOS2Selection handling
- Store unsupported bits in a openTypeOS2SelectionUnsupportedBits custom value on round-tripping
- Empty lists are preserved on round-tripping
- openTypeOS2Selection will be sorted
- Properly handle categorization of glyph variants
- Non-spacing marks are properly categorized. This helps with proper feature building and zeros their width.
- Handle not only matches for full glyph names, but also ligatures and glyph
variants. Opportunistically concatenate uni* values. - Comment the code better.
- Round-trip italicAngle == zero
- glyphs2ufo: Make creating background layers optional (off by default)
v3.0.2
v3.0.1
Fixed 'ImportError: no module named interpolation' in fontmake
googlefonts/fontmake#451
v3.0.0
- Remove interpolation capabilities and thereby MutatorMath dependency. Use fontmake instead.
- Repurposed and extended glyphs2ufo and ufo2glyphs command-line scripts to round-trip between formats with as much metadata intact as possible.
- Fix a roundtrip bug where the Regular would be renamed to Normal
v2.4.0
v2.3.1
v2.3.0
Added:
glyphsLib.to_glyphs(DesignSpaceDocument | list<defcon.Font>) -> GSFont
has been implemented and can create a Glyphs font from either a designspace document + source UFOs, or from a list of UFOs.glyphsLib.to_designspace(GSFont) -> DesignSpaceDocument
can translate a Glyphs font into a designspace document and UFOs (reachable viadocument.sources[i].font
)to_ufos()
/to_designspace()
(resp.to_glyphs()
) have a new parameterminimize_glyphs_diffs
(resp.minimize_ufo_diffs
) which can be set to True when round-tripping. When true, glyphsLib stores more information in the produced file, in order to minimize diffs when coming back to the original file. It's interesting when using glyphsLib on files that are under version control.- Handle
Axes
and masters'Axis Location
custom parameters. - Handle Glyphs "annotations" (under a lib key in generated UFOs).
- Handle background images.
- Handle smart components axes and values (but NOT outlines: there is no interpolation of smart components yet).
- Handle multiple unicode values per glyph.
- Handle guidelines.
- Handle Glyphs hints (under a lib key in generated UFOs).
- Support Glyphs API methods:
GSFont.kerningForPair
,GSFont.setKerningForPair
,GSFont.removeKerningForPair
Fixed:
- Don't crash on references to components that don't exist
- Parse various formats for multiple unicode values.
- Parse binary data as hex-encoded bytes.
Changed:
- The command line argument
-R/--no-round
is now-r/--round-instances
and does the opposite. - The default names for the width and weight axes is now "Width" and "Weight" in the generated designspace documents.
v2.2.1
- Write the
grid
master property asgridLength
in the *.glyphs file. MakegridLength
a read-only property ofGSMaster
(equal tomaster.grid/master.gridSubDivisions
) (#298). - Allow parsing datetime string without explicit timezone (fa9cdc8).
- [MetaTools] Do not fetch license info when using external xml (#296).