Dear Type Technicians,
I have posted a little piece of software in your favorite script language that you can use to hack your OpenType features into your fonts.
Dancing Shoes does not invent the features for you. But it takes care that they are put out in the correct order and syntax, and works around some possible bugs with FontLab’s built-in FDK compiler that should work according to the manual. For instance some script and language tags must not be preceded by others, although that should not be important according to the manual.
Dancing Shoes is especially useful if you generate feature code with multiple scripts, languages and lookupflags within one feature.
But it can also ease the recurring task of applying features to all your fonts. Because you’ll most likely always use the same naming scheme for your glyphs (.sc for SmallCaps etc), you can keep these in a separate, hard-coded file, and re-apply them with one click or from within another script.
You initialize the DancingShoes object:
from dancingshoes import DancingShoes
shoes = DancingShoes(glyphs, features)
glyphs is a list of your font’s glyph names and features your hard-coded and ordered list of feature names.
Then you can add substitutions like this:
shoes.AddSubstitution('liga', 'f i', 'fi')
or, more complicated:
shoes.AddSubstitution('rlig', 'afii57457 afii57455', 'uniFC61', 'arab', '', 'RightToLeft,IgnoreBaseGlyphs', 'ARABIC LIGATURE SHADDA WITH DAMMA ISOLATED FORM')
You can then print the feature code like this:
print shoes.GetFDKCode()
or, in case of a FontLab font object, use the helper funtion (font being your FontLab’s font object:
from dancingshoes.helpers import AssignFeatureCodeToFontLabFont
AssignFeatureCodeToFontLabFont(font, shoes)
For now, only substitutions and positioning lookups (Type 1 and 2) are supported. Which should be enough for most use scenarios. Other lookup types (like mark positioning) will be added later.
You’ll find it here, along with documentation:
http://www.yanone.de/typedesign/code/dancingshoes/
It’s free.
But as always: Should you use it for production of your professional fonts, a donation is highly appreciated.