fontyy
v0.1.3
Published
Browser font-face generator for creating browser usable fonts from ttf's or otf's
Downloads
3
Maintainers
Readme
fontyy - Webfont Generator
From a ttf or otf, generate the required ttf, eot, woff, svg and css for the font to be used in browsers.
Installing
npm install --save-dev fontyy
Requirements:
fontforge
Installing on OS X
brew install fontforge
Installing on Unix/Linux based systems
FontForge install procedures for unix/linux based systems: https://fontforge.github.io/nix-install.html
Usage:
var fontyy = require('fontyy');
var result = fontyy({
source: '/path/to/source.{ttf,otf}',
dest: '/destination/folder/',
});
Options:
source (required):
Path to the source font file in ttf or otf format.
dest (required):
Path to the destination folder for the converted fonts to be placed in.
css:
Path to the destination file to write the generated stylesheet to.
Default: null
(Guess the css filename from the font filename)
css_fontpath:
Path to the font files relative to the css generated.
Default: ''
subset:
A string or array with the characters desired to be included inside the generated fonts
Default: null
collate:
Append the source filename to the destination directory in order to collate generated fonts into separate directories.
Default: false
IE:
options = {
source: 'src/fonts/ariel.ttf',
dest: 'dist/fonts/',
collate: true
}
Will create fonts into 'dist/fonts/ariel/'
.
real_filename:
Uses the PostScript names of fonts for generated font file and destination folder names.
Default: false
minifycss:
Minify the generated CSS @font-face codes.
Default: false
embed:
Type: array
Default: []
Valid values: ['woff', 'ttf']
Type of fonts to embed directly into the generated css file as a data-uri instead of creating files for them.
Font config files:
Font name, style and weight can be specified manually per font in a json file of the same name as the font.
For example, for the font: fonts/sans.ttf
the config file would be: fonts/sans.json
.
Example file format:
{
"name" : "Super Sans",
"weight" : "400",
"style" : "normal"
}
Note: If present, the json config file must be valid json.
Complete example:
var fs = require('fs');
var path = require('path');
var fontyy = require('./fontyy');
var source = 'tmp/';
var dest = 'tmp/dest/';
var fonts = fs.readdirSync(source);
for (var i = fonts.length - 1; i >= 0; i--) {
var font = fonts[i];
var extension = path.extname(font);
var fontname = path.basename(font, extension);
// Test with embedded ttf
if (extension == '.ttf' || extension == '.otf') {
fontyy({
source: path.join(source, font),
dest: dest,
css_fontpath: '../fonts/',
embed: ['ttf'],
subset: 'abcdef',
collate: true,
real_filename: false,
minifycss: false
});
}
};