From b261aab1ee2216fbb11ac8792d8e931d3ed44c56 Mon Sep 17 00:00:00 2001 From: be5invis Date: Sun, 12 Nov 2023 01:44:32 -0800 Subject: [PATCH] Change configuration properties to camelCase --- build-plans.toml | 252 ++++++++++----------- changes/28.0.0-alpha.1.md | 9 + changes/archives/27.x/27.3.5.md | 2 +- changes/archives/3.x/3.0.0.md | 2 +- changes/archives/9.x/9.0.0.md | 4 +- doc/custom-build.md | 37 ++- font-src/glyphs/auto-build/transformed.ptl | 2 +- font-src/otl/index.ptl | 2 +- font-src/support/parameters.mjs | 2 +- private-build-plans.sample.toml | 38 ++-- verdafile.mjs | 49 ++-- 11 files changed, 224 insertions(+), 175 deletions(-) diff --git a/build-plans.toml b/build-plans.toml index 992417df0..52e81a9c9 100644 --- a/build-plans.toml +++ b/build-plans.toml @@ -10,21 +10,21 @@ desc = "Default" buildCharMap = true snapshotFamily = 'Iosevka' snapshotFeature = {"NWID" = 0} -export-glyph-names = true +exportGlyphNames = true [buildPlans.IosevkaTerm] family = "Iosevka Term" spacing = "term" snapshotFamily = 'Iosevka' snapshotFeature = {"NWID" = 1} -export-glyph-names = true +exportGlyphNames = true [buildPlans.IosevkaFixed] family = "Iosevka Fixed" spacing = "fixed" snapshotFamily = 'Iosevka' snapshotFeature = {"NWID" = 1} -export-glyph-names = true +exportGlyphNames = true # Slab [buildPlans.IosevkaSlab] @@ -33,7 +33,7 @@ desc = "Slab-serif" serifs = "slab" snapshotFamily = 'Iosevka Slab' snapshotFeature = {"NWID" = 0} -export-glyph-names = true +exportGlyphNames = true [buildPlans.IosevkaTermSlab] family = "Iosevka Term Slab" @@ -41,7 +41,7 @@ serifs = "slab" spacing = "term" snapshotFamily = 'Iosevka Slab' snapshotFeature = {"NWID" = 1} -export-glyph-names = true +exportGlyphNames = true [buildPlans.IosevkaFixedSlab] family = "Iosevka Fixed Slab" @@ -49,7 +49,7 @@ serifs = "slab" spacing = "fixed" snapshotFamily = 'Iosevka Slab' snapshotFeature = {"NWID" = 1} -export-glyph-names = true +exportGlyphNames = true # Curly [buildPlans.IosevkaCurly] @@ -57,7 +57,7 @@ family = "Iosevka Curly" desc = "Curly Style" snapshotFamily = 'Iosevka' snapshotFeature = {"ss20" = 1} -export-glyph-names = true +exportGlyphNames = true [buildPlans.IosevkaCurly.variants] inherits = "ss20" @@ -66,7 +66,7 @@ family = "Iosevka Term Curly" spacing = "term" snapshotFamily = 'Iosevka' snapshotFeature = {"NWID" = 1, "ss20" = 1} -export-glyph-names = true +exportGlyphNames = true [buildPlans.IosevkaTermCurly.variants] inherits = "ss20" @@ -75,7 +75,7 @@ family = "Iosevka Fixed Curly" spacing = "fixed" snapshotFamily = 'Iosevka' snapshotFeature = {"NWID" = 1, "ss20" = 1} -export-glyph-names = true +exportGlyphNames = true [buildPlans.IosevkaFixedCurly.variants] inherits = "ss20" @@ -86,7 +86,7 @@ desc = "Curly Style, Slab-serif" serifs = "slab" snapshotFamily = 'Iosevka Slab' snapshotFeature = {"ss20" = 1} -export-glyph-names = true +exportGlyphNames = true [buildPlans.IosevkaCurlySlab.variants] inherits = "ss20" @@ -96,7 +96,7 @@ serifs = "slab" spacing = "term" snapshotFamily = 'Iosevka Slab' snapshotFeature = {"NWID" = 1, "ss20" = 1} -export-glyph-names = true +exportGlyphNames = true [buildPlans.IosevkaTermCurlySlab.variants] inherits = "ss20" @@ -106,7 +106,7 @@ serifs = "slab" spacing = "fixed" snapshotFamily = 'Iosevka Slab' snapshotFeature = {"NWID" = 1, "ss20" = 1} -export-glyph-names = true +exportGlyphNames = true [buildPlans.IosevkaFixedCurlySlab.variants] inherits = "ss20" @@ -117,8 +117,8 @@ family = "Iosevka SS01" desc = "Andale Mono Style" snapshotFamily = 'Iosevka' snapshotFeature = {"ss01" = 1} -export-glyph-names = true -no-cv-ss = true +exportGlyphNames = true +noCvSs = true [buildPlans.IosevkaSS01.variants] inherits = "ss01" @@ -127,8 +127,8 @@ family = "Iosevka Term SS01" spacing = "term" snapshotFamily = 'Iosevka' snapshotFeature = {"NWID" = 1, "ss01" = 1} -export-glyph-names = true -no-cv-ss = true +exportGlyphNames = true +noCvSs = true [buildPlans.IosevkaTermSS01.variants] inherits = "ss01" @@ -137,8 +137,8 @@ family = "Iosevka Fixed SS01" spacing = "fixed" snapshotFamily = 'Iosevka' snapshotFeature = {"NWID" = 1, "ss01" = 1} -export-glyph-names = true -no-cv-ss = true +exportGlyphNames = true +noCvSs = true [buildPlans.IosevkaFixedSS01.variants] inherits = "ss01" @@ -148,8 +148,8 @@ family = "Iosevka SS02" desc = "Anonymous Pro Style" snapshotFamily = 'Iosevka' snapshotFeature = {"ss02" = 1} -export-glyph-names = true -no-cv-ss = true +exportGlyphNames = true +noCvSs = true [buildPlans.IosevkaSS02.variants] inherits = "ss02" @@ -158,8 +158,8 @@ family = "Iosevka Term SS02" spacing = "term" snapshotFamily = 'Iosevka' snapshotFeature = {"NWID" = 1, "ss02" = 1} -export-glyph-names = true -no-cv-ss = true +exportGlyphNames = true +noCvSs = true [buildPlans.IosevkaTermSS02.variants] inherits = "ss02" @@ -168,8 +168,8 @@ family = "Iosevka Fixed SS02" spacing = "fixed" snapshotFamily = 'Iosevka' snapshotFeature = {"NWID" = 1, "ss02" = 1} -export-glyph-names = true -no-cv-ss = true +exportGlyphNames = true +noCvSs = true [buildPlans.IosevkaFixedSS02.variants] inherits = "ss02" @@ -179,8 +179,8 @@ family = "Iosevka SS03" desc = "Consolas Style" snapshotFamily = 'Iosevka' snapshotFeature = {"ss03" = 1} -export-glyph-names = true -no-cv-ss = true +exportGlyphNames = true +noCvSs = true [buildPlans.IosevkaSS03.variants] inherits = "ss03" @@ -189,8 +189,8 @@ family = "Iosevka Term SS03" spacing = "term" snapshotFamily = 'Iosevka' snapshotFeature = {"NWID" = 1, "ss03" = 1} -export-glyph-names = true -no-cv-ss = true +exportGlyphNames = true +noCvSs = true [buildPlans.IosevkaTermSS03.variants] inherits = "ss03" @@ -199,8 +199,8 @@ family = "Iosevka Fixed SS03" spacing = "fixed" snapshotFamily = 'Iosevka' snapshotFeature = {"NWID" = 1, "ss03" = 1} -export-glyph-names = true -no-cv-ss = true +exportGlyphNames = true +noCvSs = true [buildPlans.IosevkaFixedSS03.variants] inherits = "ss03" @@ -210,8 +210,8 @@ family = "Iosevka SS04" desc = "Menlo Style" snapshotFamily = 'Iosevka' snapshotFeature = {"ss04" = 1} -export-glyph-names = true -no-cv-ss = true +exportGlyphNames = true +noCvSs = true [buildPlans.IosevkaSS04.variants] inherits = "ss04" @@ -220,8 +220,8 @@ family = "Iosevka Term SS04" spacing = "term" snapshotFamily = 'Iosevka' snapshotFeature = {"NWID" = 1, "ss04" = 1} -export-glyph-names = true -no-cv-ss = true +exportGlyphNames = true +noCvSs = true [buildPlans.IosevkaTermSS04.variants] inherits = "ss04" @@ -230,8 +230,8 @@ family = "Iosevka Fixed SS04" spacing = "fixed" snapshotFamily = 'Iosevka' snapshotFeature = {"NWID" = 1, "ss04" = 1} -export-glyph-names = true -no-cv-ss = true +exportGlyphNames = true +noCvSs = true [buildPlans.IosevkaFixedSS04.variants] inherits = "ss04" @@ -241,8 +241,8 @@ family = "Iosevka SS05" desc = "Fira Mono Style" snapshotFamily = 'Iosevka' snapshotFeature = {"ss05" = 1} -export-glyph-names = true -no-cv-ss = true +exportGlyphNames = true +noCvSs = true [buildPlans.IosevkaSS05.variants] inherits = "ss05" @@ -251,8 +251,8 @@ family = "Iosevka Term SS05" spacing = "term" snapshotFamily = 'Iosevka' snapshotFeature = {"NWID" = 1, "ss05" = 1} -export-glyph-names = true -no-cv-ss = true +exportGlyphNames = true +noCvSs = true [buildPlans.IosevkaTermSS05.variants] inherits = "ss05" @@ -261,8 +261,8 @@ family = "Iosevka Fixed SS05" spacing = "fixed" snapshotFamily = 'Iosevka' snapshotFeature = {"NWID" = 1, "ss05" = 1} -export-glyph-names = true -no-cv-ss = true +exportGlyphNames = true +noCvSs = true [buildPlans.IosevkaFixedSS05.variants] inherits = "ss05" @@ -272,8 +272,8 @@ family = "Iosevka SS06" desc = "Liberation Mono Style" snapshotFamily = 'Iosevka' snapshotFeature = {"ss06" = 1} -export-glyph-names = true -no-cv-ss = true +exportGlyphNames = true +noCvSs = true [buildPlans.IosevkaSS06.variants] inherits = "ss06" @@ -282,8 +282,8 @@ family = "Iosevka Term SS06" spacing = "term" snapshotFamily = 'Iosevka' snapshotFeature = {"NWID" = 1, "ss06" = 1} -export-glyph-names = true -no-cv-ss = true +exportGlyphNames = true +noCvSs = true [buildPlans.IosevkaTermSS06.variants] inherits = "ss06" @@ -292,8 +292,8 @@ family = "Iosevka Fixed SS06" spacing = "fixed" snapshotFamily = 'Iosevka' snapshotFeature = {"NWID" = 1, "ss06" = 1} -export-glyph-names = true -no-cv-ss = true +exportGlyphNames = true +noCvSs = true [buildPlans.IosevkaFixedSS06.variants] inherits = "ss06" @@ -303,8 +303,8 @@ family = "Iosevka SS07" desc = "Monaco Style" snapshotFamily = 'Iosevka' snapshotFeature = {"ss07" = 1} -export-glyph-names = true -no-cv-ss = true +exportGlyphNames = true +noCvSs = true [buildPlans.IosevkaSS07.variants] inherits = "ss07" @@ -313,8 +313,8 @@ family = "Iosevka Term SS07" spacing = "term" snapshotFamily = 'Iosevka' snapshotFeature = {"NWID" = 1, "ss07" = 1} -export-glyph-names = true -no-cv-ss = true +exportGlyphNames = true +noCvSs = true [buildPlans.IosevkaTermSS07.variants] inherits = "ss07" @@ -323,8 +323,8 @@ family = "Iosevka Fixed SS07" spacing = "fixed" snapshotFamily = 'Iosevka' snapshotFeature = {"NWID" = 1, "ss07" = 1} -export-glyph-names = true -no-cv-ss = true +exportGlyphNames = true +noCvSs = true [buildPlans.IosevkaFixedSS07.variants] inherits = "ss07" @@ -334,8 +334,8 @@ family = "Iosevka SS08" desc = "Pragmata Pro Style" snapshotFamily = 'Iosevka' snapshotFeature = {"ss08" = 1} -export-glyph-names = true -no-cv-ss = true +exportGlyphNames = true +noCvSs = true [buildPlans.IosevkaSS08.variants] inherits = "ss08" @@ -344,8 +344,8 @@ family = "Iosevka Term SS08" spacing = "term" snapshotFamily = 'Iosevka' snapshotFeature = {"NWID" = 1, "ss08" = 1} -export-glyph-names = true -no-cv-ss = true +exportGlyphNames = true +noCvSs = true [buildPlans.IosevkaTermSS08.variants] inherits = "ss08" @@ -354,8 +354,8 @@ family = "Iosevka Fixed SS08" spacing = "fixed" snapshotFamily = 'Iosevka' snapshotFeature = {"NWID" = 1, "ss08" = 1} -export-glyph-names = true -no-cv-ss = true +exportGlyphNames = true +noCvSs = true [buildPlans.IosevkaFixedSS08.variants] inherits = "ss08" @@ -365,8 +365,8 @@ family = "Iosevka SS09" desc = "Source Code Pro Style" snapshotFamily = 'Iosevka' snapshotFeature = {"ss09" = 1} -export-glyph-names = true -no-cv-ss = true +exportGlyphNames = true +noCvSs = true [buildPlans.IosevkaSS09.variants] inherits = "ss09" @@ -375,8 +375,8 @@ family = "Iosevka Term SS09" spacing = "term" snapshotFamily = 'Iosevka' snapshotFeature = {"NWID" = 1, "ss09" = 1} -export-glyph-names = true -no-cv-ss = true +exportGlyphNames = true +noCvSs = true [buildPlans.IosevkaTermSS09.variants] inherits = "ss09" @@ -385,8 +385,8 @@ family = "Iosevka Fixed SS09" spacing = "fixed" snapshotFamily = 'Iosevka' snapshotFeature = {"NWID" = 1, "ss09" = 1} -export-glyph-names = true -no-cv-ss = true +exportGlyphNames = true +noCvSs = true [buildPlans.IosevkaFixedSS09.variants] inherits = "ss09" @@ -396,8 +396,8 @@ family = "Iosevka SS10" desc = "Envy Code R Style" snapshotFamily = 'Iosevka' snapshotFeature = {"ss10" = 1} -export-glyph-names = true -no-cv-ss = true +exportGlyphNames = true +noCvSs = true [buildPlans.IosevkaSS10.variants] inherits = "ss10" @@ -406,8 +406,8 @@ family = "Iosevka Term SS10" spacing = "term" snapshotFamily = 'Iosevka' snapshotFeature = {"NWID" = 1, "ss10" = 1} -export-glyph-names = true -no-cv-ss = true +exportGlyphNames = true +noCvSs = true [buildPlans.IosevkaTermSS10.variants] inherits = "ss10" @@ -416,8 +416,8 @@ family = "Iosevka Fixed SS10" spacing = "fixed" snapshotFamily = 'Iosevka' snapshotFeature = {"NWID" = 1, "ss10" = 1} -export-glyph-names = true -no-cv-ss = true +exportGlyphNames = true +noCvSs = true [buildPlans.IosevkaFixedSS10.variants] inherits = "ss10" @@ -427,8 +427,8 @@ family = "Iosevka SS11" desc = "X Windows Fixed Style" snapshotFamily = 'Iosevka' snapshotFeature = {"ss11" = 1} -export-glyph-names = true -no-cv-ss = true +exportGlyphNames = true +noCvSs = true [buildPlans.IosevkaSS11.variants] inherits = "ss11" @@ -437,8 +437,8 @@ family = "Iosevka Term SS11" spacing = "term" snapshotFamily = 'Iosevka' snapshotFeature = {"NWID" = 1, "ss11" = 1} -export-glyph-names = true -no-cv-ss = true +exportGlyphNames = true +noCvSs = true [buildPlans.IosevkaTermSS11.variants] inherits = "ss11" @@ -447,8 +447,8 @@ family = "Iosevka Fixed SS11" spacing = "fixed" snapshotFamily = 'Iosevka' snapshotFeature = {"NWID" = 1, "ss11" = 1} -export-glyph-names = true -no-cv-ss = true +exportGlyphNames = true +noCvSs = true [buildPlans.IosevkaFixedSS11.variants] inherits = "ss11" @@ -458,8 +458,8 @@ family = "Iosevka SS12" desc = "Ubuntu Mono Style" snapshotFamily = 'Iosevka' snapshotFeature = {"ss12" = 1} -export-glyph-names = true -no-cv-ss = true +exportGlyphNames = true +noCvSs = true [buildPlans.IosevkaSS12.variants] inherits = "ss12" @@ -468,8 +468,8 @@ family = "Iosevka Term SS12" spacing = "term" snapshotFamily = 'Iosevka' snapshotFeature = {"NWID" = 1, "ss12" = 1} -export-glyph-names = true -no-cv-ss = true +exportGlyphNames = true +noCvSs = true [buildPlans.IosevkaTermSS12.variants] inherits = "ss12" @@ -478,8 +478,8 @@ family = "Iosevka Fixed SS12" spacing = "fixed" snapshotFamily = 'Iosevka' snapshotFeature = {"NWID" = 1, "ss12" = 1} -export-glyph-names = true -no-cv-ss = true +exportGlyphNames = true +noCvSs = true [buildPlans.IosevkaFixedSS12.variants] inherits = "ss12" @@ -489,8 +489,8 @@ family = "Iosevka SS13" desc = "Lucida Style" snapshotFamily = 'Iosevka' snapshotFeature = {"ss13" = 1} -export-glyph-names = true -no-cv-ss = true +exportGlyphNames = true +noCvSs = true [buildPlans.IosevkaSS13.variants] inherits = "ss13" @@ -499,8 +499,8 @@ family = "Iosevka Term SS13" spacing = "term" snapshotFamily = 'Iosevka' snapshotFeature = {"NWID" = 1, "ss13" = 1} -export-glyph-names = true -no-cv-ss = true +exportGlyphNames = true +noCvSs = true [buildPlans.IosevkaTermSS13.variants] inherits = "ss13" @@ -509,8 +509,8 @@ family = "Iosevka Fixed SS13" spacing = "fixed" snapshotFamily = 'Iosevka' snapshotFeature = {"NWID" = 1, "ss13" = 1} -export-glyph-names = true -no-cv-ss = true +exportGlyphNames = true +noCvSs = true [buildPlans.IosevkaFixedSS13.variants] inherits = "ss13" @@ -520,8 +520,8 @@ family = "Iosevka SS14" desc = "JetBrains Mono Style" snapshotFamily = 'Iosevka' snapshotFeature = {"ss14" = 1} -export-glyph-names = true -no-cv-ss = true +exportGlyphNames = true +noCvSs = true [buildPlans.IosevkaSS14.variants] inherits = "ss14" @@ -530,8 +530,8 @@ family = "Iosevka Term SS14" spacing = "term" snapshotFamily = 'Iosevka' snapshotFeature = {"NWID" = 1, "ss14" = 1} -export-glyph-names = true -no-cv-ss = true +exportGlyphNames = true +noCvSs = true [buildPlans.IosevkaTermSS14.variants] inherits = "ss14" @@ -540,8 +540,8 @@ family = "Iosevka Fixed SS14" spacing = "fixed" snapshotFamily = 'Iosevka' snapshotFeature = {"NWID" = 1, "ss14" = 1} -export-glyph-names = true -no-cv-ss = true +exportGlyphNames = true +noCvSs = true [buildPlans.IosevkaFixedSS14.variants] inherits = "ss14" @@ -551,8 +551,8 @@ family = "Iosevka SS15" desc = "IBM Plex Mono Style" snapshotFamily = 'Iosevka' snapshotFeature = {"ss15" = 1} -export-glyph-names = true -no-cv-ss = true +exportGlyphNames = true +noCvSs = true [buildPlans.IosevkaSS15.variants] inherits = "ss15" @@ -561,8 +561,8 @@ family = "Iosevka Term SS15" spacing = "term" snapshotFamily = 'Iosevka' snapshotFeature = {"NWID" = 1, "ss15" = 1} -export-glyph-names = true -no-cv-ss = true +exportGlyphNames = true +noCvSs = true [buildPlans.IosevkaTermSS15.variants] inherits = "ss15" @@ -571,8 +571,8 @@ family = "Iosevka Fixed SS15" spacing = "fixed" snapshotFamily = 'Iosevka' snapshotFeature = {"NWID" = 1, "ss15" = 1} -export-glyph-names = true -no-cv-ss = true +exportGlyphNames = true +noCvSs = true [buildPlans.IosevkaFixedSS15.variants] inherits = "ss15" @@ -582,8 +582,8 @@ family = "Iosevka SS16" desc = "PT Mono Style" snapshotFamily = 'Iosevka' snapshotFeature = {"ss16" = 1} -export-glyph-names = true -no-cv-ss = true +exportGlyphNames = true +noCvSs = true [buildPlans.IosevkaSS16.variants] inherits = "ss16" @@ -592,8 +592,8 @@ family = "Iosevka Term SS16" spacing = "term" snapshotFamily = 'Iosevka' snapshotFeature = {"NWID" = 1, "ss16" = 1} -export-glyph-names = true -no-cv-ss = true +exportGlyphNames = true +noCvSs = true [buildPlans.IosevkaTermSS16.variants] inherits = "ss16" @@ -602,8 +602,8 @@ family = "Iosevka Fixed SS16" spacing = "fixed" snapshotFamily = 'Iosevka' snapshotFeature = {"NWID" = 1, "ss16" = 1} -export-glyph-names = true -no-cv-ss = true +exportGlyphNames = true +noCvSs = true [buildPlans.IosevkaFixedSS16.variants] inherits = "ss16" @@ -613,8 +613,8 @@ family = "Iosevka SS17" desc = "Recursive Mono Style" snapshotFamily = 'Iosevka' snapshotFeature = {"ss17" = 1} -export-glyph-names = true -no-cv-ss = true +exportGlyphNames = true +noCvSs = true [buildPlans.IosevkaSS17.variants] inherits = "ss17" @@ -623,8 +623,8 @@ family = "Iosevka Term SS17" spacing = "term" snapshotFamily = 'Iosevka' snapshotFeature = {"NWID" = 1, "ss17" = 1} -export-glyph-names = true -no-cv-ss = true +exportGlyphNames = true +noCvSs = true [buildPlans.IosevkaTermSS17.variants] inherits = "ss17" @@ -633,8 +633,8 @@ family = "Iosevka Fixed SS17" spacing = "fixed" snapshotFamily = 'Iosevka' snapshotFeature = {"NWID" = 1, "ss17" = 1} -export-glyph-names = true -no-cv-ss = true +exportGlyphNames = true +noCvSs = true [buildPlans.IosevkaFixedSS17.variants] inherits = "ss17" @@ -644,8 +644,8 @@ family = "Iosevka SS18" desc = "Input Mono Style" snapshotFamily = 'Iosevka' snapshotFeature = {"ss18" = 1} -export-glyph-names = true -no-cv-ss = true +exportGlyphNames = true +noCvSs = true [buildPlans.IosevkaSS18.variants] inherits = "ss18" @@ -654,8 +654,8 @@ family = "Iosevka Term SS18" spacing = "term" snapshotFamily = 'Iosevka' snapshotFeature = {"NWID" = 1, "ss18" = 1} -export-glyph-names = true -no-cv-ss = true +exportGlyphNames = true +noCvSs = true [buildPlans.IosevkaTermSS18.variants] inherits = "ss18" @@ -664,8 +664,8 @@ family = "Iosevka Fixed SS18" spacing = "fixed" snapshotFamily = 'Iosevka' snapshotFeature = {"NWID" = 1, "ss18" = 1} -export-glyph-names = true -no-cv-ss = true +exportGlyphNames = true +noCvSs = true [buildPlans.IosevkaFixedSS18.variants] inherits = "ss18" @@ -679,7 +679,7 @@ desc = "Sans-serif" spacing = "quasi-proportional" snapshotFamily = 'Iosevka Aile' snapshotFeature = {"NWID" = 0} -export-glyph-names = true +exportGlyphNames = true [buildPlans.IosevkaAile.variants.design] capital-i = "serifless" @@ -770,7 +770,7 @@ spacing = "quasi-proportional" serifs = 'slab' snapshotFamily = 'Iosevka Etoile' snapshotFeature = {"NWID" = 0} -export-glyph-names = true +exportGlyphNames = true [buildPlans.IosevkaEtoile.variants.design] capital-m = "flat-bottom-serifed" @@ -808,7 +808,7 @@ css = "normal" family = "Iosevka QP" desc = "Customizer Preview Only Quasi-proportional Sans" spacing = "quasi-proportional" -export-glyph-names = false +exportGlyphNames = false [buildPlans.IosevkaQp.weights.regular] shape = 400 @@ -825,7 +825,7 @@ family = "Iosevka QP Slab" desc = "Customizer Preview Only Quasi-proportional Slab" serifs = 'slab' spacing = "quasi-proportional" -export-glyph-names = false +exportGlyphNames = false [buildPlans.IosevkaQpSlab.weights.regular] shape = 400 @@ -841,7 +841,7 @@ css = 700 family = "Iosevka QPE" desc = "Customizer Preview Only Quasi-proportional-extension-only Sans" spacing = "quasi-proportional-extension-only" -export-glyph-names = false +exportGlyphNames = false [buildPlans.IosevkaQpe.weights.regular] shape = 400 @@ -858,7 +858,7 @@ family = "Iosevka QPE Slab" desc = "Customizer Preview Only Quasi-proportional-extension-only Slab" serifs = 'slab' spacing = "quasi-proportional-extension-only" -export-glyph-names = false +exportGlyphNames = false [buildPlans.IosevkaQpeSlab.weights.regular] shape = 400 diff --git a/changes/28.0.0-alpha.1.md b/changes/28.0.0-alpha.1.md index 7dadfc4b3..e140dac77 100644 --- a/changes/28.0.0-alpha.1.md +++ b/changes/28.0.0-alpha.1.md @@ -1,6 +1,15 @@ * \[**BREAKING**\] The filenames and package filenames are changed. - They will now use PascalCase instead of kebab-case. - To package manager maintainers: Please upgrade your script to make it capable to download and install the fonts under new names, and properly uninstall the fonts under old names. + * \[**BREAKING**\] Certain properties in the build plans are changed to camelCase. Using them will trigger a build failure. + - `no-cv-ss` → `noCvSs` + - `no-ligation` → `noLigation` + - `export-glyph-names` → `exportGlyphNames` + - `build-texture-feature` → `buildTextureFeature` + - `metric-override` → `metricOverride` + - `compatibility-ligatures` → `compatibilityLigatures` + - `exclude-chars` → `excludeChars` + - `webfont-formats` → `webfontFormats` * \[**BREAKING**\] The "SGr" TTC packages for Iosevka Aile and Etoile will no longer be generated, as they are duplicates to the non-SGr TTC packages. * \[**BREAKING**\] Reorder of glyph variants: - Influenced characters: `M`, `R`, `f`, `t`, `x`, Long S (`ſ`), Lower Chi (`χ`), Cyrillic Lower Em (`м`), Cyrillic Ya (`Я`, `я`), `5`. diff --git a/changes/archives/27.x/27.3.5.md b/changes/archives/27.x/27.3.5.md index 4b01ab5b2..02001afe2 100644 --- a/changes/archives/27.x/27.3.5.md +++ b/changes/archives/27.x/27.3.5.md @@ -4,6 +4,6 @@ * Improve crossbar position of GREEK SMALL LETTER DIGAMMA (`U+03DD`) and add a middle serif under slab. * Refine Greek Capital Sho (U+03F7) glyph (#2079). * \[Experimental\] Add a font feature for texture control (#2081). - - Currently only available through custom builds with `build-texture-feature = true`. + - Currently only available through custom builds with `buildTextureFeature = true`. * Make SYMBOL FOR DELETE FORM TWO (`U+2425`) narrow by default, align with other Control Pictures characters (#2084). * Make APL FUNCTIONAL SYMBOL CIRCLE STAR (`U+235F`) always be five-pointed and upright, to align its pentagram history (#2083). diff --git a/changes/archives/3.x/3.0.0.md b/changes/archives/3.x/3.0.0.md index 4a7b1d212..4ed3a9989 100644 --- a/changes/archives/3.x/3.0.0.md +++ b/changes/archives/3.x/3.0.0.md @@ -38,7 +38,7 @@ * Add reverse-slashed zero (#438). * Add U+1F8B0 and U+1F8B1 (#459). * Fixed broken shape around `srtail`, `Sswash` and `sswash`. - * Fix `no-cv-ss` building (#460). + * Fix `noCvSs` building (#460). * Retrocomputing symbols are now defaults to half-width. * Made variant selectors work for turned letters. * Make `ligset-dlig` usable from custom build (#463). diff --git a/changes/archives/9.x/9.0.0.md b/changes/archives/9.x/9.0.0.md index 6efa48137..8a1805de6 100644 --- a/changes/archives/9.x/9.0.0.md +++ b/changes/archives/9.x/9.0.0.md @@ -1,4 +1,4 @@ - * \[**Breaking**\]: Add support for expression-style metric override. The old `[metric-override.multiplies]` and `[metric-override.adds]` are no longer supported (#1181). + * \[**Breaking**\]: Add support for expression-style metric override. The old `[metricOverride.multiplies]` and `[metricOverride.adds]` are no longer supported (#1181). * Fix motion-serifed N's broken shape (#1170). * Fix bar-serif overlapping in Latin Small H-bar (`U+0127`) and Cyrillic Small Dje (`U+0452`) in Sans subfamily's with-serif variants (#1171). * Add flat-boundary brace shape (#1172). @@ -6,4 +6,4 @@ * Make dot size, period size and accent size / placement configurable (#1169, #1176). * Make variants of `0` apply to APL Functional Symbol Zilde (`U+236C`) and Circled Zero with Slash (`U+1F10D`) (#1178). * Add enclosed sans-serif digits. - * Fix italic derived letters regression in 8.0. \ No newline at end of file + * Fix italic derived letters regression in 8.0. diff --git a/doc/custom-build.md b/doc/custom-build.md index d8ececa95..3569c1ca4 100644 --- a/doc/custom-build.md +++ b/doc/custom-build.md @@ -85,13 +85,21 @@ Inside the plan, top-level properties include: * `serifs`: Optional, String, configures style of serifs. - When set to `slab`, the font will be converted into slab-serif. - Otherwise the font will be sans-serif. -* `no-cv-ss`: Optional, Boolean, disables `cv##` and `ss##` OpenType features. -* `no-ligation`: Optional, Boolean, disables ligations. -* `export-glyph-names`: Optional, Boolean, whether to export glyph names into the fonts. Setting this to `true` will increase file footprint, however this is necessary for ligature support in [Kitty](https://sw.kovidgoyal.net/kitty/). -* `webfont-formats`: Optional, Array of String. Controls the formats needed to be exported into the webfont CSS. Valid options are `'ttf'` and `'woff2'`, or including both. -* `build-texture-feature`: Optional, Boolean, whether to build the `TXTR` feature for cross-letter texture adjustments. Defaults to false. +* `noCvSs`: Optional, Boolean, disables `cv##` and `ss##` OpenType features. +* `noLigation`: Optional, Boolean, disables ligations. +* `exportGlyphNames`: Optional, Boolean, whether to export glyph names into the fonts. Setting this to `true` will increase file footprint, however this is necessary for ligature support in [Kitty](https://sw.kovidgoyal.net/kitty/). +* `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 5 optional subsections: `ligations`, `variants`, `weights`, `widths` and `slopes`. +Build plan could have 8 optional subsections: +* `ligations` +* `variants` +* `weights` +* `widths` +* `slopes` +* `compatibilityLigatures` +* `excludeChars` +* `metricOverride` #### Configuring Ligations @@ -521,7 +529,7 @@ Subsection `slopes` is used to change the slope angles and grades that the custo #### Compatibility Ligatures -Certain software, notably Emacs, relies on pre-encoded ligatures instead of OpenType to provide ligations. Iosevka could be configured with additional subsection `compatibility-ligatures`, being an array of records with following fields: +Certain software, notably Emacs, relies on pre-encoded ligatures instead of OpenType to provide ligations. Iosevka could be configured with additional subsection `compatibilityLigatures`, being an array of records with following fields: * `unicode`: The PUA code point being assigned to. * `featureTag`: The feature tag to compute ligations. @@ -530,15 +538,24 @@ Certain software, notably Emacs, relies on pre-encoded ligatures instead of Open A sample of compatibility ligature config is: ```toml -[[buildPlans.IosevkaCustom.compatibility-ligatures]] +[[buildPlans.IosevkaCustom.compatibilityLigatures]] unicode = 57600 # 0xE100 featureTag = 'calt' sequence = '<*>' ``` +#### Excluding Characters + +Use the `excludeChars` configuration to exclude character ranges from the font. + +```toml +[buildPlans.iosevkaCustom.excludeChars] +ranges = [[10003, 10008]] +``` + #### Metric Override -Subsection `metric-override` provides ability to override certain metric values, if you *reallly* want to. Adding this section is **strongly discouraged** as it may introduce broken geometry or broken shapes. +Subsection `metricOverride` provides ability to override certain metric values, if you *reallly* want to. Adding this section is **strongly discouraged** as it may introduce broken geometry or broken shapes. | Property | Unit | Default Value | Meaning | |----------|------|---------|----------| @@ -597,7 +614,7 @@ Valid functions include: For example, the following configuration: ```toml -[buildPlans.IosevkaCustom.metric-override] +[buildPlans.IosevkaCustom.metricOverride] leading = 1500 sb = 'default_sb * 1.0625 + 15' dotSize = 'blend(weight, [100, 50], [400, 125], [900, 180])' diff --git a/font-src/glyphs/auto-build/transformed.ptl b/font-src/glyphs/auto-build/transformed.ptl index 0a7024da8..5c6944acf 100644 --- a/font-src/glyphs/auto-build/transformed.ptl +++ b/font-src/glyphs/auto-build/transformed.ptl @@ -694,7 +694,7 @@ glyph-block Autobuild-Transformed : begin link-relations relSets glyph-block Autobuild-Transformed-Texture : begin - if (!(para.buildTexture && !para.isQuasiProportional)) : return nothing + if (!(para.buildTextureFeature && !para.isQuasiProportional)) : return nothing glyph-block-import CommonShapes glyph-block-import Common-Derivatives diff --git a/font-src/otl/index.ptl b/font-src/otl/index.ptl index 2ce886683..155528f9a 100644 --- a/font-src/otl/index.ptl +++ b/font-src/otl/index.ptl @@ -73,7 +73,7 @@ define [buildGSUB para glyphStore markGlyphs] : begin buildLOCL gsub para glyphStore # TXTR, "texture" feature - if (para.buildTexture && !para.isQuasiProportional) : begin + if (para.buildTextureFeature && !para.isQuasiProportional) : begin buildGsubTexture gsub glyphStore markGlyphs cvs gsub.finalize diff --git a/font-src/support/parameters.mjs b/font-src/support/parameters.mjs index be1e7092d..bfd1c7990 100644 --- a/font-src/support/parameters.mjs +++ b/font-src/support/parameters.mjs @@ -11,7 +11,7 @@ export function init(data, argv) { applyAlternatesParam(argv, para, data, "slope", "slope"); if (argv.featureControl.noCvSs) para.enableCvSs = false; if (argv.featureControl.noLigation) para.enableLigation = false; - if (argv.featureControl.buildTexture) para.buildTexture = true; + if (argv.featureControl.buildTextureFeature) para.buildTextureFeature = true; return para; } function applyBlendingParam(argv, para, data, key, keyArgv) { diff --git a/private-build-plans.sample.toml b/private-build-plans.sample.toml index 4306bc93a..03ddd92fb 100644 --- a/private-build-plans.sample.toml +++ b/private-build-plans.sample.toml @@ -1,32 +1,32 @@ ### See https://github.com/be5invis/Iosevka/blob/master/doc/custom-build.md for comprehensive ### documentation of the options in this file -[buildPlans.iosevka-custom] # is your plan name +[buildPlans.IosevkaCustom] # is your plan name family = "Iosevka Custom" # Font menu family name spacing = "normal" # Optional; Values: `normal`, `term`, `fontconfig-mono`, or `fixed` serifs = "sans" # Optional; Values: `sans` or `slab` -export-glyph-names = false # Set this to true for ligature support in Kitty (increased file size) +exportGlyphNames = false # Set this to true for ligature support in Kitty (increased file size) -webfont-formats = ['ttf', 'woff2'] +webfontFormats = ['ttf', 'woff2'] ################################################################################################### # Configure variants # Optional; Whether to inherit a `ss##` variant -[buildPlans.iosevka-custom.variants] +[buildPlans.IosevkaCustom.variants] inherits = "ss01" # Optional; Configure single character's variant -[buildPlans.iosevka-custom.variants.design] +[buildPlans.IosevkaCustom.variants.design] g = 'single-storey-serifless' # Optional; Configure single character's variant for Upright and Oblique; Overrides [design] -[buildPlans.iosevka-custom.variants.upright] +[buildPlans.IosevkaCustom.variants.upright] i = 'zshaped' l = 'zshaped' # Optional; Configure single character's variant for Italic only; Overrides [design] -[buildPlans.iosevka-custom.variants.italic] +[buildPlans.IosevkaCustom.variants.italic] i = 'tailed-serifed' l = 'tailed-serifed' @@ -36,7 +36,7 @@ l = 'tailed-serifed' ################################################################################################### # Configure ligations -[buildPlans.iosevka-custom.ligations] +[buildPlans.IosevkaCustom.ligations] inherits = "default-calt" # Optional; inherits an existing ligation set disables = [] # Optional; disable specific ligation groups, overrides inherited ligation set enables = [] # Optional; enable specific ligation groups, overrides inherited ligation set @@ -53,17 +53,17 @@ enables = [] # Optional; enable specific ligation groups, overrid # and "shape" properly only supports number between 100 and 900 (inclusive). # If you decide to use custom weights you have to define all the weights you # plan to use otherwise they will not be built. -[buildPlans.iosevka-custom.weights.Regular] +[buildPlans.IosevkaCustom.weights.Regular] shape = 400 # Weight for glyph shapes. menu = 400 # Weight for the font's names. css = 400 # Weight for webfont CSS. -[buildPlans.iosevka-custom.weights.Book] +[buildPlans.IosevkaCustom.weights.Book] shape = 450 menu = 450 # Use 450 here to name the font's weight "Book" css = 450 -[buildPlans.iosevka-custom.weights.Bold] +[buildPlans.IosevkaCustom.weights.Bold] shape = 700 menu = 700 css = 700 @@ -75,19 +75,19 @@ css = 700 # Override default building slope sets # When this section is absent, all slopes would be built. -[buildPlans.iosevka-custom.slopes.Upright] +[buildPlans.IosevkaCustom.slopes.Upright] angle = 0 # Angle in degrees. Valid range [0, 15] shape = "upright" # Slope grade used for shape selection. `upright` | `oblique` | `italic` menu = "upright" # Slope grade used for naming. `upright` | `oblique` | `italic` css = "normal" # Slope grade used for webfont CSS. `normal` | `oblique` | `italic` -[buildPlans.iosevka-custom.slopes.Oblique] +[buildPlans.IosevkaCustom.slopes.Oblique] angle = 9.4 shape = "oblique" menu = "oblique" css = "oblique" -[buildPlans.iosevka-custom.slopes.Italic] +[buildPlans.IosevkaCustom.slopes.Italic] angle = 9.4 shape = "italic" menu = "italic" @@ -106,12 +106,12 @@ css = "italic" # If you decide to use custom widths you have to define all the widths you plan to use, # otherwise they will not be built. -[buildPlans.iosevka-custom.widths.Normal] +[buildPlans.IosevkaCustom.widths.Normal] shape = 500 # Unit Width, measured in 1/1000 em. menu = 5 # Width grade for the font's names. css = "normal" # "font-stretch' property of webfont CSS. -[buildPlans.iosevka-custom.widths.Extended] +[buildPlans.IosevkaCustom.widths.Extended] shape = 600 menu = 7 css = "expanded" @@ -124,7 +124,7 @@ css = "expanded" # Specify character ranges in the section below to exclude certain characters from the font being # built. Remove this section when this feature is not needed. -[buildPlans.iosevka-custom.exclude-chars] +[buildPlans.IosevkaCustom.excludeChars] ranges = [[10003, 10008]] # End character exclusion @@ -137,7 +137,7 @@ ranges = [[10003, 10008]] # following section to build PUA characters that are generated from the OpenType ligatures. # Remove this section when compatibility ligatures are not needed. -[[buildPlans.iosevka-custom.compatibility-ligatures]] +[[buildPlans.IosevkaCustom.compatibilityLigatures]] unicode = 57600 # 0xE100 featureTag = 'calt' sequence = '<*>' @@ -150,7 +150,7 @@ sequence = '<*>' # Certain metrics like line height (leading) could be overridden in your build plan file. # Edit the values to change the metrics. Remove this section when overriding is not needed. -[buildPlans.iosevka-custom.metric-override] +[buildPlans.IosevkaCustom.metricOverride] leading = 1250 winMetricAscenderPad = 0 winMetricDescenderPad = 0 diff --git a/verdafile.mjs b/verdafile.mjs index 5adac8101..6d0cc03e2 100644 --- a/verdafile.mjs +++ b/verdafile.mjs @@ -134,8 +134,8 @@ const BuildPlans = computed("metadata:build-plans", async target => { const returnBuildPlans = {}; for (const prefix in rawBuildPlans) { const bp = { ...rawBuildPlans[prefix] }; - if (!bp.family) fail(`Build plan for ${prefix} does not have a family name. Exit.`); - bp.webfontFormats = bp["webfont-formats"] || defaultWebFontFormats; + validateBuildPlan(prefix, bp); + bp.webfontFormats = bp.webfontFormats || defaultWebFontFormats; bp.targets = []; returnBuildPlans[prefix] = bp; } @@ -170,7 +170,7 @@ const BuildPlans = computed("metadata:build-plans", async target => { function linkSpacingDerivableBuildPlans(bps) { for (const pfxTo in bps) { const bpTo = bps[pfxTo]; - if (blockSpacingDerivation(bpTo)) continue; + if (blockSpacingDerivationTo(bpTo)) continue; if (!isDeriveToSpacing(bpTo.spacing)) continue; for (const pfxFrom in bps) { const bpFrom = bps[pfxFrom]; @@ -180,8 +180,8 @@ function linkSpacingDerivableBuildPlans(bps) { } } } -function blockSpacingDerivation(bp) { - return !!bp["compatibility-ligatures"]; +function blockSpacingDerivationTo(bp) { + return !!bp.compatibilityLigatures; } function isDeriveToSpacing(spacing) { return spacing === "term" || spacing === "fontconfig-mono" || spacing === "fixed"; @@ -260,10 +260,10 @@ const FontInfoOf = computed.group("metadata:font-info-of", async (target, fileNa derivingVariants: bp.derivingVariants, buildCharMap: bp.buildCharMap, featureControl: { - noCvSs: bp["no-cv-ss"] || false, - noLigation: bp["no-ligation"] || false, - exportGlyphNames: bp["export-glyph-names"] || false, - buildTexture: bp["build-texture-feature"] || false + noCvSs: bp.noCvSs || false, + noLigation: bp.noLigation || false, + exportGlyphNames: bp.exportGlyphNames || false, + buildTextureFeature: bp.buildTextureFeature || false }, // Ligations ligations: bp.ligations || null, @@ -290,14 +290,17 @@ const FontInfoOf = computed.group("metadata:font-info-of", async (target, fileNa stretch: sfi.cssStretch, style: sfi.cssStyle }, + // Hinting hintParams: bp.hintParams || [], hintReference: - !bp["metric-override"] && hintReferenceSuffix !== fi0.suffix + !bp.metricOverride && hintReferenceSuffix !== fi0.suffix ? makeFileName(fi0.prefix, hintReferenceSuffix) : null, - compatibilityLigatures: bp["compatibility-ligatures"] || null, - metricOverride: bp["metric-override"] || null, - excludedCharRanges: bp["exclude-chars"]?.ranges, + + // Other parameters + compatibilityLigatures: bp.compatibilityLigatures || null, + metricOverride: bp.metricOverride || null, + excludedCharRanges: bp.excludeChars?.ranges, // Spacing derivation -- creating faster build for spacing variants spacingDerive @@ -1198,6 +1201,26 @@ const Parameters = task(`meta:parameters`, async target => { // Build plan validation +function validateBuildPlan(prefix, bp) { + if (!bp.family) fail(`Build plan for ${prefix} does not have a family name. Exit.`); + failWithLegacyParamName(prefix, bp, `no-cv-ss`, `noCvSs`); + failWithLegacyParamName(prefix, bp, `no-ligation`, `noLigation`); + failWithLegacyParamName(prefix, bp, `export-glyph-names`, `exportGlyphNames`); + failWithLegacyParamName(prefix, bp, `build-texture-feature`, `buildTextureFeature`); + failWithLegacyParamName(prefix, bp, `metric-override`, `metricOverride`); + failWithLegacyParamName(prefix, bp, `compatibility-ligatures`, `compatibilityLigatures`); + failWithLegacyParamName(prefix, bp, `exclude-chars`, `excludeChars`); +} + +function failWithLegacyParamName(prefix, bp, legacy, expected) { + if (bp[legacy]) { + fail( + `Build plan for '${prefix}' contains legacy build parameter '${legacy}'. ` + + `Please use '${expected}' instead.` + ); + } +} + function resolveWws(bpName, buildPlans, defaultConfig) { const bp = buildPlans[bpName]; if (!bp) fail(`Build plan ${bpName} not found.`);