googlefonts / googlefonts/glyphsLib

lib Keys

Open
#574 4 comments 0 reactions 0 assignees View on GitHub
Dominant language
Python
Stars
201
Forks
56
Avg merge
17m
Merged PRs (30d)
1

Description

I just worked a bit on how Glyphs writes custom parameters to .ufo. I compared that to how glyphsLib is doing it. Some of the keys are a bit "unusual".

`com.schriftgestaltung.customParameter.GSFont.DisplayStrings`
should be just
`com.schriftgestaltung.DisplayStrings`

There are some more that have contain `customParameter.GSFontXX` that shouldn’t have it:
```
com.schriftgestaltung.customParameter.GSFont.disablesAutomaticAlignment
com.schriftgestaltung.customParameter.GSFont.useNiceNames
com.schriftgestaltung.customParameter.GSFontMaster.customValue
com.schriftgestaltung.customParameter.GSFontMaster.customValue1
com.schriftgestaltung.customParameter.GSFontMaster.customValue2
com.schriftgestaltung.customParameter.GSFontMaster.customValue3
com.schriftgestaltung.customParameter.GSFontMaster.iconName
com.schriftgestaltung.customParameter.GSFontMaster.weightValue
com.schriftgestaltung.customParameter.GSFontMaster.widthValue
```
The master keys should only be written when not counting the default (`0` for the custom and `100` for the other two keys).

There is another `com.schriftgestaltung.weightValue` that is a duplicate of `com.schriftgestaltung.customParameter.GSFontMaster.weightValue` and this one is the key that Glyphs uses. It seems that for those shorter keys it almost does the right thing and only writes the relevant keys (it still writes `100` for weight or width).

And what is `com.schriftgestaltung.fontMasterOrder`?

Contributor guide

Open the contributing guide

Research direction

Start by tracing how glyphsLib serializes Glyphs custom parameters into UFO keys, then compare that behavior with the key list and defaults described in the issue. Done means the listed keys use the expected names and default values are omitted, with the purpose of fontMasterOrder clarified; the issue names no files or tests to run.

Written by the indexing model from the issue text.

Assessment

Tech stack
python
Domain
tooling
Issue type
Bug
Difficulty
3/5
Estimated time
1-2 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.