Export multiple atlases for pages (#2401)
This commit is contained in:
parent
65a9419355
commit
f3126d0f35
21 changed files with 193 additions and 121 deletions
|
@ -30,6 +30,7 @@ exportGlyphNames = true
|
|||
[buildPlans.IosevkaSlab]
|
||||
family = "Iosevka Slab"
|
||||
desc = "Slab-serif"
|
||||
buildCharMap = true
|
||||
serifs = "slab"
|
||||
snapshotFamily = 'Iosevka Slab'
|
||||
snapshotFeature = {"NWID" = 0}
|
||||
|
@ -677,6 +678,7 @@ inherits = "ss18"
|
|||
family = "Iosevka Aile"
|
||||
desc = "Sans-serif"
|
||||
spacing = "quasi-proportional"
|
||||
buildCharMap = true
|
||||
snapshotFamily = 'Iosevka Aile'
|
||||
snapshotFeature = {"NWID" = 0}
|
||||
exportGlyphNames = true
|
||||
|
@ -761,6 +763,7 @@ css = "normal"
|
|||
family = "Iosevka Etoile"
|
||||
desc = "Slab-serif"
|
||||
spacing = "quasi-proportional"
|
||||
buildCharMap = true
|
||||
serifs = 'slab'
|
||||
snapshotFamily = 'Iosevka Etoile'
|
||||
snapshotFeature = {"NWID" = 0}
|
||||
|
|
80
package-lock.json
generated
80
package-lock.json
generated
|
@ -1,12 +1,12 @@
|
|||
{
|
||||
"name": "@iosevka/monorepo",
|
||||
"version": "30.3.0",
|
||||
"version": "30.3.1",
|
||||
"lockfileVersion": 3,
|
||||
"requires": true,
|
||||
"packages": {
|
||||
"": {
|
||||
"name": "@iosevka/monorepo",
|
||||
"version": "30.3.0",
|
||||
"version": "30.3.1",
|
||||
"workspaces": [
|
||||
"packages/*",
|
||||
"tools/*"
|
||||
|
@ -4310,16 +4310,16 @@
|
|||
},
|
||||
"packages/font": {
|
||||
"name": "@iosevka/font",
|
||||
"version": "30.3.0",
|
||||
"version": "30.3.1",
|
||||
"dependencies": {
|
||||
"@iarna/toml": "^2.2.5",
|
||||
"@iosevka/font-glyphs": "30.3.0",
|
||||
"@iosevka/font-otl": "30.3.0",
|
||||
"@iosevka/geometry": "30.3.0",
|
||||
"@iosevka/geometry-cache": "30.3.0",
|
||||
"@iosevka/glyph": "30.3.0",
|
||||
"@iosevka/param": "30.3.0",
|
||||
"@iosevka/util": "30.3.0",
|
||||
"@iosevka/font-glyphs": "30.3.1",
|
||||
"@iosevka/font-otl": "30.3.1",
|
||||
"@iosevka/geometry": "30.3.1",
|
||||
"@iosevka/geometry-cache": "30.3.1",
|
||||
"@iosevka/glyph": "30.3.1",
|
||||
"@iosevka/param": "30.3.1",
|
||||
"@iosevka/util": "30.3.1",
|
||||
"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": "30.3.0",
|
||||
"version": "30.3.1",
|
||||
"dependencies": {
|
||||
"@iosevka/font-kits": "30.3.0",
|
||||
"@iosevka/geometry": "30.3.0",
|
||||
"@iosevka/geometry-cache": "30.3.0",
|
||||
"@iosevka/glyph": "30.3.0",
|
||||
"@iosevka/util": "30.3.0",
|
||||
"@iosevka/font-kits": "30.3.1",
|
||||
"@iosevka/geometry": "30.3.1",
|
||||
"@iosevka/geometry-cache": "30.3.1",
|
||||
"@iosevka/glyph": "30.3.1",
|
||||
"@iosevka/util": "30.3.1",
|
||||
"typo-geom": "^0.15.1"
|
||||
}
|
||||
},
|
||||
"packages/font-kits": {
|
||||
"name": "@iosevka/font-kits",
|
||||
"version": "30.3.0",
|
||||
"version": "30.3.1",
|
||||
"dependencies": {
|
||||
"@iosevka/geometry": "30.3.0",
|
||||
"@iosevka/glyph": "30.3.0",
|
||||
"@iosevka/util": "30.3.0"
|
||||
"@iosevka/geometry": "30.3.1",
|
||||
"@iosevka/glyph": "30.3.1",
|
||||
"@iosevka/util": "30.3.1"
|
||||
}
|
||||
},
|
||||
"packages/font-otl": {
|
||||
"name": "@iosevka/font-otl",
|
||||
"version": "30.3.0",
|
||||
"version": "30.3.1",
|
||||
"dependencies": {
|
||||
"@iosevka/font-glyphs": "30.3.0",
|
||||
"@iosevka/glyph": "30.3.0",
|
||||
"@iosevka/font-glyphs": "30.3.1",
|
||||
"@iosevka/glyph": "30.3.1",
|
||||
"toposort": "^2.0.2"
|
||||
}
|
||||
},
|
||||
"packages/geometry": {
|
||||
"name": "@iosevka/geometry",
|
||||
"version": "30.3.0",
|
||||
"version": "30.3.1",
|
||||
"dependencies": {
|
||||
"@iosevka/util": "30.3.0",
|
||||
"@iosevka/util": "30.3.1",
|
||||
"spiro": "^3.0.1",
|
||||
"typo-geom": "^0.15.1"
|
||||
}
|
||||
},
|
||||
"packages/geometry-cache": {
|
||||
"name": "@iosevka/geometry-cache",
|
||||
"version": "30.3.0",
|
||||
"version": "30.3.1",
|
||||
"dependencies": {
|
||||
"@iosevka/geometry": "30.3.0",
|
||||
"@iosevka/geometry": "30.3.1",
|
||||
"@msgpack/msgpack": "^2.8.0"
|
||||
}
|
||||
},
|
||||
"packages/glyph": {
|
||||
"name": "@iosevka/glyph",
|
||||
"version": "30.3.0",
|
||||
"version": "30.3.1",
|
||||
"dependencies": {
|
||||
"@iosevka/geometry": "30.3.0"
|
||||
"@iosevka/geometry": "30.3.1"
|
||||
}
|
||||
},
|
||||
"packages/param": {
|
||||
"name": "@iosevka/param",
|
||||
"version": "30.3.0",
|
||||
"version": "30.3.1",
|
||||
"dependencies": {
|
||||
"@iosevka/util": "30.3.0"
|
||||
"@iosevka/util": "30.3.1"
|
||||
}
|
||||
},
|
||||
"packages/util": {
|
||||
"name": "@iosevka/util",
|
||||
"version": "30.3.0"
|
||||
"version": "30.3.1"
|
||||
},
|
||||
"tools/amend-readme": {
|
||||
"name": "@iosevka/amend-readme",
|
||||
"version": "30.3.0",
|
||||
"version": "30.3.1",
|
||||
"dependencies": {
|
||||
"@iarna/toml": "^2.2.5",
|
||||
"@iosevka/param": "30.3.0",
|
||||
"@iosevka/param": "30.3.1",
|
||||
"@unicode/unicode-15.1.0": "^1.5.2"
|
||||
}
|
||||
},
|
||||
"tools/data-export": {
|
||||
"name": "@iosevka/data-export",
|
||||
"version": "30.3.0",
|
||||
"version": "30.3.1",
|
||||
"dependencies": {
|
||||
"@iarna/toml": "^2.2.5",
|
||||
"@iosevka/param": "30.3.0",
|
||||
"@iosevka/param": "30.3.1",
|
||||
"@unicode/unicode-15.1.0": "^1.5.2",
|
||||
"cldr": "^7.5.0"
|
||||
}
|
||||
},
|
||||
"tools/generate-samples": {
|
||||
"name": "@iosevka/generate-samples",
|
||||
"version": "30.3.0",
|
||||
"version": "30.3.1",
|
||||
"dependencies": {
|
||||
"@iosevka/data-export": "30.3.0"
|
||||
"@iosevka/data-export": "30.3.1"
|
||||
}
|
||||
},
|
||||
"tools/misc": {
|
||||
"name": "@iosevka/misc",
|
||||
"version": "30.3.0",
|
||||
"version": "30.3.1",
|
||||
"dependencies": {
|
||||
"@iosevka/util": "30.3.0",
|
||||
"@iosevka/util": "30.3.1",
|
||||
"semver": "^7.6.0",
|
||||
"wawoff2": "^2.0.1"
|
||||
}
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
{
|
||||
"name": "@iosevka/monorepo",
|
||||
"version": "30.3.0",
|
||||
"version": "30.3.1",
|
||||
"workspaces": [
|
||||
"packages/*",
|
||||
"tools/*"
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
{
|
||||
"name": "@iosevka/font-glyphs",
|
||||
"version": "30.3.0",
|
||||
"version": "30.3.1",
|
||||
"private": true,
|
||||
"exports": {
|
||||
".": "./src/index.mjs",
|
||||
|
@ -8,11 +8,11 @@
|
|||
"./unicode-knowledge": "./src/meta/unicode-knowledge.mjs"
|
||||
},
|
||||
"dependencies": {
|
||||
"@iosevka/font-kits": "30.3.0",
|
||||
"@iosevka/geometry": "30.3.0",
|
||||
"@iosevka/geometry-cache": "30.3.0",
|
||||
"@iosevka/glyph": "30.3.0",
|
||||
"@iosevka/util": "30.3.0",
|
||||
"@iosevka/font-kits": "30.3.1",
|
||||
"@iosevka/geometry": "30.3.1",
|
||||
"@iosevka/geometry-cache": "30.3.1",
|
||||
"@iosevka/glyph": "30.3.1",
|
||||
"@iosevka/util": "30.3.1",
|
||||
"typo-geom": "^0.15.1"
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,14 +1,14 @@
|
|||
{
|
||||
"name": "@iosevka/font-kits",
|
||||
"version": "30.3.0",
|
||||
"version": "30.3.1",
|
||||
"private": true,
|
||||
"exports": {
|
||||
"./boole-kit": "./src/boole-kit.mjs",
|
||||
"./spiro-kit": "./src/spiro-kit.mjs"
|
||||
},
|
||||
"dependencies": {
|
||||
"@iosevka/geometry": "30.3.0",
|
||||
"@iosevka/glyph": "30.3.0",
|
||||
"@iosevka/util": "30.3.0"
|
||||
"@iosevka/geometry": "30.3.1",
|
||||
"@iosevka/glyph": "30.3.1",
|
||||
"@iosevka/util": "30.3.1"
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,13 +1,13 @@
|
|||
{
|
||||
"name": "@iosevka/font-otl",
|
||||
"version": "30.3.0",
|
||||
"version": "30.3.1",
|
||||
"private": true,
|
||||
"exports": {
|
||||
".": "./src/index.mjs"
|
||||
},
|
||||
"dependencies": {
|
||||
"@iosevka/font-glyphs": "30.3.0",
|
||||
"@iosevka/glyph": "30.3.0",
|
||||
"@iosevka/font-glyphs": "30.3.1",
|
||||
"@iosevka/glyph": "30.3.1",
|
||||
"toposort": "^2.0.2"
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
{
|
||||
"name": "@iosevka/font",
|
||||
"version": "30.3.0",
|
||||
"version": "30.3.1",
|
||||
"private": true,
|
||||
"exports": {
|
||||
".": "./src/index.mjs",
|
||||
|
@ -10,13 +10,13 @@
|
|||
},
|
||||
"dependencies": {
|
||||
"@iarna/toml": "^2.2.5",
|
||||
"@iosevka/font-glyphs": "30.3.0",
|
||||
"@iosevka/font-otl": "30.3.0",
|
||||
"@iosevka/geometry": "30.3.0",
|
||||
"@iosevka/geometry-cache": "30.3.0",
|
||||
"@iosevka/glyph": "30.3.0",
|
||||
"@iosevka/param": "30.3.0",
|
||||
"@iosevka/util": "30.3.0",
|
||||
"@iosevka/font-glyphs": "30.3.1",
|
||||
"@iosevka/font-otl": "30.3.1",
|
||||
"@iosevka/geometry": "30.3.1",
|
||||
"@iosevka/geometry-cache": "30.3.1",
|
||||
"@iosevka/glyph": "30.3.1",
|
||||
"@iosevka/param": "30.3.1",
|
||||
"@iosevka/util": "30.3.1",
|
||||
"harfbuzzjs": "^0.3.4",
|
||||
"ot-builder": "^1.7.3",
|
||||
"semver": "^7.6.0"
|
||||
|
|
|
@ -1,12 +1,12 @@
|
|||
{
|
||||
"name": "@iosevka/geometry-cache",
|
||||
"version": "30.3.0",
|
||||
"version": "30.3.1",
|
||||
"private": true,
|
||||
"exports": {
|
||||
".": "./src/index.mjs"
|
||||
},
|
||||
"dependencies": {
|
||||
"@iosevka/geometry": "30.3.0",
|
||||
"@iosevka/geometry": "30.3.1",
|
||||
"@msgpack/msgpack": "^2.8.0"
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
{
|
||||
"name": "@iosevka/geometry",
|
||||
"version": "30.3.0",
|
||||
"version": "30.3.1",
|
||||
"private": true,
|
||||
"exports": {
|
||||
".": "./src/index.mjs",
|
||||
|
@ -13,7 +13,7 @@
|
|||
"./spiro-control": "./src/spiro-control.mjs"
|
||||
},
|
||||
"dependencies": {
|
||||
"@iosevka/util": "30.3.0",
|
||||
"@iosevka/util": "30.3.1",
|
||||
"spiro": "^3.0.1",
|
||||
"typo-geom": "^0.15.1"
|
||||
}
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
{
|
||||
"name": "@iosevka/glyph",
|
||||
"version": "30.3.0",
|
||||
"version": "30.3.1",
|
||||
"private": true,
|
||||
"exports": {
|
||||
".": "./src/glyph.mjs",
|
||||
|
@ -9,6 +9,6 @@
|
|||
"./relation": "./src/relation.mjs"
|
||||
},
|
||||
"dependencies": {
|
||||
"@iosevka/geometry": "30.3.0"
|
||||
"@iosevka/geometry": "30.3.1"
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
{
|
||||
"name": "@iosevka/param",
|
||||
"version": "30.3.0",
|
||||
"version": "30.3.1",
|
||||
"private": true,
|
||||
"exports": {
|
||||
".": "./src/index.mjs",
|
||||
|
@ -9,6 +9,6 @@
|
|||
"./metric-override": "./src/metric-override.mjs"
|
||||
},
|
||||
"dependencies": {
|
||||
"@iosevka/util": "30.3.0"
|
||||
"@iosevka/util": "30.3.1"
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
{
|
||||
"name": "@iosevka/util",
|
||||
"version": "30.3.0",
|
||||
"version": "30.3.1",
|
||||
"private": true,
|
||||
"exports": {
|
||||
".": "./src/index.mjs",
|
||||
|
|
|
@ -1,13 +1,13 @@
|
|||
{
|
||||
"name": "@iosevka/amend-readme",
|
||||
"version": "30.3.0",
|
||||
"version": "30.3.1",
|
||||
"private": true,
|
||||
"exports": {
|
||||
".": "./src/index.mjs"
|
||||
},
|
||||
"dependencies": {
|
||||
"@iarna/toml": "^2.2.5",
|
||||
"@iosevka/param": "30.3.0",
|
||||
"@iosevka/param": "30.3.1",
|
||||
"@unicode/unicode-15.1.0": "^1.5.2"
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
{
|
||||
"name": "@iosevka/data-export",
|
||||
"version": "30.3.0",
|
||||
"version": "30.3.1",
|
||||
"private": true,
|
||||
"exports": {
|
||||
".": "./src/index.mjs",
|
||||
|
@ -10,7 +10,7 @@
|
|||
},
|
||||
"dependencies": {
|
||||
"@iarna/toml": "^2.2.5",
|
||||
"@iosevka/param": "30.3.0",
|
||||
"@iosevka/param": "30.3.1",
|
||||
"@unicode/unicode-15.1.0": "^1.5.2",
|
||||
"cldr": "^7.5.0"
|
||||
}
|
||||
|
|
24
tools/data-export/src/atlas.mjs
Normal file
24
tools/data-export/src/atlas.mjs
Normal file
|
@ -0,0 +1,24 @@
|
|||
import fs from "fs";
|
||||
|
||||
import { getCharMapAndSupportedLanguageList } from "./supported-languages.mjs";
|
||||
|
||||
export default main;
|
||||
async function main(argv) {
|
||||
const cl = await getCharMapAndSupportedLanguageList(
|
||||
argv.charMapPath,
|
||||
argv.charMapItalicPath,
|
||||
argv.charMapObliquePath,
|
||||
);
|
||||
|
||||
if (argv.outputShared) {
|
||||
await fs.promises.writeFile(argv.outputShared, JSON.stringify(cl.shared, null, 2));
|
||||
}
|
||||
|
||||
{
|
||||
delete cl.udatMap;
|
||||
await fs.promises.writeFile(
|
||||
argv.output,
|
||||
JSON.stringify({ version: argv.version, ...cl.unique }, null, 2),
|
||||
);
|
||||
}
|
||||
}
|
|
@ -25,6 +25,8 @@ export async function gatherCoverageData(covUpright, covItalic, covOblique) {
|
|||
|
||||
const lookup = await createCharDataLookup();
|
||||
|
||||
const udatMap = [];
|
||||
|
||||
for (const [[lchBlockStart, lchBlockEnd], block] of await collectBlockData()) {
|
||||
let blockResults = [];
|
||||
const [lchStart, lchEnd] = findFirstLastChar(lchBlockStart, lchBlockEnd, covUpright);
|
||||
|
@ -35,7 +37,7 @@ export async function gatherCoverageData(covUpright, covItalic, covOblique) {
|
|||
const cdItalic = covItalic.get(lch);
|
||||
const cdOblique = covOblique.get(lch);
|
||||
if (cdUpright && cdItalic && cdOblique) {
|
||||
const [glyphName, typoFs, uprightFs, charProps] = cdUpright;
|
||||
const [, typoFs, uprightFs, charProps] = cdUpright;
|
||||
const [, , italicFs] = cdItalic;
|
||||
const [, , obliqueFs] = cdOblique;
|
||||
|
||||
|
@ -44,7 +46,6 @@ export async function gatherCoverageData(covUpright, covItalic, covOblique) {
|
|||
gc,
|
||||
charName,
|
||||
inFont: true,
|
||||
glyphName: glyphName,
|
||||
...charProps,
|
||||
...putFeatSeries(featureSeriesStore, "typographicFeatureSets", typoFs),
|
||||
...putFeatSeries(featureSeriesStore, "cvFeatureSetsUpright", uprightFs),
|
||||
|
@ -55,10 +56,11 @@ export async function gatherCoverageData(covUpright, covItalic, covOblique) {
|
|||
blockResults.push({ lch, gc, charName, inFont: false, glyphName: undefined });
|
||||
}
|
||||
}
|
||||
|
||||
if (blockResults.length) {
|
||||
unicodeCoverage.push({
|
||||
name: block,
|
||||
characters: blockResults.sort((a, b) => a.lch - b.lch),
|
||||
...cleanupBlockResultsForExport(blockResults, udatMap),
|
||||
});
|
||||
}
|
||||
}
|
||||
|
@ -69,7 +71,31 @@ export async function gatherCoverageData(covUpright, covItalic, covOblique) {
|
|||
featureSeries[id] = x;
|
||||
}
|
||||
|
||||
return { unicodeCoverage, featureSeries };
|
||||
return { unicodeCoverage, featureSeries, udatMap };
|
||||
}
|
||||
|
||||
function cleanupBlockResultsForExport(br, udatMap) {
|
||||
br.sort((a, b) => a.lch - b.lch);
|
||||
|
||||
let result = [];
|
||||
let lchMin = 0xffffff;
|
||||
let lchMax = 0;
|
||||
for (const ch of br) {
|
||||
let ch1 = { ...ch };
|
||||
if (ch1.lch < lchMin) lchMin = ch1.lch;
|
||||
if (ch1.lch > lchMax) lchMax = ch1.lch;
|
||||
udatMap.push([ch1.lch, ch1.gc, ch1.charName]);
|
||||
|
||||
delete ch1.gc;
|
||||
delete ch1.charName;
|
||||
result.push(ch1);
|
||||
}
|
||||
|
||||
return {
|
||||
lchMin,
|
||||
lchMax,
|
||||
characters: result,
|
||||
};
|
||||
}
|
||||
|
||||
function putFeatSeries(store, k, featSeriesList) {
|
||||
|
|
|
@ -1,18 +1,12 @@
|
|||
import fs from "fs";
|
||||
|
||||
import { parseLigationData } from "./ligation-data.mjs";
|
||||
import { getCharMapAndSupportedLanguageList } from "./supported-languages.mjs";
|
||||
import { parseVariantsData } from "./variants-data.mjs";
|
||||
|
||||
export default main;
|
||||
async function main(argv) {
|
||||
const variantsData = await parseVariantsData(argv);
|
||||
const ligationData = await parseLigationData(argv);
|
||||
const cl = await getCharMapAndSupportedLanguageList(
|
||||
argv.charMapPath,
|
||||
argv.charMapItalicPath,
|
||||
argv.charMapObliquePath,
|
||||
);
|
||||
await fs.promises.writeFile(
|
||||
argv.exportPathMeta,
|
||||
JSON.stringify(
|
||||
|
@ -29,8 +23,4 @@ async function main(argv) {
|
|||
2,
|
||||
),
|
||||
);
|
||||
await fs.promises.writeFile(
|
||||
argv.exportPathCov,
|
||||
JSON.stringify({ version: argv.version, ...cl }, null, 2),
|
||||
);
|
||||
}
|
|
@ -97,12 +97,17 @@ export async function getCharMapAndSupportedLanguageList(cmpUpright, cmpItalic,
|
|||
const covData = await gatherCoverageData(rawCoverage, rawCoverageItalic, rawCoverageOblique);
|
||||
|
||||
return {
|
||||
unique: {
|
||||
featureSeries: covData.featureSeries,
|
||||
unicodeCoverage: covData.unicodeCoverage,
|
||||
},
|
||||
shared: {
|
||||
stats: {
|
||||
glyphCount: charMap.length,
|
||||
codePointCount: rawCoverage.size,
|
||||
},
|
||||
featureSeries: covData.featureSeries,
|
||||
unicodeCoverage: covData.unicodeCoverage,
|
||||
udatMap: covData.udatMap,
|
||||
languages: Array.from(getSupportedLanguageSet(rawCoverage)).sort(),
|
||||
},
|
||||
};
|
||||
}
|
||||
|
|
|
@ -1,11 +1,11 @@
|
|||
{
|
||||
"name": "@iosevka/generate-samples",
|
||||
"version": "30.3.0",
|
||||
"version": "30.3.1",
|
||||
"private": true,
|
||||
"exports": {
|
||||
".": "./src/index.mjs"
|
||||
},
|
||||
"dependencies": {
|
||||
"@iosevka/data-export": "30.3.0"
|
||||
"@iosevka/data-export": "30.3.1"
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,10 +1,10 @@
|
|||
{
|
||||
"name": "@iosevka/misc",
|
||||
"version": "30.3.0",
|
||||
"version": "30.3.1",
|
||||
"private": true,
|
||||
"dependencies": {
|
||||
"semver": "^7.6.0",
|
||||
"wawoff2": "^2.0.1",
|
||||
"@iosevka/util": "30.3.0"
|
||||
"@iosevka/util": "30.3.1"
|
||||
}
|
||||
}
|
||||
|
|
|
@ -952,6 +952,11 @@ async function CreateGroupArchiveFile(dir, out, ...files) {
|
|||
const Pages = task(`pages`, async t => {
|
||||
await t.need(
|
||||
PagesDataExport,
|
||||
PagesFontVersionSync,
|
||||
PagesAtlasExport(`Iosevka`),
|
||||
PagesAtlasExport(`IosevkaSlab`),
|
||||
PagesAtlasExport(`IosevkaAile`),
|
||||
PagesAtlasExport(`IosevkaEtoile`),
|
||||
PagesFontExport`Iosevka`,
|
||||
PagesFontExport`IosevkaSlab`,
|
||||
PagesFontExport`IosevkaAile`,
|
||||
|
@ -969,28 +974,9 @@ const PagesDir = oracle(`pages-dir-path`, async t => {
|
|||
return rp.buildOptions.__pagesDir;
|
||||
});
|
||||
|
||||
const PagesDataExport = task(`pages:data-export`, async t => {
|
||||
const PagesFontVersionSync = task(`pages:font-version-sync`, async t => {
|
||||
const [version] = await t.need(Version);
|
||||
const [pagesDir] = await t.need(PagesDir, Version, Parameters, UtilScripts);
|
||||
const [cm, cmi, cmo] = await t.need(
|
||||
BuildCM("Iosevka", "Iosevka-Regular"),
|
||||
BuildCM("Iosevka", "Iosevka-Italic"),
|
||||
BuildCM("Iosevka", "Iosevka-Oblique"),
|
||||
);
|
||||
await node(`tools/generate-samples/src/tokenized-sample-code.mjs`, {
|
||||
output: Path.resolve(pagesDir, "shared/tokenized-sample-code/alphabet.txt.json"),
|
||||
});
|
||||
await node(`tools/data-export/src/index.mjs`, {
|
||||
version,
|
||||
paramsDir: Path.resolve("params"),
|
||||
charMapPath: cm.full,
|
||||
charMapItalicPath: cmi.full,
|
||||
charMapObliquePath: cmo.full,
|
||||
exportPathMeta: Path.resolve(pagesDir, "shared/data-import/raw/metadata.json"),
|
||||
exportPathCov: Path.resolve(pagesDir, "shared/data-import/raw/coverage.json"),
|
||||
});
|
||||
|
||||
// Update packages.json version
|
||||
const [pagesDir] = await t.need(PagesDir);
|
||||
const packageJson = JSON.parse(
|
||||
await FS.promises.readFile(Path.resolve(pagesDir, "package.json"), "utf-8"),
|
||||
);
|
||||
|
@ -1001,6 +987,40 @@ const PagesDataExport = task(`pages:data-export`, async t => {
|
|||
);
|
||||
});
|
||||
|
||||
const PagesDataExport = task(`pages:data-export`, async t => {
|
||||
const [version] = await t.need(Version);
|
||||
const [pagesDir] = await t.need(PagesDir, Parameters, UtilScripts);
|
||||
await node(`tools/generate-samples/src/tokenized-sample-code.mjs`, {
|
||||
output: Path.resolve(pagesDir, "shared/tokenized-sample-code/alphabet.txt.json"),
|
||||
});
|
||||
await node(`tools/data-export/src/meta.mjs`, {
|
||||
version,
|
||||
paramsDir: Path.resolve("params"),
|
||||
exportPathMeta: Path.resolve(pagesDir, "shared/data-import/raw/metadata.json"),
|
||||
});
|
||||
});
|
||||
|
||||
const PagesAtlasExport = task.group(`pages:atlas-export`, async (t, gr) => {
|
||||
const [version] = await t.need(Version);
|
||||
const [pagesDir] = await t.need(PagesDir, Parameters, UtilScripts);
|
||||
const [cm, cmi, cmo] = await t.need(
|
||||
BuildCM(gr, `${gr}-Regular`),
|
||||
BuildCM(gr, `${gr}-Italic`),
|
||||
BuildCM(gr, `${gr}-Oblique`),
|
||||
);
|
||||
await node(`tools/data-export/src/atlas.mjs`, {
|
||||
version,
|
||||
charMapPath: cm.full,
|
||||
charMapItalicPath: cmi.full,
|
||||
charMapObliquePath: cmo.full,
|
||||
outputShared:
|
||||
gr === "Iosevka"
|
||||
? Path.resolve(pagesDir, "shared/data-import/raw/atlas-shared.json")
|
||||
: null,
|
||||
output: Path.resolve(pagesDir, `shared/data-import/raw/atlas-${gr}.json`),
|
||||
});
|
||||
});
|
||||
|
||||
const PagesFontExport = task.group(`pages:font-export`, async (target, gr) => {
|
||||
target.is.volatile();
|
||||
const [pagesDir] = await target.need(PagesDir);
|
||||
|
@ -1012,8 +1032,12 @@ const PagesFontExport = task.group(`pages:font-export`, async (target, gr) => {
|
|||
await rm(Path.resolve(outDir, "TTF"));
|
||||
});
|
||||
|
||||
const PagesFastFontExport = task.group(`pages:fast-font-export`, async (target, gr) => {
|
||||
const PagesFastFont = task.group(`pages:ff`, async (t, gr) => {
|
||||
await t.need(PagesDataExport, PagesAtlasExport(gr), PagesFastFontExportImpl(gr));
|
||||
});
|
||||
const PagesFastFontExportImpl = task.group(`pages:fast-font-export-impl`, async (target, gr) => {
|
||||
target.is.volatile();
|
||||
|
||||
const [pagesDir] = await target.need(PagesDir);
|
||||
if (!pagesDir) return;
|
||||
const outDir = Path.resolve(pagesDir, "shared/fonts/imports", gr);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue