How silly: backslashes are symmetric, i cannot flip a slash to build it.
This commit is contained in:
parent
72179f482a
commit
778e3a3b27
|
@ -219,7 +219,7 @@ local pickHash : if recursive {
|
|||
define [create-glyph name actions] : piecewise {
|
||||
[name && actions] : begin {
|
||||
if [pickHash && [not pickHash.(name)]] : return nothing
|
||||
console.log : "Building /" + name + [if recursive " (recursive)" ""] + " for " + para.family + ' ' + para.style
|
||||
process.stderr.write : "Building /" + name + [if recursive " (recursive)" ""] + " for " + para.family + ' ' + para.style + "\n"
|
||||
set dependencyProfile`name ()
|
||||
define glyphObject [new Glyph name]
|
||||
glyphObject.set-width WIDTH
|
||||
|
|
38
generate.js
38
generate.js
|
@ -3,29 +3,35 @@ var buildGlyphs = require('./buildglyphs.js');
|
|||
var parameters = require('./parameters');
|
||||
var TTFWriter = require('node-sfnt').TTFWriter;
|
||||
var TTF = require('node-sfnt').TTF;
|
||||
|
||||
var argv = require('yargs').argv;
|
||||
|
||||
function toArrayBuffer(buffer) {
|
||||
var length = buffer.length;
|
||||
var view = new DataView(new ArrayBuffer(length), 0, length);
|
||||
for (var i = 0, l = length; i < l; i++) {
|
||||
view.setUint8(i, buffer[i], false);
|
||||
}
|
||||
return view.buffer;
|
||||
var length = buffer.length;
|
||||
var view = new DataView(new ArrayBuffer(length), 0, length);
|
||||
for (var i = 0, l = length; i < l; i++) {
|
||||
view.setUint8(i, buffer[i], false);
|
||||
}
|
||||
return view.buffer;
|
||||
}
|
||||
function toBuffer(arrayBuffer) {
|
||||
var length = arrayBuffer.byteLength;
|
||||
var view = new DataView(arrayBuffer, 0, length);
|
||||
var buffer = new Buffer(length);
|
||||
for (var i = 0, l = length; i < l; i++) {
|
||||
buffer[i] = view.getUint8(i, false);
|
||||
}
|
||||
return buffer;
|
||||
var length = arrayBuffer.byteLength;
|
||||
var view = new DataView(arrayBuffer, 0, length);
|
||||
var buffer = new Buffer(length);
|
||||
for (var i = 0, l = length; i < l; i++) {
|
||||
buffer[i] = view.getUint8(i, false);
|
||||
}
|
||||
return buffer;
|
||||
}
|
||||
|
||||
var options = {preserveOS2Version: true}
|
||||
|
||||
var variant = process.argv[2];
|
||||
var outputPath = process.argv[3];
|
||||
var variant = argv._[0]
|
||||
var outputPath = argv._[1]
|
||||
|
||||
var ttfFont = buildGlyphs.build(parameters[variant]);
|
||||
|
||||
fs.writeFileSync(outputPath, toBuffer(new TTFWriter(options).write(ttfFont)));
|
||||
if(outputPath) fs.writeFileSync(outputPath, toBuffer(new TTFWriter(options).write(ttfFont)));
|
||||
if(argv.dumpmap) {
|
||||
fs.writeFileSync(argv.dumpmap, JSON.stringify(ttfFont.glyf.map(function(glyph){ return [glyph.name, glyph.unicode]})), 'utf8')
|
||||
}
|
|
@ -313,8 +313,13 @@ create-glyph 'backslash' : glyph-construction {
|
|||
set-width WIDTH
|
||||
assign-unicode "\\"
|
||||
|
||||
include glyphs.slash
|
||||
include : FlipAround MIDDLE parenMid
|
||||
local cor : 1 / [Math.sqrt [1 - [Math.pow [[RIGHTSB - SB - STROKE] / [parenTop - parenBot]] 2]]]
|
||||
|
||||
start-from SB parenTop
|
||||
line-to [SB + STROKE * cor] parenTop
|
||||
line-to RIGHTSB parenBot
|
||||
line-to [RIGHTSB - STROKE * cor] parenBot
|
||||
reverse-last
|
||||
}
|
||||
create-glyph 'numbersign' : glyph-construction {
|
||||
set-width WIDTH
|
||||
|
|
9
makefile
9
makefile
|
@ -9,6 +9,7 @@ SUPPRESS_ERRORS = 2> /dev/null
|
|||
endif
|
||||
|
||||
TARGETS = $(OBJDIR)/iosevka-regular.ttf $(OBJDIR)/iosevka-bold.ttf $(OBJDIR)/iosevka-italic.ttf $(OBJDIR)/iosevka-bolditalic.ttf
|
||||
MAPS = $(subst .ttf,.charmap,$(TARGETS))
|
||||
STEP0 = $(subst $(OBJDIR)/,$(OBJDIR)/.pass0-,$(TARGETS))
|
||||
STEP1 = $(subst $(OBJDIR)/,$(OBJDIR)/.pass1-,$(TARGETS))
|
||||
STEP2 = $(subst $(OBJDIR)/,$(OBJDIR)/.pass2-,$(TARGETS))
|
||||
|
@ -18,13 +19,13 @@ FILES = $(SUPPORT_FILES) buildglyphs.js
|
|||
fonts : update $(TARGETS)
|
||||
|
||||
$(OBJDIR)/.pass0-iosevka-regular.ttf : $(FILES) $(OBJDIR)
|
||||
node generate regular $@
|
||||
node generate regular $@ --dumpmap $(OBJDIR)/iosevka-regular.charmap
|
||||
$(OBJDIR)/.pass0-iosevka-bold.ttf : $(FILES) $(OBJDIR)
|
||||
node generate bold $@
|
||||
node generate bold $@ --dumpmap $(OBJDIR)/iosevka-bold.charmap
|
||||
$(OBJDIR)/.pass0-iosevka-italic.ttf : $(FILES) $(OBJDIR)
|
||||
node generate italic $@
|
||||
node generate italic $@ --dumpmap $(OBJDIR)/iosevka-italic.charmap
|
||||
$(OBJDIR)/.pass0-iosevka-bolditalic.ttf : $(FILES) $(OBJDIR)
|
||||
node generate bolditalic $@
|
||||
node generate bolditalic $@ --dumpmap $(OBJDIR)/iosevka-bolditalic.charmap
|
||||
|
||||
$(STEP1) : $(OBJDIR)/.pass1-%.ttf : $(OBJDIR)/.pass0-%.ttf
|
||||
fontforge -script pass1-cleanup.pe $< $@ $(SUPPRESS_ERRORS)
|
||||
|
|
Loading…
Reference in New Issue
Block a user