Work-Sans/sources/tools/makeGlyphsFileWithOnlyBraceGlyphs.py
2018-11-09 19:02:26 +11:00

51 lines
1.3 KiB
Python

# Make a .glyphs file with only brace glyphs to export
import sys
import re
from glyphsLib import GSFont
from glyphsLib import GSGlyph
from glyphsLib import GSLayer
file = sys.argv[1]
font = GSFont(file)
print "Preparing %s" % file
# Append Italic to font family naame if Italics
style = sys.argv[2]
if style == "Italic":
font.familyName = "%s %s" % (font.familyName, style)
# Clear all features
font.features = []
font.classes = []
font.featurePrefixes = []
# Remove Rename Glyphs custom parameter
for instance in font.instances:
for customParam in instance.customParameters:
if customParam.name == "Rename Glyphs":
del customParam
# Find brace glyphs
listOfBraceGlyphs = []
for eachGlyph in font.glyphs:
for eachLayer in eachGlyph.layers:
if re.match('.*\d\}$', eachLayer.name):
listOfBraceGlyphs += [eachGlyph.name]
print "Brace glyphs found: ", listOfBraceGlyphs
listOfBraceGlyphs += ["space", ".notdef"]
listOfGlyphsNotToExport = [g.name for g in font.glyphs if g.name not in listOfBraceGlyphs]
for eachGlyph in listOfGlyphsNotToExport:
font.glyphs[eachGlyph].export = 0
# for eachGlyph in listOfBraceGlyphs:
# try:
# font.glyphs[eachGlyph].export = 1
# except:
# pass
newFileName = file.replace(".glyphs", "-onlyBraceGlyphs.glyphs")
font.save(newFileName)