diff --git a/changes/29.0.6.md b/changes/29.1.0.md similarity index 95% rename from changes/29.0.6.md rename to changes/29.1.0.md index e2a829887..6bf1f0ffb 100644 --- a/changes/29.0.6.md +++ b/changes/29.1.0.md @@ -1,3 +1,4 @@ +* Add support for naming override (#2275). * Fix broken glyphs for serifed variants of LATIN SMALL LETTER S WITH CURL (`U+1DF1E`). * Improve glyph visual for Bulgarian localization form for CYRILLIC CAPITAL LETTER EF (`U+0424`) under slab. * Make descender serif of CYRILLIC {CAPITAL|SMALL} LETTER KOPPA (`U+0480`..`U+0481`) appear under any serifed variants for `C`/`c`. diff --git a/doc/custom-build.md b/doc/custom-build.md index 430213522..9198a346d 100644 --- a/doc/custom-build.md +++ b/doc/custom-build.md @@ -81,7 +81,7 @@ Inside the plan, top-level properties include: * `webfontFormats`: Optional, Array of String. Controls the formats needed to be exported into the webfont CSS. Valid options are `'ttf'` and `'woff2'`, or including both. * `buildTextureFeature`: Optional, Boolean, whether to build the `TXTR` feature for cross-letter texture adjustments. Defaults to false. -Build plan could have 8 optional subsections: +Build plan could have 9 optional subsections: * `ligations` * `variants` * `weights` @@ -90,6 +90,7 @@ Build plan could have 8 optional subsections: * `compatibilityLigatures` * `excludeChars` * `metricOverride` +* `namingOverride` #### Configuring Ligations @@ -3307,6 +3308,21 @@ will: * Override the sidebearing value by its value multiplied by `1.0625` then added with `15`. * Override the dot size by a interpolation against weight: at thin (`100`) being `50`, at regular (`400`) being `125`, and at heavy (`900`) being `180`. +#### Naming Override + +The properties in the `namingOverride` section could be uase to override menu names of the produced font. The following properties will be applied to the font directly: + + - `copyright`: Name ID 0, copyright notice. + - `manufacturer`: Name ID 8, manufacturer name. + - `designer`: Name ID 9, designer name. + - `description`: Name ID 10, description of the typeface. + - `urlVendor`: Name ID 11, URL of font vendor. + - `urlDesigner`: Name ID 12, URL of typeface designer. + - `licence`: Name ID 13, license description. + - `licenceURL`: Name ID 14, license Info URL. + +In addition, you can also use the `version` property to override font version. The version number should follow [SemVer](https://semver.org/), like being `1.0.0`. + #### Sample Configuration A sample configuration could be found at [private-build-plans.sample.toml](https://github.com/be5invis/Iosevka/blob/master/private-build-plans.sample.toml). diff --git a/package-lock.json b/package-lock.json index 33b13a957..972a2033b 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "@iosevka/monorepo", - "version": "29.0.6", + "version": "29.1.0", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "@iosevka/monorepo", - "version": "29.0.6", + "version": "29.1.0", "workspaces": [ "packages/*", "tools/*" @@ -4310,16 +4310,16 @@ }, "packages/font": { "name": "@iosevka/font", - "version": "29.0.6", + "version": "29.1.0", "dependencies": { "@iarna/toml": "^2.2.5", - "@iosevka/font-glyphs": "29.0.6", - "@iosevka/font-otl": "29.0.6", - "@iosevka/geometry": "29.0.6", - "@iosevka/geometry-cache": "29.0.6", - "@iosevka/glyph": "29.0.6", - "@iosevka/param": "29.0.6", - "@iosevka/util": "29.0.6", + "@iosevka/font-glyphs": "29.1.0", + "@iosevka/font-otl": "29.1.0", + "@iosevka/geometry": "29.1.0", + "@iosevka/geometry-cache": "29.1.0", + "@iosevka/glyph": "29.1.0", + "@iosevka/param": "29.1.0", + "@iosevka/util": "29.1.0", "harfbuzzjs": "^0.3.4", "ot-builder": "^1.7.3", "semver": "^7.6.0" @@ -4327,100 +4327,100 @@ }, "packages/font-glyphs": { "name": "@iosevka/font-glyphs", - "version": "29.0.6", + "version": "29.1.0", "dependencies": { - "@iosevka/font-kits": "29.0.6", - "@iosevka/geometry": "29.0.6", - "@iosevka/geometry-cache": "29.0.6", - "@iosevka/glyph": "29.0.6", - "@iosevka/util": "29.0.6", + "@iosevka/font-kits": "29.1.0", + "@iosevka/geometry": "29.1.0", + "@iosevka/geometry-cache": "29.1.0", + "@iosevka/glyph": "29.1.0", + "@iosevka/util": "29.1.0", "typo-geom": "^0.15.1" } }, "packages/font-kits": { "name": "@iosevka/font-kits", - "version": "29.0.6", + "version": "29.1.0", "dependencies": { - "@iosevka/geometry": "29.0.6", - "@iosevka/glyph": "29.0.6", - "@iosevka/util": "29.0.6" + "@iosevka/geometry": "29.1.0", + "@iosevka/glyph": "29.1.0", + "@iosevka/util": "29.1.0" } }, "packages/font-otl": { "name": "@iosevka/font-otl", - "version": "29.0.6", + "version": "29.1.0", "dependencies": { - "@iosevka/font-glyphs": "29.0.6", - "@iosevka/glyph": "29.0.6", + "@iosevka/font-glyphs": "29.1.0", + "@iosevka/glyph": "29.1.0", "toposort": "^2.0.2" } }, "packages/geometry": { "name": "@iosevka/geometry", - "version": "29.0.6", + "version": "29.1.0", "dependencies": { - "@iosevka/util": "29.0.6", + "@iosevka/util": "29.1.0", "spiro": "^3.0.1", "typo-geom": "^0.15.1" } }, "packages/geometry-cache": { "name": "@iosevka/geometry-cache", - "version": "29.0.6", + "version": "29.1.0", "dependencies": { - "@iosevka/geometry": "29.0.6", + "@iosevka/geometry": "29.1.0", "@msgpack/msgpack": "^2.8.0" } }, "packages/glyph": { "name": "@iosevka/glyph", - "version": "29.0.6", + "version": "29.1.0", "dependencies": { - "@iosevka/geometry": "29.0.6" + "@iosevka/geometry": "29.1.0" } }, "packages/param": { "name": "@iosevka/param", - "version": "29.0.6", + "version": "29.1.0", "dependencies": { - "@iosevka/util": "29.0.6" + "@iosevka/util": "29.1.0" } }, "packages/util": { "name": "@iosevka/util", - "version": "29.0.6" + "version": "29.1.0" }, "tools/amend-readme": { "name": "@iosevka/amend-readme", - "version": "29.0.6", + "version": "29.1.0", "dependencies": { "@iarna/toml": "^2.2.5", - "@iosevka/param": "29.0.6", + "@iosevka/param": "29.1.0", "@unicode/unicode-15.1.0": "^1.5.2" } }, "tools/data-export": { "name": "@iosevka/data-export", - "version": "29.0.6", + "version": "29.1.0", "dependencies": { "@iarna/toml": "^2.2.5", - "@iosevka/param": "29.0.6", + "@iosevka/param": "29.1.0", "@unicode/unicode-15.1.0": "^1.5.2", "cldr": "^7.5.0" } }, "tools/generate-samples": { "name": "@iosevka/generate-samples", - "version": "29.0.6", + "version": "29.1.0", "dependencies": { - "@iosevka/data-export": "29.0.6" + "@iosevka/data-export": "29.1.0" } }, "tools/misc": { "name": "@iosevka/misc", - "version": "29.0.6", + "version": "29.1.0", "dependencies": { - "@iosevka/util": "29.0.6", + "@iosevka/util": "29.1.0", "semver": "^7.6.0", "wawoff2": "^2.0.1" } diff --git a/package.json b/package.json index 33f0e8acd..b491ec386 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@iosevka/monorepo", - "version": "29.0.6", + "version": "29.1.0", "workspaces": [ "packages/*", "tools/*" diff --git a/packages/font-glyphs/package.json b/packages/font-glyphs/package.json index 7178334e5..16e99a4fc 100644 --- a/packages/font-glyphs/package.json +++ b/packages/font-glyphs/package.json @@ -1,6 +1,6 @@ { "name": "@iosevka/font-glyphs", - "version": "29.0.6", + "version": "29.1.0", "private": true, "exports": { ".": "./src/index.mjs", @@ -8,11 +8,11 @@ "./unicode-knowledge": "./src/meta/unicode-knowledge.mjs" }, "dependencies": { - "@iosevka/font-kits": "29.0.6", - "@iosevka/geometry": "29.0.6", - "@iosevka/geometry-cache": "29.0.6", - "@iosevka/glyph": "29.0.6", - "@iosevka/util": "29.0.6", + "@iosevka/font-kits": "29.1.0", + "@iosevka/geometry": "29.1.0", + "@iosevka/geometry-cache": "29.1.0", + "@iosevka/glyph": "29.1.0", + "@iosevka/util": "29.1.0", "typo-geom": "^0.15.1" } } diff --git a/packages/font-kits/package.json b/packages/font-kits/package.json index 0e378df5e..e59493398 100644 --- a/packages/font-kits/package.json +++ b/packages/font-kits/package.json @@ -1,14 +1,14 @@ { "name": "@iosevka/font-kits", - "version": "29.0.6", + "version": "29.1.0", "private": true, "exports": { "./boole-kit": "./src/boole-kit.mjs", "./spiro-kit": "./src/spiro-kit.mjs" }, "dependencies": { - "@iosevka/geometry": "29.0.6", - "@iosevka/glyph": "29.0.6", - "@iosevka/util": "29.0.6" + "@iosevka/geometry": "29.1.0", + "@iosevka/glyph": "29.1.0", + "@iosevka/util": "29.1.0" } } diff --git a/packages/font-otl/package.json b/packages/font-otl/package.json index e6c539ca7..4238800fb 100644 --- a/packages/font-otl/package.json +++ b/packages/font-otl/package.json @@ -1,13 +1,13 @@ { "name": "@iosevka/font-otl", - "version": "29.0.6", + "version": "29.1.0", "private": true, "exports": { ".": "./src/index.mjs" }, "dependencies": { - "@iosevka/font-glyphs": "29.0.6", - "@iosevka/glyph": "29.0.6", + "@iosevka/font-glyphs": "29.1.0", + "@iosevka/glyph": "29.1.0", "toposort": "^2.0.2" } } diff --git a/packages/font/package.json b/packages/font/package.json index 7c432fcfe..dd601b596 100644 --- a/packages/font/package.json +++ b/packages/font/package.json @@ -1,6 +1,6 @@ { "name": "@iosevka/font", - "version": "29.0.6", + "version": "29.1.0", "private": true, "exports": { ".": "./src/index.mjs", @@ -10,13 +10,13 @@ }, "dependencies": { "@iarna/toml": "^2.2.5", - "@iosevka/font-glyphs": "29.0.6", - "@iosevka/font-otl": "29.0.6", - "@iosevka/geometry": "29.0.6", - "@iosevka/geometry-cache": "29.0.6", - "@iosevka/glyph": "29.0.6", - "@iosevka/param": "29.0.6", - "@iosevka/util": "29.0.6", + "@iosevka/font-glyphs": "29.1.0", + "@iosevka/font-otl": "29.1.0", + "@iosevka/geometry": "29.1.0", + "@iosevka/geometry-cache": "29.1.0", + "@iosevka/glyph": "29.1.0", + "@iosevka/param": "29.1.0", + "@iosevka/util": "29.1.0", "harfbuzzjs": "^0.3.4", "ot-builder": "^1.7.3", "semver": "^7.6.0" diff --git a/packages/font/src/index.mjs b/packages/font/src/index.mjs index 2bd651381..50c718450 100644 --- a/packages/font/src/index.mjs +++ b/packages/font/src/index.mjs @@ -70,10 +70,7 @@ async function getParametersT(argv) { if (argv.excludedCharRanges) para.excludedCharRanges = argv.excludedCharRanges; if (argv.compatibilityLigatures) para.compatibilityLigatures = argv.compatibilityLigatures; if (argv.metricOverride) applyMetricOverride(para, argv.metricOverride, argv); - para.naming = { - miscNames: para.naming, - ...createNamingDictFromArgv(argv), - }; + para.naming = { ...para.naming, ...createNamingDictFromArgv(argv) }; return para; } function paraT(argv) { diff --git a/packages/font/src/naming/index.mjs b/packages/font/src/naming/index.mjs index b21eaa267..161809f32 100644 --- a/packages/font/src/naming/index.mjs +++ b/packages/font/src/naming/index.mjs @@ -3,8 +3,12 @@ import semver from "semver"; export function createNamingDictFromArgv(argv) { return { + // Strings family: argv.menu.family, version: argv.menu.version, + ...argv.namingOverride, + + // Generated from argv property weight: argv.menu.weight - 0, width: argv.menu.width - 0, slope: argv.menu.slope, @@ -12,6 +16,14 @@ export function createNamingDictFromArgv(argv) { } export function assignFontNames(font, naming, isQuasiProportional) { + setMainNames(font, naming); + setMiscStyleProps(font, isQuasiProportional); + setInformaticNames(font, naming); + setVersion(font, naming); + applyMiscProps(font); +} + +function setMainNames(font, naming) { // Preferred names const family = naming.family.trim(); const style = getStyle(naming.weight, naming.width, naming.slope); @@ -21,7 +33,7 @@ export function assignFontNames(font, naming, isQuasiProportional) { nameFont(font, Ot.Name.NameID.WwsFamily, family); nameFont(font, Ot.Name.NameID.WwsSubfamily, style); - // Compat banes + // Compat names const compat = getStyleLinkedStyles(naming.weight, naming.width, naming.slope); let compatFamily = family; if (compat.familySuffix !== "Regular") compatFamily = family + " " + compat.familySuffix; @@ -65,7 +77,9 @@ export function assignFontNames(font, naming, isQuasiProportional) { [Ot.Head.MacStyle.Condensed, naming.width < 5], [Ot.Head.MacStyle.Extended, naming.width > 5] ); +} +function setMiscStyleProps(font, isQuasiProportional) { // Panose font.os2.panose.bFamilyType = 2; font.os2.panose.bContrast = 3; @@ -79,25 +93,57 @@ export function assignFontNames(font, naming, isQuasiProportional) { font.os2.panose.bProportion = 0; font.post.isFixedPitch = false; } +} - // Licensing - if (naming.miscNames) { - nameFont(font, Ot.Name.NameID.Copyright, ancNameEntry(naming.miscNames.copyright)); - nameFont(font, Ot.Name.NameID.Manufacturer, ancNameEntry(naming.miscNames.manufacturer)); - nameFont(font, Ot.Name.NameID.Designer, ancNameEntry(naming.miscNames.designer)); - nameFont(font, Ot.Name.NameID.Description, ancNameEntry(naming.miscNames.description)); - nameFont(font, Ot.Name.NameID.LicenseDescription, ancNameEntry(naming.miscNames.licence)); +function setInformaticNames(font, naming) { + if (naming.copyright) { + nameFont(font, Ot.Name.NameID.Copyright, ancNameEntry(naming.copyright)); } + if (naming.manufacturer) { + nameFont(font, Ot.Name.NameID.Manufacturer, ancNameEntry(naming.manufacturer)); + } + if (naming.designer) { + nameFont(font, Ot.Name.NameID.Designer, ancNameEntry(naming.designer)); + } + if (naming.description) { + nameFont(font, Ot.Name.NameID.Description, ancNameEntry(naming.description)); + } + if (naming.urlVendor) { + nameFont(font, Ot.Name.NameID.UrlVendor, ancNameEntry(naming.urlVendor)); + } + if (naming.urlDesigner) { + nameFont(font, Ot.Name.NameID.UrlDesigner, ancNameEntry(naming.urlDesigner)); + } + if (naming.licence) { + nameFont(font, Ot.Name.NameID.LicenseDescription, ancNameEntry(naming.licence)); + } + if (naming.license) { + nameFont(font, Ot.Name.NameID.LicenseDescription, ancNameEntry(naming.license)); + } + if (naming.licenceURL) { + nameFont(font, Ot.Name.NameID.LicenseInfoUrl, ancNameEntry(naming.licenceURL)); + } + if (naming.licenseURL) { + nameFont(font, Ot.Name.NameID.LicenseInfoUrl, ancNameEntry(naming.licenseURL)); + } +} - // Version - nameFont(font, Ot.Name.NameID.VersionString, `Version ${naming.version}`); - const majorVersion = semver.major(naming.version); - const minorVersion = semver.minor(naming.version); - const patchVersion = semver.patch(naming.version); - if (minorVersion > 99 || patchVersion > 99) throw new RangeError("Version number overflow"); - font.head.fontRevision = majorVersion + (minorVersion * 10 + patchVersion) / 1000; +function setVersion(font, naming) { + if (naming.version) { + // Trim the "Version " prefix if it exists + const versionString = naming.version.trim().replace(/^Version\s+/i, ""); + const ver = semver.parse(versionString); + if (!ver) throw new Error(`Version string ${naming.version} does not follow semver format`); + if (ver.minor > 99 || ver.patch > 99) throw new RangeError("Version number overflow"); - // Misc + // Set Name entry + nameFont(font, Ot.Name.NameID.VersionString, `Version ${versionString}`); + // Set Font Revision + font.head.fontRevision = ver.major + (ver.minor * 100 + ver.patch) / 10000; + } +} + +function applyMiscProps(font) { font.os2.ulCodePageRange1 = 0x2000011f; font.os2.ulCodePageRange2 = 0xc4000000; font.head.flags = accumulateFlags( diff --git a/packages/geometry-cache/package.json b/packages/geometry-cache/package.json index a4319e60c..e75f110de 100644 --- a/packages/geometry-cache/package.json +++ b/packages/geometry-cache/package.json @@ -1,12 +1,12 @@ { "name": "@iosevka/geometry-cache", - "version": "29.0.6", + "version": "29.1.0", "private": true, "exports": { ".": "./src/index.mjs" }, "dependencies": { - "@iosevka/geometry": "29.0.6", + "@iosevka/geometry": "29.1.0", "@msgpack/msgpack": "^2.8.0" } } diff --git a/packages/geometry/package.json b/packages/geometry/package.json index 82453cdf8..a098e9540 100644 --- a/packages/geometry/package.json +++ b/packages/geometry/package.json @@ -1,20 +1,20 @@ { - "name": "@iosevka/geometry", - "version": "29.0.6", - "private": true, - "exports": { - ".": "./src/index.mjs", - "./anchor": "./src/anchor.mjs", - "./box": "./src/box.mjs", - "./segment": "./src/segment.mjs", - "./curve-util": "./src/curve-util.mjs", - "./point": "./src/point.mjs", - "./transform": "./src/transform.mjs", - "./spiro-control": "./src/spiro-control.mjs" - }, - "dependencies": { - "@iosevka/util": "29.0.6", - "spiro": "^3.0.1", - "typo-geom": "^0.15.1" - } + "name": "@iosevka/geometry", + "version": "29.1.0", + "private": true, + "exports": { + ".": "./src/index.mjs", + "./anchor": "./src/anchor.mjs", + "./box": "./src/box.mjs", + "./segment": "./src/segment.mjs", + "./curve-util": "./src/curve-util.mjs", + "./point": "./src/point.mjs", + "./transform": "./src/transform.mjs", + "./spiro-control": "./src/spiro-control.mjs" + }, + "dependencies": { + "@iosevka/util": "29.1.0", + "spiro": "^3.0.1", + "typo-geom": "^0.15.1" + } } diff --git a/packages/glyph/package.json b/packages/glyph/package.json index b057a5bf1..d2456ab03 100644 --- a/packages/glyph/package.json +++ b/packages/glyph/package.json @@ -1,6 +1,6 @@ { "name": "@iosevka/glyph", - "version": "29.0.6", + "version": "29.1.0", "private": true, "exports": { ".": "./src/glyph.mjs", @@ -9,6 +9,6 @@ "./relation": "./src/relation.mjs" }, "dependencies": { - "@iosevka/geometry": "29.0.6" + "@iosevka/geometry": "29.1.0" } } diff --git a/packages/param/package.json b/packages/param/package.json index 126b6ea89..f1df547f1 100644 --- a/packages/param/package.json +++ b/packages/param/package.json @@ -1,6 +1,6 @@ { "name": "@iosevka/param", - "version": "29.0.6", + "version": "29.1.0", "private": true, "exports": { ".": "./src/index.mjs", @@ -9,6 +9,6 @@ "./metric-override": "./src/metric-override.mjs" }, "dependencies": { - "@iosevka/util": "29.0.6" + "@iosevka/util": "29.1.0" } } diff --git a/packages/util/package.json b/packages/util/package.json index f9dd473a8..3f5bb90f1 100644 --- a/packages/util/package.json +++ b/packages/util/package.json @@ -1,6 +1,6 @@ { "name": "@iosevka/util", - "version": "29.0.6", + "version": "29.1.0", "private": true, "exports": { ".": "./src/index.mjs", diff --git a/params/parameters.toml b/params/parameters.toml index cc4debe4e..e06f0199e 100644 --- a/params/parameters.toml +++ b/params/parameters.toml @@ -4,10 +4,11 @@ [iosevka] naming.copyright = 'Copyright 2015-{{currentYear}}, Renzhi Li (aka. Belleve Invis, belleve@typeof.net).' -naming.licence = '''This font software is licenced under the SIL Open Font Licence, Version 1.1. This licence is available with a FAQ at: http://scripts.sil.org/OFL. This font software is distributed on an 'AS IS' basis, without warranties or conditions of any kind, either express or implied. See the SIL Open Font licence for the specific language, permissions and limitations governing your use of this font software.''' naming.manufacturer = 'Belleve Invis' naming.designer = 'Belleve Invis' naming.description = 'Spatial efficient monospace font family for programming. Built from code. http://be5invis.github.io/Iosevka' +naming.licence = '''This font software is licenced under the SIL Open Font Licence, Version 1.1. This licence is available with a FAQ at: http://scripts.sil.org/OFL. This font software is distributed on an 'AS IS' basis, without warranties or conditions of any kind, either express or implied. See the SIL Open Font licence for the specific language, permissions and limitations governing your use of this font software.''' +naming.licenceURL = 'https://openfontlicense.org/' leading = 1250 # Default line height times 1000. descenderPad = 0 # Additional line height, added to descender. diff --git a/tools/amend-readme/package.json b/tools/amend-readme/package.json index f8bd1bedf..04b738498 100644 --- a/tools/amend-readme/package.json +++ b/tools/amend-readme/package.json @@ -1,13 +1,13 @@ { "name": "@iosevka/amend-readme", - "version": "29.0.6", + "version": "29.1.0", "private": true, "exports": { ".": "./src/index.mjs" }, "dependencies": { "@iarna/toml": "^2.2.5", - "@iosevka/param": "29.0.6", + "@iosevka/param": "29.1.0", "@unicode/unicode-15.1.0": "^1.5.2" } } diff --git a/tools/data-export/package.json b/tools/data-export/package.json index 94cab332b..df3ecd1c2 100644 --- a/tools/data-export/package.json +++ b/tools/data-export/package.json @@ -1,6 +1,6 @@ { "name": "@iosevka/data-export", - "version": "29.0.6", + "version": "29.1.0", "private": true, "exports": { ".": "./src/index.mjs", @@ -10,7 +10,7 @@ }, "dependencies": { "@iarna/toml": "^2.2.5", - "@iosevka/param": "29.0.6", + "@iosevka/param": "29.1.0", "@unicode/unicode-15.1.0": "^1.5.2", "cldr": "^7.5.0" } diff --git a/tools/generate-samples/package.json b/tools/generate-samples/package.json index bfddc6fc3..07cd27904 100644 --- a/tools/generate-samples/package.json +++ b/tools/generate-samples/package.json @@ -1,11 +1,11 @@ { "name": "@iosevka/generate-samples", - "version": "29.0.6", + "version": "29.1.0", "private": true, "exports": { ".": "./src/index.mjs" }, "dependencies": { - "@iosevka/data-export": "29.0.6" + "@iosevka/data-export": "29.1.0" } } diff --git a/tools/misc/package.json b/tools/misc/package.json index 4a6b7df47..a6f06aa0a 100644 --- a/tools/misc/package.json +++ b/tools/misc/package.json @@ -1,10 +1,10 @@ { "name": "@iosevka/misc", - "version": "29.0.6", + "version": "29.1.0", "private": true, "dependencies": { "semver": "^7.6.0", "wawoff2": "^2.0.1", - "@iosevka/util": "29.0.6" + "@iosevka/util": "29.1.0" } } diff --git a/verdafile.mjs b/verdafile.mjs index 2e0cd603c..69126c07f 100644 --- a/verdafile.mjs +++ b/verdafile.mjs @@ -302,6 +302,8 @@ const FontInfoOf = computed.group("metadata:font-info-of", async (target, fileNa slope: sfi.shapeSlope, slopeAngle: sfi.shapeSlopeAngle, }, + // Naming + namingOverride: bp.namingOverride || null, // Menu menu: { family: bp.family,