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]
|
[buildPlans.IosevkaSlab]
|
||||||
family = "Iosevka Slab"
|
family = "Iosevka Slab"
|
||||||
desc = "Slab-serif"
|
desc = "Slab-serif"
|
||||||
|
buildCharMap = true
|
||||||
serifs = "slab"
|
serifs = "slab"
|
||||||
snapshotFamily = 'Iosevka Slab'
|
snapshotFamily = 'Iosevka Slab'
|
||||||
snapshotFeature = {"NWID" = 0}
|
snapshotFeature = {"NWID" = 0}
|
||||||
|
@ -677,6 +678,7 @@ inherits = "ss18"
|
||||||
family = "Iosevka Aile"
|
family = "Iosevka Aile"
|
||||||
desc = "Sans-serif"
|
desc = "Sans-serif"
|
||||||
spacing = "quasi-proportional"
|
spacing = "quasi-proportional"
|
||||||
|
buildCharMap = true
|
||||||
snapshotFamily = 'Iosevka Aile'
|
snapshotFamily = 'Iosevka Aile'
|
||||||
snapshotFeature = {"NWID" = 0}
|
snapshotFeature = {"NWID" = 0}
|
||||||
exportGlyphNames = true
|
exportGlyphNames = true
|
||||||
|
@ -761,6 +763,7 @@ css = "normal"
|
||||||
family = "Iosevka Etoile"
|
family = "Iosevka Etoile"
|
||||||
desc = "Slab-serif"
|
desc = "Slab-serif"
|
||||||
spacing = "quasi-proportional"
|
spacing = "quasi-proportional"
|
||||||
|
buildCharMap = true
|
||||||
serifs = 'slab'
|
serifs = 'slab'
|
||||||
snapshotFamily = 'Iosevka Etoile'
|
snapshotFamily = 'Iosevka Etoile'
|
||||||
snapshotFeature = {"NWID" = 0}
|
snapshotFeature = {"NWID" = 0}
|
||||||
|
|
80
package-lock.json
generated
80
package-lock.json
generated
|
@ -1,12 +1,12 @@
|
||||||
{
|
{
|
||||||
"name": "@iosevka/monorepo",
|
"name": "@iosevka/monorepo",
|
||||||
"version": "30.3.0",
|
"version": "30.3.1",
|
||||||
"lockfileVersion": 3,
|
"lockfileVersion": 3,
|
||||||
"requires": true,
|
"requires": true,
|
||||||
"packages": {
|
"packages": {
|
||||||
"": {
|
"": {
|
||||||
"name": "@iosevka/monorepo",
|
"name": "@iosevka/monorepo",
|
||||||
"version": "30.3.0",
|
"version": "30.3.1",
|
||||||
"workspaces": [
|
"workspaces": [
|
||||||
"packages/*",
|
"packages/*",
|
||||||
"tools/*"
|
"tools/*"
|
||||||
|
@ -4310,16 +4310,16 @@
|
||||||
},
|
},
|
||||||
"packages/font": {
|
"packages/font": {
|
||||||
"name": "@iosevka/font",
|
"name": "@iosevka/font",
|
||||||
"version": "30.3.0",
|
"version": "30.3.1",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@iarna/toml": "^2.2.5",
|
"@iarna/toml": "^2.2.5",
|
||||||
"@iosevka/font-glyphs": "30.3.0",
|
"@iosevka/font-glyphs": "30.3.1",
|
||||||
"@iosevka/font-otl": "30.3.0",
|
"@iosevka/font-otl": "30.3.1",
|
||||||
"@iosevka/geometry": "30.3.0",
|
"@iosevka/geometry": "30.3.1",
|
||||||
"@iosevka/geometry-cache": "30.3.0",
|
"@iosevka/geometry-cache": "30.3.1",
|
||||||
"@iosevka/glyph": "30.3.0",
|
"@iosevka/glyph": "30.3.1",
|
||||||
"@iosevka/param": "30.3.0",
|
"@iosevka/param": "30.3.1",
|
||||||
"@iosevka/util": "30.3.0",
|
"@iosevka/util": "30.3.1",
|
||||||
"harfbuzzjs": "^0.3.4",
|
"harfbuzzjs": "^0.3.4",
|
||||||
"ot-builder": "^1.7.3",
|
"ot-builder": "^1.7.3",
|
||||||
"semver": "^7.6.0"
|
"semver": "^7.6.0"
|
||||||
|
@ -4327,100 +4327,100 @@
|
||||||
},
|
},
|
||||||
"packages/font-glyphs": {
|
"packages/font-glyphs": {
|
||||||
"name": "@iosevka/font-glyphs",
|
"name": "@iosevka/font-glyphs",
|
||||||
"version": "30.3.0",
|
"version": "30.3.1",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@iosevka/font-kits": "30.3.0",
|
"@iosevka/font-kits": "30.3.1",
|
||||||
"@iosevka/geometry": "30.3.0",
|
"@iosevka/geometry": "30.3.1",
|
||||||
"@iosevka/geometry-cache": "30.3.0",
|
"@iosevka/geometry-cache": "30.3.1",
|
||||||
"@iosevka/glyph": "30.3.0",
|
"@iosevka/glyph": "30.3.1",
|
||||||
"@iosevka/util": "30.3.0",
|
"@iosevka/util": "30.3.1",
|
||||||
"typo-geom": "^0.15.1"
|
"typo-geom": "^0.15.1"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"packages/font-kits": {
|
"packages/font-kits": {
|
||||||
"name": "@iosevka/font-kits",
|
"name": "@iosevka/font-kits",
|
||||||
"version": "30.3.0",
|
"version": "30.3.1",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@iosevka/geometry": "30.3.0",
|
"@iosevka/geometry": "30.3.1",
|
||||||
"@iosevka/glyph": "30.3.0",
|
"@iosevka/glyph": "30.3.1",
|
||||||
"@iosevka/util": "30.3.0"
|
"@iosevka/util": "30.3.1"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"packages/font-otl": {
|
"packages/font-otl": {
|
||||||
"name": "@iosevka/font-otl",
|
"name": "@iosevka/font-otl",
|
||||||
"version": "30.3.0",
|
"version": "30.3.1",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@iosevka/font-glyphs": "30.3.0",
|
"@iosevka/font-glyphs": "30.3.1",
|
||||||
"@iosevka/glyph": "30.3.0",
|
"@iosevka/glyph": "30.3.1",
|
||||||
"toposort": "^2.0.2"
|
"toposort": "^2.0.2"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"packages/geometry": {
|
"packages/geometry": {
|
||||||
"name": "@iosevka/geometry",
|
"name": "@iosevka/geometry",
|
||||||
"version": "30.3.0",
|
"version": "30.3.1",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@iosevka/util": "30.3.0",
|
"@iosevka/util": "30.3.1",
|
||||||
"spiro": "^3.0.1",
|
"spiro": "^3.0.1",
|
||||||
"typo-geom": "^0.15.1"
|
"typo-geom": "^0.15.1"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"packages/geometry-cache": {
|
"packages/geometry-cache": {
|
||||||
"name": "@iosevka/geometry-cache",
|
"name": "@iosevka/geometry-cache",
|
||||||
"version": "30.3.0",
|
"version": "30.3.1",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@iosevka/geometry": "30.3.0",
|
"@iosevka/geometry": "30.3.1",
|
||||||
"@msgpack/msgpack": "^2.8.0"
|
"@msgpack/msgpack": "^2.8.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"packages/glyph": {
|
"packages/glyph": {
|
||||||
"name": "@iosevka/glyph",
|
"name": "@iosevka/glyph",
|
||||||
"version": "30.3.0",
|
"version": "30.3.1",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@iosevka/geometry": "30.3.0"
|
"@iosevka/geometry": "30.3.1"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"packages/param": {
|
"packages/param": {
|
||||||
"name": "@iosevka/param",
|
"name": "@iosevka/param",
|
||||||
"version": "30.3.0",
|
"version": "30.3.1",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@iosevka/util": "30.3.0"
|
"@iosevka/util": "30.3.1"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"packages/util": {
|
"packages/util": {
|
||||||
"name": "@iosevka/util",
|
"name": "@iosevka/util",
|
||||||
"version": "30.3.0"
|
"version": "30.3.1"
|
||||||
},
|
},
|
||||||
"tools/amend-readme": {
|
"tools/amend-readme": {
|
||||||
"name": "@iosevka/amend-readme",
|
"name": "@iosevka/amend-readme",
|
||||||
"version": "30.3.0",
|
"version": "30.3.1",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@iarna/toml": "^2.2.5",
|
"@iarna/toml": "^2.2.5",
|
||||||
"@iosevka/param": "30.3.0",
|
"@iosevka/param": "30.3.1",
|
||||||
"@unicode/unicode-15.1.0": "^1.5.2"
|
"@unicode/unicode-15.1.0": "^1.5.2"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"tools/data-export": {
|
"tools/data-export": {
|
||||||
"name": "@iosevka/data-export",
|
"name": "@iosevka/data-export",
|
||||||
"version": "30.3.0",
|
"version": "30.3.1",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@iarna/toml": "^2.2.5",
|
"@iarna/toml": "^2.2.5",
|
||||||
"@iosevka/param": "30.3.0",
|
"@iosevka/param": "30.3.1",
|
||||||
"@unicode/unicode-15.1.0": "^1.5.2",
|
"@unicode/unicode-15.1.0": "^1.5.2",
|
||||||
"cldr": "^7.5.0"
|
"cldr": "^7.5.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"tools/generate-samples": {
|
"tools/generate-samples": {
|
||||||
"name": "@iosevka/generate-samples",
|
"name": "@iosevka/generate-samples",
|
||||||
"version": "30.3.0",
|
"version": "30.3.1",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@iosevka/data-export": "30.3.0"
|
"@iosevka/data-export": "30.3.1"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"tools/misc": {
|
"tools/misc": {
|
||||||
"name": "@iosevka/misc",
|
"name": "@iosevka/misc",
|
||||||
"version": "30.3.0",
|
"version": "30.3.1",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@iosevka/util": "30.3.0",
|
"@iosevka/util": "30.3.1",
|
||||||
"semver": "^7.6.0",
|
"semver": "^7.6.0",
|
||||||
"wawoff2": "^2.0.1"
|
"wawoff2": "^2.0.1"
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
{
|
{
|
||||||
"name": "@iosevka/monorepo",
|
"name": "@iosevka/monorepo",
|
||||||
"version": "30.3.0",
|
"version": "30.3.1",
|
||||||
"workspaces": [
|
"workspaces": [
|
||||||
"packages/*",
|
"packages/*",
|
||||||
"tools/*"
|
"tools/*"
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
{
|
{
|
||||||
"name": "@iosevka/font-glyphs",
|
"name": "@iosevka/font-glyphs",
|
||||||
"version": "30.3.0",
|
"version": "30.3.1",
|
||||||
"private": true,
|
"private": true,
|
||||||
"exports": {
|
"exports": {
|
||||||
".": "./src/index.mjs",
|
".": "./src/index.mjs",
|
||||||
|
@ -8,11 +8,11 @@
|
||||||
"./unicode-knowledge": "./src/meta/unicode-knowledge.mjs"
|
"./unicode-knowledge": "./src/meta/unicode-knowledge.mjs"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@iosevka/font-kits": "30.3.0",
|
"@iosevka/font-kits": "30.3.1",
|
||||||
"@iosevka/geometry": "30.3.0",
|
"@iosevka/geometry": "30.3.1",
|
||||||
"@iosevka/geometry-cache": "30.3.0",
|
"@iosevka/geometry-cache": "30.3.1",
|
||||||
"@iosevka/glyph": "30.3.0",
|
"@iosevka/glyph": "30.3.1",
|
||||||
"@iosevka/util": "30.3.0",
|
"@iosevka/util": "30.3.1",
|
||||||
"typo-geom": "^0.15.1"
|
"typo-geom": "^0.15.1"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,14 +1,14 @@
|
||||||
{
|
{
|
||||||
"name": "@iosevka/font-kits",
|
"name": "@iosevka/font-kits",
|
||||||
"version": "30.3.0",
|
"version": "30.3.1",
|
||||||
"private": true,
|
"private": true,
|
||||||
"exports": {
|
"exports": {
|
||||||
"./boole-kit": "./src/boole-kit.mjs",
|
"./boole-kit": "./src/boole-kit.mjs",
|
||||||
"./spiro-kit": "./src/spiro-kit.mjs"
|
"./spiro-kit": "./src/spiro-kit.mjs"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@iosevka/geometry": "30.3.0",
|
"@iosevka/geometry": "30.3.1",
|
||||||
"@iosevka/glyph": "30.3.0",
|
"@iosevka/glyph": "30.3.1",
|
||||||
"@iosevka/util": "30.3.0"
|
"@iosevka/util": "30.3.1"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,13 +1,13 @@
|
||||||
{
|
{
|
||||||
"name": "@iosevka/font-otl",
|
"name": "@iosevka/font-otl",
|
||||||
"version": "30.3.0",
|
"version": "30.3.1",
|
||||||
"private": true,
|
"private": true,
|
||||||
"exports": {
|
"exports": {
|
||||||
".": "./src/index.mjs"
|
".": "./src/index.mjs"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@iosevka/font-glyphs": "30.3.0",
|
"@iosevka/font-glyphs": "30.3.1",
|
||||||
"@iosevka/glyph": "30.3.0",
|
"@iosevka/glyph": "30.3.1",
|
||||||
"toposort": "^2.0.2"
|
"toposort": "^2.0.2"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
{
|
{
|
||||||
"name": "@iosevka/font",
|
"name": "@iosevka/font",
|
||||||
"version": "30.3.0",
|
"version": "30.3.1",
|
||||||
"private": true,
|
"private": true,
|
||||||
"exports": {
|
"exports": {
|
||||||
".": "./src/index.mjs",
|
".": "./src/index.mjs",
|
||||||
|
@ -10,13 +10,13 @@
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@iarna/toml": "^2.2.5",
|
"@iarna/toml": "^2.2.5",
|
||||||
"@iosevka/font-glyphs": "30.3.0",
|
"@iosevka/font-glyphs": "30.3.1",
|
||||||
"@iosevka/font-otl": "30.3.0",
|
"@iosevka/font-otl": "30.3.1",
|
||||||
"@iosevka/geometry": "30.3.0",
|
"@iosevka/geometry": "30.3.1",
|
||||||
"@iosevka/geometry-cache": "30.3.0",
|
"@iosevka/geometry-cache": "30.3.1",
|
||||||
"@iosevka/glyph": "30.3.0",
|
"@iosevka/glyph": "30.3.1",
|
||||||
"@iosevka/param": "30.3.0",
|
"@iosevka/param": "30.3.1",
|
||||||
"@iosevka/util": "30.3.0",
|
"@iosevka/util": "30.3.1",
|
||||||
"harfbuzzjs": "^0.3.4",
|
"harfbuzzjs": "^0.3.4",
|
||||||
"ot-builder": "^1.7.3",
|
"ot-builder": "^1.7.3",
|
||||||
"semver": "^7.6.0"
|
"semver": "^7.6.0"
|
||||||
|
|
|
@ -1,12 +1,12 @@
|
||||||
{
|
{
|
||||||
"name": "@iosevka/geometry-cache",
|
"name": "@iosevka/geometry-cache",
|
||||||
"version": "30.3.0",
|
"version": "30.3.1",
|
||||||
"private": true,
|
"private": true,
|
||||||
"exports": {
|
"exports": {
|
||||||
".": "./src/index.mjs"
|
".": "./src/index.mjs"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@iosevka/geometry": "30.3.0",
|
"@iosevka/geometry": "30.3.1",
|
||||||
"@msgpack/msgpack": "^2.8.0"
|
"@msgpack/msgpack": "^2.8.0"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
{
|
{
|
||||||
"name": "@iosevka/geometry",
|
"name": "@iosevka/geometry",
|
||||||
"version": "30.3.0",
|
"version": "30.3.1",
|
||||||
"private": true,
|
"private": true,
|
||||||
"exports": {
|
"exports": {
|
||||||
".": "./src/index.mjs",
|
".": "./src/index.mjs",
|
||||||
|
@ -13,7 +13,7 @@
|
||||||
"./spiro-control": "./src/spiro-control.mjs"
|
"./spiro-control": "./src/spiro-control.mjs"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@iosevka/util": "30.3.0",
|
"@iosevka/util": "30.3.1",
|
||||||
"spiro": "^3.0.1",
|
"spiro": "^3.0.1",
|
||||||
"typo-geom": "^0.15.1"
|
"typo-geom": "^0.15.1"
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
{
|
{
|
||||||
"name": "@iosevka/glyph",
|
"name": "@iosevka/glyph",
|
||||||
"version": "30.3.0",
|
"version": "30.3.1",
|
||||||
"private": true,
|
"private": true,
|
||||||
"exports": {
|
"exports": {
|
||||||
".": "./src/glyph.mjs",
|
".": "./src/glyph.mjs",
|
||||||
|
@ -9,6 +9,6 @@
|
||||||
"./relation": "./src/relation.mjs"
|
"./relation": "./src/relation.mjs"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@iosevka/geometry": "30.3.0"
|
"@iosevka/geometry": "30.3.1"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
{
|
{
|
||||||
"name": "@iosevka/param",
|
"name": "@iosevka/param",
|
||||||
"version": "30.3.0",
|
"version": "30.3.1",
|
||||||
"private": true,
|
"private": true,
|
||||||
"exports": {
|
"exports": {
|
||||||
".": "./src/index.mjs",
|
".": "./src/index.mjs",
|
||||||
|
@ -9,6 +9,6 @@
|
||||||
"./metric-override": "./src/metric-override.mjs"
|
"./metric-override": "./src/metric-override.mjs"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@iosevka/util": "30.3.0"
|
"@iosevka/util": "30.3.1"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
{
|
{
|
||||||
"name": "@iosevka/util",
|
"name": "@iosevka/util",
|
||||||
"version": "30.3.0",
|
"version": "30.3.1",
|
||||||
"private": true,
|
"private": true,
|
||||||
"exports": {
|
"exports": {
|
||||||
".": "./src/index.mjs",
|
".": "./src/index.mjs",
|
||||||
|
|
|
@ -1,13 +1,13 @@
|
||||||
{
|
{
|
||||||
"name": "@iosevka/amend-readme",
|
"name": "@iosevka/amend-readme",
|
||||||
"version": "30.3.0",
|
"version": "30.3.1",
|
||||||
"private": true,
|
"private": true,
|
||||||
"exports": {
|
"exports": {
|
||||||
".": "./src/index.mjs"
|
".": "./src/index.mjs"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@iarna/toml": "^2.2.5",
|
"@iarna/toml": "^2.2.5",
|
||||||
"@iosevka/param": "30.3.0",
|
"@iosevka/param": "30.3.1",
|
||||||
"@unicode/unicode-15.1.0": "^1.5.2"
|
"@unicode/unicode-15.1.0": "^1.5.2"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
{
|
{
|
||||||
"name": "@iosevka/data-export",
|
"name": "@iosevka/data-export",
|
||||||
"version": "30.3.0",
|
"version": "30.3.1",
|
||||||
"private": true,
|
"private": true,
|
||||||
"exports": {
|
"exports": {
|
||||||
".": "./src/index.mjs",
|
".": "./src/index.mjs",
|
||||||
|
@ -10,7 +10,7 @@
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@iarna/toml": "^2.2.5",
|
"@iarna/toml": "^2.2.5",
|
||||||
"@iosevka/param": "30.3.0",
|
"@iosevka/param": "30.3.1",
|
||||||
"@unicode/unicode-15.1.0": "^1.5.2",
|
"@unicode/unicode-15.1.0": "^1.5.2",
|
||||||
"cldr": "^7.5.0"
|
"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 lookup = await createCharDataLookup();
|
||||||
|
|
||||||
|
const udatMap = [];
|
||||||
|
|
||||||
for (const [[lchBlockStart, lchBlockEnd], block] of await collectBlockData()) {
|
for (const [[lchBlockStart, lchBlockEnd], block] of await collectBlockData()) {
|
||||||
let blockResults = [];
|
let blockResults = [];
|
||||||
const [lchStart, lchEnd] = findFirstLastChar(lchBlockStart, lchBlockEnd, covUpright);
|
const [lchStart, lchEnd] = findFirstLastChar(lchBlockStart, lchBlockEnd, covUpright);
|
||||||
|
@ -35,7 +37,7 @@ export async function gatherCoverageData(covUpright, covItalic, covOblique) {
|
||||||
const cdItalic = covItalic.get(lch);
|
const cdItalic = covItalic.get(lch);
|
||||||
const cdOblique = covOblique.get(lch);
|
const cdOblique = covOblique.get(lch);
|
||||||
if (cdUpright && cdItalic && cdOblique) {
|
if (cdUpright && cdItalic && cdOblique) {
|
||||||
const [glyphName, typoFs, uprightFs, charProps] = cdUpright;
|
const [, typoFs, uprightFs, charProps] = cdUpright;
|
||||||
const [, , italicFs] = cdItalic;
|
const [, , italicFs] = cdItalic;
|
||||||
const [, , obliqueFs] = cdOblique;
|
const [, , obliqueFs] = cdOblique;
|
||||||
|
|
||||||
|
@ -44,7 +46,6 @@ export async function gatherCoverageData(covUpright, covItalic, covOblique) {
|
||||||
gc,
|
gc,
|
||||||
charName,
|
charName,
|
||||||
inFont: true,
|
inFont: true,
|
||||||
glyphName: glyphName,
|
|
||||||
...charProps,
|
...charProps,
|
||||||
...putFeatSeries(featureSeriesStore, "typographicFeatureSets", typoFs),
|
...putFeatSeries(featureSeriesStore, "typographicFeatureSets", typoFs),
|
||||||
...putFeatSeries(featureSeriesStore, "cvFeatureSetsUpright", uprightFs),
|
...putFeatSeries(featureSeriesStore, "cvFeatureSetsUpright", uprightFs),
|
||||||
|
@ -55,10 +56,11 @@ export async function gatherCoverageData(covUpright, covItalic, covOblique) {
|
||||||
blockResults.push({ lch, gc, charName, inFont: false, glyphName: undefined });
|
blockResults.push({ lch, gc, charName, inFont: false, glyphName: undefined });
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (blockResults.length) {
|
if (blockResults.length) {
|
||||||
unicodeCoverage.push({
|
unicodeCoverage.push({
|
||||||
name: block,
|
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;
|
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) {
|
function putFeatSeries(store, k, featSeriesList) {
|
||||||
|
|
|
@ -1,18 +1,12 @@
|
||||||
import fs from "fs";
|
import fs from "fs";
|
||||||
|
|
||||||
import { parseLigationData } from "./ligation-data.mjs";
|
import { parseLigationData } from "./ligation-data.mjs";
|
||||||
import { getCharMapAndSupportedLanguageList } from "./supported-languages.mjs";
|
|
||||||
import { parseVariantsData } from "./variants-data.mjs";
|
import { parseVariantsData } from "./variants-data.mjs";
|
||||||
|
|
||||||
export default main;
|
export default main;
|
||||||
async function main(argv) {
|
async function main(argv) {
|
||||||
const variantsData = await parseVariantsData(argv);
|
const variantsData = await parseVariantsData(argv);
|
||||||
const ligationData = await parseLigationData(argv);
|
const ligationData = await parseLigationData(argv);
|
||||||
const cl = await getCharMapAndSupportedLanguageList(
|
|
||||||
argv.charMapPath,
|
|
||||||
argv.charMapItalicPath,
|
|
||||||
argv.charMapObliquePath,
|
|
||||||
);
|
|
||||||
await fs.promises.writeFile(
|
await fs.promises.writeFile(
|
||||||
argv.exportPathMeta,
|
argv.exportPathMeta,
|
||||||
JSON.stringify(
|
JSON.stringify(
|
||||||
|
@ -29,8 +23,4 @@ async function main(argv) {
|
||||||
2,
|
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);
|
const covData = await gatherCoverageData(rawCoverage, rawCoverageItalic, rawCoverageOblique);
|
||||||
|
|
||||||
return {
|
return {
|
||||||
stats: {
|
unique: {
|
||||||
glyphCount: charMap.length,
|
featureSeries: covData.featureSeries,
|
||||||
codePointCount: rawCoverage.size,
|
unicodeCoverage: covData.unicodeCoverage,
|
||||||
|
},
|
||||||
|
shared: {
|
||||||
|
stats: {
|
||||||
|
glyphCount: charMap.length,
|
||||||
|
codePointCount: rawCoverage.size,
|
||||||
|
},
|
||||||
|
udatMap: covData.udatMap,
|
||||||
|
languages: Array.from(getSupportedLanguageSet(rawCoverage)).sort(),
|
||||||
},
|
},
|
||||||
featureSeries: covData.featureSeries,
|
|
||||||
unicodeCoverage: covData.unicodeCoverage,
|
|
||||||
languages: Array.from(getSupportedLanguageSet(rawCoverage)).sort(),
|
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,11 +1,11 @@
|
||||||
{
|
{
|
||||||
"name": "@iosevka/generate-samples",
|
"name": "@iosevka/generate-samples",
|
||||||
"version": "30.3.0",
|
"version": "30.3.1",
|
||||||
"private": true,
|
"private": true,
|
||||||
"exports": {
|
"exports": {
|
||||||
".": "./src/index.mjs"
|
".": "./src/index.mjs"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@iosevka/data-export": "30.3.0"
|
"@iosevka/data-export": "30.3.1"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,10 +1,10 @@
|
||||||
{
|
{
|
||||||
"name": "@iosevka/misc",
|
"name": "@iosevka/misc",
|
||||||
"version": "30.3.0",
|
"version": "30.3.1",
|
||||||
"private": true,
|
"private": true,
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"semver": "^7.6.0",
|
"semver": "^7.6.0",
|
||||||
"wawoff2": "^2.0.1",
|
"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 => {
|
const Pages = task(`pages`, async t => {
|
||||||
await t.need(
|
await t.need(
|
||||||
PagesDataExport,
|
PagesDataExport,
|
||||||
|
PagesFontVersionSync,
|
||||||
|
PagesAtlasExport(`Iosevka`),
|
||||||
|
PagesAtlasExport(`IosevkaSlab`),
|
||||||
|
PagesAtlasExport(`IosevkaAile`),
|
||||||
|
PagesAtlasExport(`IosevkaEtoile`),
|
||||||
PagesFontExport`Iosevka`,
|
PagesFontExport`Iosevka`,
|
||||||
PagesFontExport`IosevkaSlab`,
|
PagesFontExport`IosevkaSlab`,
|
||||||
PagesFontExport`IosevkaAile`,
|
PagesFontExport`IosevkaAile`,
|
||||||
|
@ -969,28 +974,9 @@ const PagesDir = oracle(`pages-dir-path`, async t => {
|
||||||
return rp.buildOptions.__pagesDir;
|
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 [version] = await t.need(Version);
|
||||||
const [pagesDir] = await t.need(PagesDir, Version, Parameters, UtilScripts);
|
const [pagesDir] = await t.need(PagesDir);
|
||||||
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 packageJson = JSON.parse(
|
const packageJson = JSON.parse(
|
||||||
await FS.promises.readFile(Path.resolve(pagesDir, "package.json"), "utf-8"),
|
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) => {
|
const PagesFontExport = task.group(`pages:font-export`, async (target, gr) => {
|
||||||
target.is.volatile();
|
target.is.volatile();
|
||||||
const [pagesDir] = await target.need(PagesDir);
|
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"));
|
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();
|
target.is.volatile();
|
||||||
|
|
||||||
const [pagesDir] = await target.need(PagesDir);
|
const [pagesDir] = await target.need(PagesDir);
|
||||||
if (!pagesDir) return;
|
if (!pagesDir) return;
|
||||||
const outDir = Path.resolve(pagesDir, "shared/fonts/imports", gr);
|
const outDir = Path.resolve(pagesDir, "shared/fonts/imports", gr);
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue