From 6d48193438fe122a791036c2b433ed36e5167bea Mon Sep 17 00:00:00 2001 From: Alexey Ten Date: Sun, 22 Nov 2020 11:35:41 +0300 Subject: [PATCH] Allow inherit ligations from `calt` (#750) * Allow inherit ligations from `calt` Add `calt` to `hives` so `inherit = 'calt'` works. Also get rid of `optInBuildup`/`optOutBuildup` because they just merged into `para.ligation.defaultBuildup`. * fixup! Allow inherit ligations from `calt` * fixup! Allow inherit ligations from `calt` Rename hives * fixup! Allow inherit ligations from `calt` Rename `calt` to `default-calt` * fixup! fixup! Allow inherit ligations from `calt` --- font-src/support/ligation-data.js | 25 +++++++++---------------- params/ligation-set.toml | 5 +++-- private-build-plans.sample.toml | 6 +++--- utility/amend-readme/index.js | 1 - 4 files changed, 15 insertions(+), 22 deletions(-) diff --git a/font-src/support/ligation-data.js b/font-src/support/ligation-data.js index e5f6694fc..ca14b8f76 100644 --- a/font-src/support/ligation-data.js +++ b/font-src/support/ligation-data.js @@ -3,48 +3,41 @@ const Parameters = require("./parameters"); module.exports = function applyLigationData(data, para, argv) { - const optInBuildup = {}; - const optOutBuildup = {}; + const defaultBuildup = {}; const hives = {}; hives["default"] = { caltBuildup: [] }; for (const gr in data.simple) { - hives["enable-" + gr] = { appends: { caltBuildup: [data.simple[gr].ligGroup] } }; - hives["disable-" + gr] = { removes: { caltBuildup: [data.simple[gr].ligGroup] } }; + hives[`ligset-enable-${gr}`] = { appends: { caltBuildup: [data.simple[gr].ligGroup] } }; + hives[`ligset-disable-${gr}`] = { removes: { caltBuildup: [data.simple[gr].ligGroup] } }; } for (const gr in data.composite) { const comp = data.composite[gr]; if (!comp.tag) continue; const ligSets = createBuildup(data.simple, comp.buildup); - if (comp.isOptOut) { - optOutBuildup[comp.tag] = ligSets; - } else { - optInBuildup[comp.tag] = ligSets; - } - if (!comp.isOptOut) { - hives["ligset-" + gr] = { caltBuildup: ligSets }; - } + defaultBuildup[comp.tag] = ligSets; + hives[`ligset-inherit-${gr}`] = { caltBuildup: ligSets }; } para.ligation = { - defaultBuildup: { ...optInBuildup, ...optOutBuildup }, + defaultBuildup, caltBuildup: [] }; if (argv.ligations) { if (argv.ligations.inherits) - Parameters.apply(para.ligation, hives, ["ligset-" + argv.ligations.inherits]); + Parameters.apply(para.ligation, hives, [`ligset-inherit-${argv.ligations.inherits}`]); if (argv.ligations.disables) Parameters.apply( para.ligation, hives, - argv.ligations.disables.map(x => `disable-${x}`) + argv.ligations.disables.map(x => `ligset-disable-${x}`) ); if (argv.ligations.enables) Parameters.apply( para.ligation, hives, - argv.ligations.enables.map(x => `enable-${x}`) + argv.ligations.enables.map(x => `ligset-enable-${x}`) ); } }; diff --git a/params/ligation-set.toml b/params/ligation-set.toml index 0dff8e4d7..86960709f 100644 --- a/params/ligation-set.toml +++ b/params/ligation-set.toml @@ -124,12 +124,13 @@ desc = 'Transform `:>` into `:` and a narrow arrow.' ################################################################################################### -[composite.calt] -isOptOut = true # This feature is on by default by many software +# This feature is on by default by many software +[composite.default-calt] tag = 'calt' buildup = ['center-ops', 'arrow', 'html-comment', 'trig', 'llgg', 'llggeq', 'eqeq', 'exeq', 'ineq', 'plusplus', 'kern-dotty'] brief = 'Default' desc = 'Default setting in text editors' +longDesc = 'Inherit default ligation set' [composite.dlig] tag = 'dlig' diff --git a/private-build-plans.sample.toml b/private-build-plans.sample.toml index 144d22aef..4502af843 100644 --- a/private-build-plans.sample.toml +++ b/private-build-plans.sample.toml @@ -31,9 +31,9 @@ l = 'italic' # Configure ligations [buildPlans.iosevka-custom.ligations] -inherits = "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 +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 # End ligation section ################################################################################################### diff --git a/utility/amend-readme/index.js b/utility/amend-readme/index.js index d41544562..69d92eff0 100644 --- a/utility/amend-readme/index.js +++ b/utility/amend-readme/index.js @@ -177,7 +177,6 @@ async function processLigSetPreDef() { const headerPath = path.resolve(__dirname, "fragments/description-predefined-ligation-sets.md"); md.log(await fs.readFile(headerPath, "utf-8")); for (const gr in ligData.rawSets) { - if (ligData.rawSets[gr].isOptOut) continue; const longDesc = ligData.rawSets[gr].longDesc || `Default ligation set would be assigned to ${ligData.rawSets[gr].desc}`;