Start detaching style selectors

This commit is contained in:
be5invis 2020-07-06 17:13:06 -07:00
parent 4b04f952d1
commit bbf73e9748
9 changed files with 288 additions and 291 deletions

View file

@ -20,6 +20,8 @@ module.exports = async function main(argv) {
// Parameter preparation
async function getParameters(argv) {
const PARAMETERS_TOML = path.resolve(__dirname, "../params/parameters.toml");
const WEIGHTS_TOML = path.resolve(__dirname, "../params/shape-weight.toml");
const WIDTHS_TOML = path.resolve(__dirname, "../params/shape-width.toml");
const PRIVATE_TOML = path.resolve(__dirname, "../params/private-parameters.toml");
const VARIANTS_TOML = path.resolve(__dirname, "../params/variants.toml");
const LIGATIONS_TOML = path.resolve(__dirname, "../params/ligation-set.toml");
@ -27,37 +29,44 @@ async function getParameters(argv) {
const parametersData = Object.assign(
{},
await tryParseToml(PARAMETERS_TOML),
(await fs.exists(PRIVATE_TOML)) ? await tryParseToml(PRIVATE_TOML) : []
await tryParseToml(WEIGHTS_TOML),
await tryParseToml(WIDTHS_TOML),
(await fs.exists(PRIVATE_TOML)) ? await tryParseToml(PRIVATE_TOML) : {}
);
const rawVariantsData = await tryParseToml(VARIANTS_TOML);
const rawLigationData = await tryParseToml(LIGATIONS_TOML);
const para = Parameters.build(parametersData, argv.hives, {
shapeWeight: argv.shape.weight,
shapeWidth: argv.shape.width
});
let para = {};
Parameters.apply(para, parametersData, ["iosevka"]);
Parameters.apply(para, parametersData, argv.preHives);
Parameters.apply(para, parametersData, ["shapeWeight"], { shapeWeight: argv.shape.weight });
Parameters.apply(para, parametersData, ["shapeWidth"], { shapeWidth: argv.shape.width });
Parameters.apply(para, parametersData, [`s-${argv.shape.slant}`]);
Parameters.apply(para, parametersData, [`diversity-${argv.shape.quasiProportionalDiversity}`]);
const variantsData = FormVariantData(rawVariantsData, para);
para.variants = variantsData;
para.variantSelector = Parameters.build(variantsData, ["default", ...argv.hives]);
para.variantSelector = {};
Parameters.apply(para.variantSelector, variantsData, ["default", ...argv.preHives]);
para.defaultVariant = variantsData.default;
const ligationData = FormLigationData(rawLigationData, para);
para.defaultBuildup = ligationData.defaultBuildup;
para.ligation = Parameters.build(ligationData.hives, ["default", ...argv.hives]);
para.defaultBuildup = { ...ligationData.defaultBuildup };
para.ligation = {};
Parameters.apply(para.ligation, ligationData.hives, ["default", ...argv.preHives]);
if (argv.excludedCharRanges) para.excludedCharRanges = argv.excludedCharRanges;
if (argv.compatibilityLigatures) para.compLig = argv.compatibilityLigatures;
if (argv.metricOverride) Parameters.applyMetricOverride(para, argv.metricOverride);
para.naming = {
...para.naming,
family: argv.menu.family,
version: argv.menu.version,
weight: argv.menu.weight - 0,
width: argv.menu.width - 0,
slant: argv.menu.slant
};
return para;
}