Add Extrabold weight.

This commit is contained in:
belleve 2018-07-13 14:34:32 +08:00
parent 0a8375f610
commit fd4f485222
6 changed files with 165 additions and 7 deletions

View file

@ -3,7 +3,16 @@ const path = require("path");
const argv = require("yargs").argv; const argv = require("yargs").argv;
const pad = require("pad"); 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 const weights = argv.weights
? argv.weights.split(/ +/g).filter(w => possibleWeights.has(w)) ? argv.weights.split(/ +/g).filter(w => possibleWeights.has(w))
: [...possibleWeights]; : [...possibleWeights];

View file

@ -156,6 +156,27 @@ isBold = true
weight = 700 weight = 700
style = 'Bold' 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 sb = 45
stroke = 108 stroke = 108
dotsize = 160 dotsize = 160

View file

@ -232,14 +232,14 @@
</section> </section>
<section id="matrix"> <section id="matrix">
<div> <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><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="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="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>
<div class="slab"> <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><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="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="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>
</section> </section>
<section id="previews"> <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="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="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="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> <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> </pre></section></section>

View file

@ -97,6 +97,23 @@
font-weight: 700; 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'); 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-face {
font-family: 'Iosevka Slab'; font-family: 'Iosevka Slab';
font-weight: 900; font-weight: 900;

View file

@ -97,6 +97,23 @@
font-weight: 700; 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'); 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-face {
font-family: 'Iosevka'; font-family: 'Iosevka';
font-weight: 900; font-weight: 900;

93
verdafile.js Normal file
View 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!");
});