Skip to content

Conversation

@kaushikgopal
Copy link
Contributor

@kaushikgopal kaushikgopal commented Nov 19, 2025

Fixes issue #4

Problem:

  • The ss04 "Simplified i" feature uses a Type 2 substitution rule in the font (maps i → ['i.simple'])
  • opentype-feature-freezer lib only understood Type 1 substitution rules
  • When it encountered Type 2 rules, it silently skipped them
  • so customizations like ss04 never got applied to the generated fonts

Solution:

  • Remove opentype-feature-freezer dependency (doesn't support Type 2)
  • Create fontfreeze_activation.py (custom feature freezing script adapted from https://github.com/MuTsunTsai/fontfreeze)
  • Extended it to detect and process Type 2 substitution rules
  • Now when ss04 is enabled, it correctly freezes i → i.simple into the font's character map

# Problem:
- The ss04 "Simplified i" feature uses a Type 2 substitution rule in the
font (maps i → ['i.simple'])
- opentype-feature-freezer lib only understood Type 1 substitution rules
- When it encountered Type 2 rules, it silently skipped them
- so customizations like ss04 never got applied to the generated fonts

# Solution:
- Remove opentype-feature-freezer dependency (doesn't support Type 2)
- Create fontfreeze_activation.py (custom feature freezing script
adapted from https://github.com/MuTsunTsai/fontfreeze)
- Extended it to detect and process Type 2 substitution rules
- Now when ss04 is enabled, it correctly freezes i → i.simple into the
font's character map
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant