Add Extrabold weight.
This commit is contained in:
parent
0a8375f610
commit
fd4f485222
6 changed files with 165 additions and 7 deletions
11
maker.js
11
maker.js
|
@ -3,7 +3,16 @@ const path = require("path");
|
|||
const argv = require("yargs").argv;
|
||||
const pad = require("pad");
|
||||
|
||||
const possibleWeights = new Set(["thin", "extralight", "light", "book", "medium", "bold", "heavy"]);
|
||||
const possibleWeights = new Set([
|
||||
"thin",
|
||||
"extralight",
|
||||
"light",
|
||||
"book",
|
||||
"medium",
|
||||
"bold",
|
||||
"extrabold",
|
||||
"heavy"
|
||||
]);
|
||||
const weights = argv.weights
|
||||
? argv.weights.split(/ +/g).filter(w => possibleWeights.has(w))
|
||||
: [...possibleWeights];
|
||||
|
|
|
@ -156,6 +156,27 @@ isBold = true
|
|||
weight = 700
|
||||
style = 'Bold'
|
||||
|
||||
sb = 50
|
||||
stroke = 99
|
||||
dotsize = 150
|
||||
periodsize = 172
|
||||
essx = 1.06
|
||||
essxq = 1.10
|
||||
jut = 87
|
||||
vjut = 155
|
||||
|
||||
barpos = 0.51
|
||||
fivebarpos = 0.64
|
||||
rbalance = 52
|
||||
rbalance2 = 23
|
||||
rhook = 93
|
||||
smooth = 207
|
||||
|
||||
[w-extrabold]
|
||||
isBold = true
|
||||
weight = 800
|
||||
style = 'Extrabold'
|
||||
|
||||
sb = 45
|
||||
stroke = 108
|
||||
dotsize = 160
|
||||
|
|
|
@ -232,14 +232,14 @@
|
|||
</section>
|
||||
<section id="matrix">
|
||||
<div>
|
||||
<row><span class="thin">Mag</span><span class="extralight">Mag</span><span class="light">Mag</span><span class="regular">Mag</span><span class="medium">Mag</span><span class="bold">Mag</span><span class="heavy">Mag</span></row>
|
||||
<row class="italic"><span class="thin">Mag</span><span class="extralight">Mag</span><span class="light">Mag</span><span class="regular">Mag</span><span class="medium">Mag</span><span class="bold">Mag</span><span class="heavy">Mag</span></row>
|
||||
<row class="oblique"><span class="thin">Mag</span><span class="extralight">Mag</span><span class="light">Mag</span><span class="regular">Mag</span><span class="medium">Mag</span><span class="bold">Mag</span><span class="heavy">Mag</span></row>
|
||||
<row><span class="thin">Mag</span><span class="extralight">Mag</span><span class="light">Mag</span><span class="regular">Mag</span><span class="medium">Mag</span><span class="bold">Mag</span><span class="extrabold">Mag</span><span class="heavy">Mag</span></row>
|
||||
<row class="italic"><span class="thin">Mag</span><span class="extralight">Mag</span><span class="light">Mag</span><span class="regular">Mag</span><span class="medium">Mag</span><span class="bold">Mag</span><span class="extrabold">Mag</span><span class="heavy">Mag</span></row>
|
||||
<row class="oblique"><span class="thin">Mag</span><span class="extralight">Mag</span><span class="light">Mag</span><span class="regular">Mag</span><span class="medium">Mag</span><span class="bold">Mag</span><span class="extrabold">Mag</span><span class="heavy">Mag</span></row>
|
||||
</div>
|
||||
<div class="slab">
|
||||
<row><span class="thin">Mag</span><span class="extralight">Mag</span><span class="light">Mag</span><span class="regular">Mag</span><span class="medium">Mag</span><span class="bold">Mag</span><span class="heavy">Mag</span></row>
|
||||
<row class="italic"><span class="thin">Mag</span><span class="extralight">Mag</span><span class="light">Mag</span><span class="regular">Mag</span><span class="medium">Mag</span><span class="bold">Mag</span><span class="heavy">Mag</span></row>
|
||||
<row class="oblique"><span class="thin">Mag</span><span class="extralight">Mag</span><span class="light">Mag</span><span class="regular">Mag</span><span class="medium">Mag</span><span class="bold">Mag</span><span class="heavy">Mag</span></row>
|
||||
<row><span class="thin">Mag</span><span class="extralight">Mag</span><span class="light">Mag</span><span class="regular">Mag</span><span class="medium">Mag</span><span class="bold">Mag</span><span class="extrabold">Mag</span><span class="heavy">Mag</span></row>
|
||||
<row class="italic"><span class="thin">Mag</span><span class="extralight">Mag</span><span class="light">Mag</span><span class="regular">Mag</span><span class="medium">Mag</span><span class="bold">Mag</span><span class="extrabold">Mag</span><span class="heavy">Mag</span></row>
|
||||
<row class="oblique"><span class="thin">Mag</span><span class="extralight">Mag</span><span class="light">Mag</span><span class="regular">Mag</span><span class="medium">Mag</span><span class="bold">Mag</span><span class="extrabold">Mag</span><span class="heavy">Mag</span></row>
|
||||
</div>
|
||||
</section>
|
||||
<section id="previews">
|
||||
|
@ -306,6 +306,7 @@
|
|||
<span class="regular"><span class="built_in">float</span> Fox.quick(h){ is_brown <span class="operator">&&</span> it_jumps_over(doges.lazy); }</span>
|
||||
<span class="medium"><span class="built_in">float</span> Fox.quick(h){ is_brown <span class="operator">&&</span> it_jumps_over(doges.lazy); }</span>
|
||||
<span class="bold"><span class="built_in">float</span> Fox.quick(h){ is_brown <span class="operator">&&</span> it_jumps_over(doges.lazy); }</span>
|
||||
<span class="extrabold"><span class="built_in">float</span> Fox.quick(h){ is_brown <span class="operator">&&</span> it_jumps_over(doges.lazy); }</span>
|
||||
<span class="heavy"><span class="built_in">float</span> Fox.quick(h){ is_brown <span class="operator">&&</span> it_jumps_over(doges.lazy); }</span>
|
||||
</pre></section></section>
|
||||
|
||||
|
|
|
@ -97,6 +97,23 @@
|
|||
font-weight: 700;
|
||||
src: url('assets/iosevka-slab-boldoblique.woff2') format('woff2'), url('assets/iosevka-slab-boldoblique.woff') format('woff'), url('assets/iosevka-slab-boldoblique.ttf') format('truetype');
|
||||
}
|
||||
@font-face {
|
||||
font-family: 'Iosevka Slab';
|
||||
font-weight: 800;
|
||||
src: url('assets/iosevka-slab-extrabold.woff2') format('woff2'), url('assets/iosevka-slab-extrabold.woff') format('woff'), url('assets/iosevka-slab-extrabold.ttf') format('truetype');
|
||||
}
|
||||
@font-face {
|
||||
font-family: 'Iosevka Slab';
|
||||
font-style: italic;
|
||||
font-weight: 800;
|
||||
src: url('assets/iosevka-slab-extrabolditalic.woff2') format('woff2'), url('assets/iosevka-slab-extrabolditalic.woff') format('woff'), url('assets/iosevka-slab-extrabolditalic.ttf') format('truetype');
|
||||
}
|
||||
@font-face {
|
||||
font-family: 'Iosevka Slab';
|
||||
font-style: oblique;
|
||||
font-weight: 800;
|
||||
src: url('assets/iosevka-slab-extraboldoblique.woff2') format('woff2'), url('assets/iosevka-slab-extraboldoblique.woff') format('woff'), url('assets/iosevka-slab-extraboldoblique.ttf') format('truetype');
|
||||
}
|
||||
@font-face {
|
||||
font-family: 'Iosevka Slab';
|
||||
font-weight: 900;
|
||||
|
|
|
@ -97,6 +97,23 @@
|
|||
font-weight: 700;
|
||||
src: url('assets/iosevka-boldoblique.woff2') format('woff2'), url('assets/iosevka-boldoblique.woff') format('woff'), url('assets/iosevka-boldoblique.ttf') format('truetype');
|
||||
}
|
||||
@font-face {
|
||||
font-family: 'Iosevka';
|
||||
font-weight: 800;
|
||||
src: url('assets/iosevka-extrabold.woff2') format('woff2'), url('assets/iosevka-extrabold.woff') format('woff'), url('assets/iosevka-extrabold.ttf') format('truetype');
|
||||
}
|
||||
@font-face {
|
||||
font-family: 'Iosevka';
|
||||
font-style: italic;
|
||||
font-weight: 800;
|
||||
src: url('assets/iosevka-extrabolditalic.woff2') format('woff2'), url('assets/iosevka-extrabolditalic.woff') format('woff'), url('assets/iosevka-extrabolditalic.ttf') format('truetype');
|
||||
}
|
||||
@font-face {
|
||||
font-family: 'Iosevka';
|
||||
font-style: oblique;
|
||||
font-weight: 800;
|
||||
src: url('assets/iosevka-extraboldoblique.woff2') format('woff2'), url('assets/iosevka-extraboldoblique.woff') format('woff'), url('assets/iosevka-extraboldoblique.ttf') format('truetype');
|
||||
}
|
||||
@font-face {
|
||||
font-family: 'Iosevka';
|
||||
font-weight: 900;
|
||||
|
|
93
verdafile.js
Normal file
93
verdafile.js
Normal file
|
@ -0,0 +1,93 @@
|
|||
const {
|
||||
want,
|
||||
rule: { task, file, variable },
|
||||
macro: { FileList },
|
||||
action: { run },
|
||||
journal,
|
||||
argv
|
||||
} = require("verda");
|
||||
const path = require("path");
|
||||
|
||||
journal("build/.verda-journal.json");
|
||||
want(...argv._);
|
||||
|
||||
const PATEL_C = ["node", "./node_modules/patel/bin/patel-c"];
|
||||
const GENERATE = ["node", "--expose-gc", "generator"];
|
||||
const WEIGHTS = ["thin", "extralight", "light", "book", "medium", "bold", "extrabold", "heavy"];
|
||||
const SLANTS = ["upright", "italic", "oblique"];
|
||||
|
||||
const weightSlantMap = (function() {
|
||||
let o = {};
|
||||
for (const w of WEIGHTS) {
|
||||
for (const s of SLANTS) {
|
||||
const suffix =
|
||||
(w === "book" ? (s === "upright" ? "regular" : "") : w) +
|
||||
(s === "upright" ? "" : s);
|
||||
o[suffix] = { weight: w, slant: s };
|
||||
}
|
||||
}
|
||||
return o;
|
||||
})();
|
||||
|
||||
//////////////////////////
|
||||
////// Font building
|
||||
//////////////////////////
|
||||
|
||||
file("build/iosevka-*-*.otd").def(async (target, width, suffix) => {
|
||||
const { weight, slant } = weightSlantMap[suffix];
|
||||
await target.need("scripts", "dir:build", "parameters.toml");
|
||||
await run(GENERATE, "iosevka", width, `w-${weight}`, `s-${slant}`, "-o", target);
|
||||
});
|
||||
file("build/iosevka-*-*.ttf").def(async (target, width, suffix) => {
|
||||
const [otd] = await target.need(`build/iosevka-${width}-${suffix}.otd`);
|
||||
await run("otfccbuild", otd.path, "-o", target);
|
||||
});
|
||||
task("default").def(async target => {
|
||||
await target.need(
|
||||
Object.keys(weightSlantMap).map(suffix => `build/iosevka-normal-${suffix}.ttf`)
|
||||
);
|
||||
});
|
||||
|
||||
//////////////////////////
|
||||
////// Script building
|
||||
//////////////////////////
|
||||
|
||||
variable("files:PTL").def(
|
||||
FileList({
|
||||
under: ".",
|
||||
pattern: "*.ptl|glyphs/**/*.ptl|support/**/*.ptl|meta/**/*.ptl"
|
||||
})
|
||||
);
|
||||
|
||||
variable("files:JS").def(
|
||||
FileList({
|
||||
under: ".",
|
||||
pattern: "*.js|glyphs/**/*.js|support/**/*.js|meta/**/*.js"
|
||||
})
|
||||
);
|
||||
|
||||
variable("files:JS_FROM_PTL").def(async target => {
|
||||
const [ptl] = await target.need("files:PTL");
|
||||
return target.trackModification(ptl.map(x => x.replace(/\.ptl$/g, ".js")));
|
||||
});
|
||||
|
||||
file("*.js|glyphs/**/*.js|support/**/*.js|meta/**/*.js").def(async target => {
|
||||
const [jsFromPtl] = await target.need("files:JS_FROM_PTL");
|
||||
if (jsFromPtl.indexOf(target.id) >= 0) {
|
||||
const ptl = target.id.replace(/\.js$/g, ".ptl");
|
||||
await target.need(`file-updated:${ptl}`);
|
||||
await run(PATEL_C, "--optimize", "--strict", ptl, "-o", target.id);
|
||||
} else {
|
||||
await target.need(`file-updated:${target.id}`);
|
||||
}
|
||||
});
|
||||
task("scripts").def(async target => {
|
||||
const [jsFromPtl] = await target.need("files:JS_FROM_PTL");
|
||||
await target.need(jsFromPtl);
|
||||
const [js] = await target.need("files:JS");
|
||||
await target.need(js);
|
||||
});
|
||||
|
||||
task("wrong").def(async target => {
|
||||
throw new Error("Wrong!");
|
||||
});
|
Loading…
Add table
Add a link
Reference in a new issue