mirror of
https://github.com/ryanoasis/nerd-fonts.git
synced 2024-11-19 16:39:20 +02:00
name-parser: Drop special handling for 'Windows Compatible'
[why] This just drops the 'windows compatibility' options in association with the name parser (i.e. --makegroups') as we want to always create fonts that work on any platform. Note that the fonts prodused right now are NOT windows compat anymore and you can not specify the flag. Violating 'git rules' this commit is not working correctly. But it is easier to do this in smaller steps. Signed-off-by: Fini Jastrow <ulf.fini.jastrow@desy.de>
This commit is contained in:
parent
619214c9ee
commit
037ab03f16
@ -262,16 +262,16 @@ function patch_font {
|
||||
PWD=`pwd`
|
||||
if [ -n "${verbose}" ]
|
||||
then
|
||||
echo "fontforge -quiet -script ${PWD}/font-patcher "$f" -q --also-windows $powerline $post_process --complete --no-progressbars --outputdir "${patched_font_dir}complete/" $config_patch_flags"
|
||||
echo "fontforge -quiet -script ${PWD}/font-patcher "$f" -q $powerline $post_process --complete --no-progressbars --outputdir "${patched_font_dir}complete/" $config_patch_flags"
|
||||
fi
|
||||
{ OUT=$(fontforge -quiet -script ${PWD}/font-patcher "$f" -q --also-windows $powerline $post_process --complete --no-progressbars \
|
||||
{ OUT=$(fontforge -quiet -script ${PWD}/font-patcher "$f" -q $powerline $post_process --complete --no-progressbars \
|
||||
--outputdir "${patched_font_dir}complete/" $config_patch_flags 2>&1 1>&3 3>&- ); } 3>&1
|
||||
if [ $? -ne 0 ]; then printf "$OUT\nPatcher run aborted!\n\n"; fi
|
||||
if [ -n "${verbose}" ]
|
||||
then
|
||||
echo "fontforge -quiet -script ${PWD}/font-patcher "$f" -q -s ${font_config} --also-windows $powerline $post_process --complete --no-progressbars --outputdir "${patched_font_dir}complete/" $config_patch_flags"
|
||||
echo "fontforge -quiet -script ${PWD}/font-patcher "$f" -q -s ${font_config} $powerline $post_process --complete --no-progressbars --outputdir "${patched_font_dir}complete/" $config_patch_flags"
|
||||
fi
|
||||
{ OUT=$(fontforge -quiet -script ${PWD}/font-patcher "$f" -q -s ${font_config} --also-windows $powerline $post_process --complete --no-progressbars \
|
||||
{ OUT=$(fontforge -quiet -script ${PWD}/font-patcher "$f" -q -s ${font_config} $powerline $post_process --complete --no-progressbars \
|
||||
--outputdir "${patched_font_dir}complete/" $config_patch_flags 2>&1 1>&3 3>&- ); } 3>&1
|
||||
if [ $? -ne 0 ]; then printf "$OUT\nPatcher run aborted!\n\n"; fi
|
||||
# wait for this group of background processes to finish to avoid forking too many processes
|
||||
|
@ -10,7 +10,6 @@ class FontnameParser:
|
||||
def __init__(self, filename):
|
||||
"""Parse a font filename and store the results"""
|
||||
self.parse_ok = False
|
||||
self.for_windows = False
|
||||
self.use_short_families = (False, False) # ( camelcase name, short styles )
|
||||
self.keep_regular_in_family = None # None = auto, True, False
|
||||
self.suppress_preferred_if_identical = True
|
||||
@ -49,11 +48,6 @@ class FontnameParser:
|
||||
else:
|
||||
return (FontnameTools.concat(self.basename, self.rest).replace(' ', ''), '')
|
||||
|
||||
def set_for_windows(self, for_windows):
|
||||
"""Create slightly different names, suitable for Windows use"""
|
||||
self.for_windows = for_windows
|
||||
return self
|
||||
|
||||
def set_keep_regular_in_family(self, keep):
|
||||
"""Familyname may contain 'Regular' where it should normally be suppressed"""
|
||||
self.keep_regular_in_family = keep
|
||||
@ -68,29 +62,6 @@ class FontnameParser:
|
||||
self.fontname_suff = fontname.replace(' ', '')
|
||||
self.family_suff = family.strip()
|
||||
return self
|
||||
# font-patcher behavior:
|
||||
# verboseSuff = "Nerd Font"
|
||||
# shortSuff = win ? "NF" : "Nerd Font"
|
||||
# verboseSuff += "Plus Font Awesome"
|
||||
# shortSuff += "A"
|
||||
# OR when complete:
|
||||
# shortSuff = "Nerd Font Complete"
|
||||
# verboseSuff = "Nerd Font Complete"
|
||||
# AND
|
||||
# shortSuff += "M"
|
||||
# verboseSuff += "Mono"
|
||||
#
|
||||
# fullname += verboseSuff
|
||||
# fontname += shortSuff
|
||||
# if win familyname += "NF"
|
||||
# else familyname += "Nerd Font"
|
||||
# if win fullname += "Windows Compatible"
|
||||
# if !win familyname += "Mono"
|
||||
#
|
||||
# THUS:
|
||||
# fontname => shortSuff
|
||||
# fullname => verboseSuff {{ we do the following already: }} + win ? "Windows Compatible" : ""
|
||||
# family => win ? "NF" : "Nerd Font" + mono ? "Mono" : ""
|
||||
|
||||
def enable_short_families(self, camelcase_name, prefix):
|
||||
"""Enable short styles in Family when (original) font name starts with prefix; enable CamelCase basename in (Typog.) Family"""
|
||||
@ -158,10 +129,6 @@ class FontnameParser:
|
||||
|
||||
def fullname(self):
|
||||
"""Get the SFNT Fullname (ID 4)"""
|
||||
if self.for_windows:
|
||||
win = 'Windows Compatible'
|
||||
else:
|
||||
win = ''
|
||||
styles = self.style_token
|
||||
weights = self.weight_token
|
||||
if self.keep_regular_in_family == None:
|
||||
@ -175,7 +142,7 @@ class FontnameParser:
|
||||
styles.remove('Regular')
|
||||
# For naming purposes we want Oblique to be part of the styles
|
||||
(weights, styles) = FontnameTools.make_oblique_style(weights, styles)
|
||||
return FontnameTools.concat(self.basename, self.rest, self.other_token, self.fullname_suff, win, weights, styles)
|
||||
return FontnameTools.concat(self.basename, self.rest, self.other_token, self.fullname_suff, weights, styles)
|
||||
|
||||
def psname(self):
|
||||
"""Get the SFNT PostScriptName (ID 6)"""
|
||||
|
29
font-patcher
29
font-patcher
@ -543,6 +543,8 @@ class font_patcher:
|
||||
variant_abbrev = ""
|
||||
variant_full = ""
|
||||
|
||||
ps_suffix = projectNameAbbreviation + variant_abbrev + additionalFontNameSuffix
|
||||
|
||||
# add 'Nerd Font' to beginning of name suffix
|
||||
verboseAdditionalFontNameSuffix = " " + projectNameSingular + variant_full + verboseAdditionalFontNameSuffix
|
||||
if self.args.windows: # attempt to shorten here on the additional name BEFORE trimming later
|
||||
@ -567,7 +569,6 @@ class font_patcher:
|
||||
print("Have only minimal naming information, check resulting name. Maybe omit --makegroups option")
|
||||
n.drop_for_powerline()
|
||||
n.enable_short_families(True, "Noto")
|
||||
n.set_for_windows(self.args.windows)
|
||||
|
||||
# All the following stuff is ignored in makegroups-mode
|
||||
|
||||
@ -721,18 +722,7 @@ class font_patcher:
|
||||
font.appendSFNTName(str('English (US)'), str('Compatible Full'), font.fullname)
|
||||
font.appendSFNTName(str('English (US)'), str('SubFamily'), subFamily)
|
||||
else:
|
||||
fam_suffix = projectNameSingular if not self.args.windows else projectNameAbbreviation
|
||||
if self.args.single:
|
||||
if self.args.windows:
|
||||
fam_suffix += 'M'
|
||||
else:
|
||||
fam_suffix += ' Mono'
|
||||
elif self.args.nonmono and not self.symbolsonly:
|
||||
if self.args.windows:
|
||||
fam_suffix += 'P'
|
||||
else:
|
||||
fam_suffix += ' Propo'
|
||||
n.inject_suffix(verboseAdditionalFontNameSuffix, additionalFontNameSuffix, fam_suffix)
|
||||
n.inject_suffix(verboseAdditionalFontNameSuffix, ps_suffix, projectNameAbbreviation + variant_abbrev)
|
||||
n.rename_font(font)
|
||||
|
||||
font.comment = projectInfo
|
||||
@ -1801,7 +1791,7 @@ def setup_arguments():
|
||||
parser.add_argument('-s', '--mono', '--use-single-width-glyphs', dest='single', default=False, action='count', help='Whether to generate the glyphs as single-width not double-width (default is double-width)')
|
||||
parser.add_argument('-l', '--adjust-line-height', dest='adjustLineHeight', default=False, action='store_true', help='Whether to adjust line heights (attempt to center powerline separators more evenly)')
|
||||
parser.add_argument('-q', '--quiet', '--shutup', dest='quiet', default=False, action='store_true', help='Do not generate verbose output')
|
||||
parser.add_argument('-w', '--windows', dest='windows', default=False, action='store_true', help='Limit the internal font name to 31 characters (for Windows compatibility)')
|
||||
parser.add_argument('-w', '--windows', dest='windows', default=False, action='store_true', help='Limit the internal font name to 31 characters (for Windows compatibility), ignored when --makegroups is given')
|
||||
parser.add_argument('-c', '--complete', dest='complete', default=False, action='store_true', help='Add all available Glyphs')
|
||||
parser.add_argument('--careful', dest='careful', default=False, action='store_true', help='Do not overwrite existing glyphs if detected')
|
||||
parser.add_argument('--removeligs', '--removeligatures', dest='removeligatures', default=False, action='store_true', help='Removes ligatures specificed in JSON configuration file')
|
||||
@ -1811,15 +1801,15 @@ def setup_arguments():
|
||||
parser.add_argument('-ext', '--extension', dest='extension', default="", type=str, nargs='?', help='Change font file type to create (e.g., ttf, otf)')
|
||||
parser.add_argument('-out', '--outputdir', dest='outputdir', default=".", type=str, nargs='?', help='The directory to output the patched font file to')
|
||||
parser.add_argument('--glyphdir', dest='glyphdir', default=__dir__ + "/src/glyphs/", type=str, nargs='?', help='Path to glyphs to be used for patching')
|
||||
parser.add_argument('--makegroups', dest='makegroups', default=False, action='store_true', help='Use alternative method to name patched fonts (experimental)')
|
||||
parser.add_argument('--makegroups', dest='makegroups', default=False, action='store_true', help='Use alternative method to name patched fonts (recommended)')
|
||||
parser.add_argument('--variable-width-glyphs', dest='nonmono', default=False, action='store_true', help='Do not adjust advance width (no "overhang")')
|
||||
|
||||
# progress bar arguments - https://stackoverflow.com/questions/15008758/parsing-boolean-values-with-argparse
|
||||
progressbars_group_parser = parser.add_mutually_exclusive_group(required=False)
|
||||
progressbars_group_parser.add_argument('--progressbars', dest='progressbars', action='store_true', help='Show percentage completion progress bars per Glyph Set')
|
||||
progressbars_group_parser.add_argument('--progressbars', dest='progressbars', action='store_true', help='Show percentage completion progress bars per Glyph Set (default)')
|
||||
progressbars_group_parser.add_argument('--no-progressbars', dest='progressbars', action='store_false', help='Don\'t show percentage completion progress bars per Glyph Set')
|
||||
parser.set_defaults(progressbars=True)
|
||||
parser.add_argument('--also-windows', dest='alsowindows', default=False, action='store_true', help='Create two fonts, the normal and the --windows version')
|
||||
parser.add_argument('--also-windows', dest='alsowindows', default=False, action='store_true', help='Create two fonts, the normal and the --windows version, ignored when --makegroups is given')
|
||||
parser.add_argument('--xavgcharwidth', dest='xavgwidth', default=None, type=int, nargs='?', help='Adjust xAvgCharWidth (optional: concrete value)', const=True)
|
||||
# --xavgcharwidth for compatibility with old applications like notepad and non-latin fonts
|
||||
# Possible values with examples:
|
||||
@ -1880,6 +1870,11 @@ def setup_arguments():
|
||||
if args.alsowindows:
|
||||
args.windows = False
|
||||
|
||||
if args.makegroups and (args.windows or args.alsowindows):
|
||||
printf("Warning: --windows and --also-windows are ignored when --makegroups is specified.")
|
||||
args.windows = False
|
||||
args.alsowindows = False
|
||||
|
||||
if args.nonmono and args.single:
|
||||
print("Warning: Specified contradicting --variable-width-glyphs and --use-single-width-glyph. Ignoring --variable-width-glyphs.")
|
||||
args.nonmono = False
|
||||
|
Loading…
Reference in New Issue
Block a user