https://github.com/plotly/plotly.js
Tip revision: 75987d03967f115442d7aaffe56d110740c5cec6 authored by Etienne Tétreault-Pinard on 16 October 2017, 17:29:37 UTC
1.31.1
1.31.1
Tip revision: 75987d0
pull_font_svg.js
var fs = require('fs');
var xml2js = require('xml2js');
var parser = new xml2js.Parser();
module.exports = function pullFontSVG(data, pathOut) {
parser.parseString(data, function(err, result) {
if(err) throw err;
var font_obj = result.svg.defs[0].font[0],
default_width = Number(font_obj.$['horiz-adv-x']),
ascent = Number(font_obj['font-face'][0].$.ascent),
descent = Number(font_obj['font-face'][0].$.descent),
chars = {};
font_obj.glyph.forEach(function(glyph) {
chars[glyph.$['glyph-name']] = {
width: Number(glyph.$['horiz-adv-x']) || default_width,
path: glyph.$.d,
ascent: ascent,
descent: descent
};
});
// turn remaining double quotes into single
var charStr = JSON.stringify(chars, null, 4).replace(/\"/g, '\'');
var outStr = [
'\'use strict\';',
'',
'module.exports = ' + charStr + ';',
''
].join('\n');
fs.writeFile(pathOut, outStr, function(err) {
if(err) throw err;
});
});
};