|
@@ -257,7 +257,9 @@ def build_stat(ttFont, sibling_ttFonts=[]):
|
|
|
buildStatTable(ttFont, res, macNames=False)
|
|
|
|
|
|
|
|
|
-def build_name_table(ttFont, family_name=None, style_name=None, siblings=[]):
|
|
|
+def build_name_table(
|
|
|
+ ttFont, family_name=None, style_name=None, siblings=[], aggressive=True
|
|
|
+):
|
|
|
from fontTools.varLib.instancer import setRibbiBits
|
|
|
|
|
|
log.info("Building name table")
|
|
@@ -265,9 +267,13 @@ def build_name_table(ttFont, family_name=None, style_name=None, siblings=[]):
|
|
|
family_name = family_name if family_name else name_table.getBestFamilyName()
|
|
|
style_name = style_name if style_name else name_table.getBestSubFamilyName()
|
|
|
if is_variable(ttFont):
|
|
|
- build_vf_name_table(ttFont, family_name, siblings=siblings)
|
|
|
+ build_vf_name_table(
|
|
|
+ ttFont, family_name, siblings=siblings, aggressive=aggressive
|
|
|
+ )
|
|
|
else:
|
|
|
- build_static_name_table_v1(ttFont, family_name, style_name)
|
|
|
+ build_static_name_table_v1(
|
|
|
+ ttFont, family_name, style_name, aggressive=aggressive
|
|
|
+ )
|
|
|
|
|
|
|
|
|
style_name = name_table.getBestSubFamilyName()
|
|
@@ -299,14 +305,16 @@ def _fvar_instance_collisions(ttFont, siblings=[]):
|
|
|
return len(family_styles) != len(set(family_styles))
|
|
|
|
|
|
|
|
|
-def build_vf_name_table(ttFont, family_name, siblings=[]):
|
|
|
+def build_vf_name_table(ttFont, family_name, siblings=[], aggressive=True):
|
|
|
|
|
|
assert is_variable(ttFont), "Not a VF!"
|
|
|
style_name = _vf_style_name(ttFont, family_name)
|
|
|
if _fvar_instance_collisions(ttFont, siblings):
|
|
|
- build_static_name_table_v1(ttFont, family_name, style_name)
|
|
|
+ build_static_name_table_v1(
|
|
|
+ ttFont, family_name, style_name, aggressive=aggressive
|
|
|
+ )
|
|
|
else:
|
|
|
- build_static_name_table(ttFont, family_name, style_name)
|
|
|
+ build_static_name_table(ttFont, family_name, style_name, aggressive=aggressive)
|
|
|
build_variations_ps_name(ttFont, family_name)
|
|
|
|
|
|
|
|
@@ -434,7 +442,7 @@ def build_fvar_instances(ttFont, axis_dflts={}):
|
|
|
fvar.instances = instances
|
|
|
|
|
|
|
|
|
-def build_static_name_table(ttFont, family_name, style_name):
|
|
|
+def build_static_name_table(ttFont, family_name, style_name, aggressive=True):
|
|
|
|
|
|
name_table = ttFont["name"]
|
|
|
name_table.removeNames(platformID=1)
|
|
@@ -506,23 +514,26 @@ def build_static_name_table(ttFont, family_name, style_name):
|
|
|
name_table.setName(v, *k)
|
|
|
|
|
|
|
|
|
- skip_ids = [i.numerator for i in NameID]
|
|
|
- for r in ttFont["name"].names:
|
|
|
- if r.nameID in skip_ids:
|
|
|
- continue
|
|
|
- current = r.toUnicode()
|
|
|
- if existing_name not in current:
|
|
|
- continue
|
|
|
- if " " not in current:
|
|
|
- replacement = current.replace(existing_name, family_name).replace(" ", "")
|
|
|
- else:
|
|
|
- replacement = current.replace(existing_name, family_name)
|
|
|
- ttFont["name"].setName(
|
|
|
- replacement, r.nameID, r.platformID, r.platEncID, r.langID
|
|
|
- )
|
|
|
+ if aggressive:
|
|
|
+ skip_ids = [i.numerator for i in NameID]
|
|
|
+ for r in ttFont["name"].names:
|
|
|
+ if r.nameID in skip_ids:
|
|
|
+ continue
|
|
|
+ current = r.toUnicode()
|
|
|
+ if existing_name not in current:
|
|
|
+ continue
|
|
|
+ if " " not in current:
|
|
|
+ replacement = current.replace(existing_name, family_name).replace(
|
|
|
+ " ", ""
|
|
|
+ )
|
|
|
+ else:
|
|
|
+ replacement = current.replace(existing_name, family_name)
|
|
|
+ ttFont["name"].setName(
|
|
|
+ replacement, r.nameID, r.platformID, r.platEncID, r.langID
|
|
|
+ )
|
|
|
|
|
|
|
|
|
-def build_static_name_table_v1(ttFont, family_name, style_name):
|
|
|
+def build_static_name_table_v1(ttFont, family_name, style_name, aggressive=True):
|
|
|
"""Pre VF name tables, this version can only accept wght + ital"""
|
|
|
non_weight_tokens = []
|
|
|
v1_tokens = []
|
|
@@ -547,7 +558,7 @@ def build_static_name_table_v1(ttFont, family_name, style_name):
|
|
|
style_name = style_name or "Regular"
|
|
|
log.debug(f"New family name: {family_name}")
|
|
|
log.debug(f"New style name: {style_name}")
|
|
|
- build_static_name_table(ttFont, family_name, style_name)
|
|
|
+ build_static_name_table(ttFont, family_name, style_name, aggressive)
|
|
|
|
|
|
|
|
|
def build_filename(ttFont):
|