Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add dotted circle filter #593

Merged
merged 25 commits into from
Apr 25, 2022

Conversation

simoncozens
Copy link
Contributor

@simoncozens simoncozens commented Feb 28, 2022

Google Fonts' fontbakery tool has recently made it mandatory for fonts supporting complex scripts to contain a dotted circle (U+25CC) glyph, and for this glyph to have appropriate anchors for all attachable marks.

This is a boring job to do manually, and both the drawing and the anchor positioning can be automated.

This PR introduces a filter which can be called at font build time (--filter "ufo2ft.filters.dottedCircleFilter::DottedCircleFilter(pre=True)") which checks for the presence of a dotted circle glyph, adds one if there is not one present, computes average anchor positions for attaching anchors and adds any missing anchors to the dotted circle glyph.

Example:

$ fontmake -o ttf -g src/NotoNastaliqUrdu.glyphs --filter "ufo2ft.filters.dottedCircleFilter::DottedCircleFilter(pre=True,dots=10)"
...
$ shape master_ttf/NotoNastaliqUrdu-Regular.ttf '◌ِّ'
[uni25CC=0+727|ShaddaNS=0@-312,-97+0|KasraNS=0@-368,-164+0]

shape

@madig
Copy link
Collaborator

madig commented Mar 2, 2022

Very nice idea, but could use some tests! 😀 Plus docstrings.

Copy link
Member

@anthrotype anthrotype left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

this is a cool idea, thanks. Please consider adding a little test as well

@simoncozens
Copy link
Contributor Author

I do plan to add some tests.

@simoncozens
Copy link
Contributor Author

Good to go?

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.

4 participants