mirror of
https://github.com/multipleof4/stain.otf.git
synced 2026-01-13 16:17:55 +00:00
Feat: Add basic author metadata to font
This commit is contained in:
@@ -29,103 +29,106 @@ import { glyphX, glyphx } from "../src/glyphs/X.js";
|
||||
import { glyphY, glypthy as glyphy } from "../src/glyphs/Y.js";
|
||||
import { glyphZ, glyphz } from "../src/glyphs/Z.js";
|
||||
|
||||
const __filename = fileURLToPath(import.meta.url);
|
||||
const __dirname = path.dirname(__filename);
|
||||
const __filename=fileURLToPath(import.meta.url);
|
||||
const __dirname=path.dirname(__filename);
|
||||
|
||||
const outDir = path.join(__dirname, "..", "dist");
|
||||
if (!fs.existsSync(outDir)) fs.mkdirSync(outDir, { recursive: true });
|
||||
const outDir=path.join(__dirname,"..","dist");
|
||||
if(!fs.existsSync(outDir))fs.mkdirSync(outDir,{recursive:true});
|
||||
|
||||
const familyName = "Stain";
|
||||
const unitsPerEm = 1000;
|
||||
const ascender = 800;
|
||||
const descender = -200;
|
||||
const defaultAdv = 600;
|
||||
const familyName="Stain";
|
||||
const styleName="Regular";
|
||||
const unitsPerEm=1000;
|
||||
const ascender=800;
|
||||
const descender=-200;
|
||||
const defaultAdv=600;
|
||||
|
||||
const mkGlyph = (name, unicode, adv, pathFn) =>
|
||||
const mkGlyph=(name,unicode,adv,pathFn)=>
|
||||
new opentype.Glyph({
|
||||
name,
|
||||
unicode,
|
||||
advanceWidth: adv,
|
||||
path: pathFn(new opentype.Path())
|
||||
advanceWidth:adv,
|
||||
path:pathFn(new opentype.Path())
|
||||
});
|
||||
|
||||
const glyphSpace = mkGlyph("space", " ".codePointAt(0), 260, (p) => p);
|
||||
const glyphPeriod = mkGlyph("period", ".".codePointAt(0), 260, (p) => {
|
||||
p.moveTo(80, 0);
|
||||
p.lineTo(80, 120);
|
||||
p.lineTo(180, 120);
|
||||
p.lineTo(180, 0);
|
||||
const glyphSpace=mkGlyph("space"," ".codePointAt(0),260,p=>p);
|
||||
const glyphPeriod=mkGlyph("period","."
|
||||
.codePointAt(0),260,p=>{
|
||||
p.moveTo(80,0);
|
||||
p.lineTo(80,120);
|
||||
p.lineTo(180,120);
|
||||
p.lineTo(180,0);
|
||||
p.close();
|
||||
return p;
|
||||
});
|
||||
|
||||
const glyphList = [
|
||||
const glyphList=[
|
||||
glyphSpace,
|
||||
glyphPeriod,
|
||||
glyphA(opentype, defaultAdv),
|
||||
glypha(opentype, defaultAdv),
|
||||
glyphB(opentype, defaultAdv),
|
||||
glyphb(opentype, defaultAdv),
|
||||
glyphC(opentype, defaultAdv),
|
||||
glyphc(opentype, defaultAdv),
|
||||
glyphD(opentype, defaultAdv),
|
||||
glyphd(opentype, defaultAdv),
|
||||
glyphE(opentype, defaultAdv),
|
||||
glyphe(opentype, defaultAdv),
|
||||
glyphF(opentype, defaultAdv),
|
||||
glyphf(opentype, defaultAdv),
|
||||
glyphG(opentype, defaultAdv),
|
||||
glyphg(opentype, defaultAdv),
|
||||
glyphH(opentype, defaultAdv),
|
||||
glyphh(opentype, defaultAdv),
|
||||
glyphI(opentype, defaultAdv),
|
||||
glyphi(opentype, defaultAdv),
|
||||
glyphJ(opentype, defaultAdv),
|
||||
glyphj(opentype, defaultAdv),
|
||||
glyphK(opentype, defaultAdv),
|
||||
glyphk(opentype, defaultAdv),
|
||||
glyphL(opentype, defaultAdv),
|
||||
glyphl(opentype, defaultAdv),
|
||||
glyphM(opentype, 740),
|
||||
glyphm(opentype, 740),
|
||||
glyphN(opentype, defaultAdv),
|
||||
glyphn(opentype, defaultAdv),
|
||||
glyphO(opentype, defaultAdv),
|
||||
glypho(opentype, defaultAdv),
|
||||
glyphP(opentype, defaultAdv),
|
||||
glyphp(opentype, defaultAdv),
|
||||
glyphQ(opentype, defaultAdv),
|
||||
glyphq(opentype, defaultAdv),
|
||||
glyphR(opentype, defaultAdv),
|
||||
glyphr(opentype, defaultAdv),
|
||||
glyphS(opentype, defaultAdv),
|
||||
glyphsLowerS(opentype, defaultAdv),
|
||||
glyphT(opentype, defaultAdv),
|
||||
glypht(opentype, defaultAdv),
|
||||
glyphU(opentype, defaultAdv),
|
||||
glyphu(opentype, defaultAdv),
|
||||
glyphV(opentype, defaultAdv),
|
||||
glyphv(opentype, defaultAdv),
|
||||
glyphW(opentype, 760),
|
||||
glyphw(opentype, 660),
|
||||
glyphX(opentype, defaultAdv),
|
||||
glyphx(opentype, defaultAdv),
|
||||
glyphY(opentype, defaultAdv),
|
||||
glyphy(opentype, defaultAdv),
|
||||
glyphZ(opentype, defaultAdv),
|
||||
glyphz(opentype, defaultAdv)
|
||||
glyphA(opentype,defaultAdv),
|
||||
glypha(opentype,defaultAdv),
|
||||
glyphB(opentype,defaultAdv),
|
||||
glyphb(opentype,defaultAdv),
|
||||
glyphC(opentype,defaultAdv),
|
||||
glyphc(opentype,defaultAdv),
|
||||
glyphD(opentype,defaultAdv),
|
||||
glyphd(opentype,defaultAdv),
|
||||
glyphE(opentype,defaultAdv),
|
||||
glyphe(opentype,defaultAdv),
|
||||
glyphF(opentype,defaultAdv),
|
||||
glyphf(opentype,defaultAdv),
|
||||
glyphG(opentype,defaultAdv),
|
||||
glyphg(opentype,defaultAdv),
|
||||
glyphH(opentype,defaultAdv),
|
||||
glyphh(opentype,defaultAdv),
|
||||
glyphI(opentype,defaultAdv),
|
||||
glyphi(opentype,defaultAdv),
|
||||
glyphJ(opentype,defaultAdv),
|
||||
glyphj(opentype,defaultAdv),
|
||||
glyphK(opentype,defaultAdv),
|
||||
glyphk(opentype,defaultAdv),
|
||||
glyphL(opentype,defaultAdv),
|
||||
glyphl(opentype,defaultAdv),
|
||||
glyphM(opentype,740),
|
||||
glyphm(opentype,740),
|
||||
glyphN(opentype,defaultAdv),
|
||||
glyphn(opentype,defaultAdv),
|
||||
glyphO(opentype,defaultAdv),
|
||||
glypho(opentype,defaultAdv),
|
||||
glyphP(opentype,defaultAdv),
|
||||
glyphp(opentype,defaultAdv),
|
||||
glyphQ(opentype,defaultAdv),
|
||||
glyphq(opentype,defaultAdv),
|
||||
glyphR(opentype,defaultAdv),
|
||||
glyphr(opentype,defaultAdv),
|
||||
glyphS(opentype,defaultAdv),
|
||||
glyphsLowerS(opentype,defaultAdv),
|
||||
glyphT(opentype,defaultAdv),
|
||||
glypht(opentype,defaultAdv),
|
||||
glyphU(opentype,defaultAdv),
|
||||
glyphu(opentype,defaultAdv),
|
||||
glyphV(opentype,defaultAdv),
|
||||
glyphv(opentype,defaultAdv),
|
||||
glyphW(opentype,760),
|
||||
glyphw(opentype,660),
|
||||
glyphX(opentype,defaultAdv),
|
||||
glyphx(opentype,defaultAdv),
|
||||
glyphY(opentype,defaultAdv),
|
||||
glyphy(opentype,defaultAdv),
|
||||
glyphZ(opentype,defaultAdv),
|
||||
glyphz(opentype,defaultAdv)
|
||||
];
|
||||
|
||||
const font = new opentype.Font({
|
||||
const font=new opentype.Font({
|
||||
familyName,
|
||||
styleName: "Regular",
|
||||
styleName,
|
||||
unitsPerEm,
|
||||
ascender,
|
||||
descender,
|
||||
glyphs: glyphList
|
||||
glyphs:glyphList,
|
||||
copyright:"Author: Anon"
|
||||
});
|
||||
|
||||
const buf = Buffer.from(font.toArrayBuffer());
|
||||
const outPath = path.join(outDir, "Stain.otf");
|
||||
fs.writeFileSync(outPath, buf);
|
||||
const buf=Buffer.from(font.toArrayBuffer());
|
||||
const outPath=path.join(outDir,"Stain.otf");
|
||||
fs.writeFileSync(outPath,buf);
|
||||
console.log(`Built ${outPath}`);
|
||||
|
||||
Reference in New Issue
Block a user