- Notifications
You must be signed in to change notification settings - Fork331
ecomfe/fontmin
Folders and files
| Name | Name | Last commit message | Last commit date | |
|---|---|---|---|---|
Repository files navigation
Minify font seamlessly
$ npm install --save fontmin
fontmin v2.x only support ES Modules, and run on Node v16+.
If you need to use CommonJS version, please installfontmin v1.x:
npm install --save fontmin@1
importFontminfrom'fontmin';constfontmin=newFontmin().src('fonts/*.ttf').dest('build/fonts');fontmin.run(function(err,files){if(err){throwerr;}console.log(files[0]);// => { contents: <Buffer 00 01 00 ...> }});
You can usegulp-rename to rename your files:
importFontminfrom'fontmin';constrename=require('gulp-rename');constfontmin=newFontmin().src('fonts/big.ttf').use(rename('small.ttf'));
Creates a newFontmin instance.
Type:Array|Buffer|String
Set the files to be optimized. Takes a buffer, glob string or an array of glob stringsas argument.
Type:String
Set the destination folder to where your files will be written. If you don't setany destination no files will be written.
Type:Function
Add aplugin to the middleware stack.
Type:Function
Optimize your files with the given settings.
The callback will return an array of vinyl files infiles and a Readable/Writablestream instream
The following plugins are bundled with fontmin:
- glyph — Compress ttf by glyph.
- ttf2eot — Convert ttf to eot.
- ttf2woff — Convert ttf to woff.
- ttf2woff2 — Convert ttf to woff2.
- ttf2svg — Convert ttf to svg.
- css — Generate css from ttf, often used to make iconfont.
- svg2ttf — Convert font format svg to ttf.
- svgs2ttf — Concat svg files to a ttf, just like css sprite.
- otf2ttf — Convert otf to ttf.
Compress ttf by glyph.
importFontminfrom'fontmin';constfontmin=newFontmin().use(Fontmin.glyph({text:'天地玄黄 宇宙洪荒',hinting:false// keep ttf hint info (fpgm, prep, cvt). default = true}));
Convert ttf to eot.
importFontminfrom'fontmin';constfontmin=newFontmin().use(Fontmin.ttf2eot());
Convert ttf to woff.
importFontminfrom'fontmin';constfontmin=newFontmin().use(Fontmin.ttf2woff({deflate:true// deflate woff. default = false}));
Convert ttf to woff2.
importFontminfrom'fontmin';constfontmin=newFontmin().use(Fontmin.ttf2woff2());
Convert ttf to svg.
you can useimagemin-svgo to compress svg:
importFontminfrom'fontmin';constsvgo=require('imagemin-svgo');constfontmin=newFontmin().use(Fontmin.ttf2svg()).use(svgo());
Generate css from ttf, often used to make iconfont.
importFontminfrom'fontmin';constfontmin=newFontmin().use(Fontmin.css({fontPath:'./',// location of font filebase64:true,// inject base64 data:application/x-font-ttf; (gzip font with css).// default = falseglyph:true,// generate class for each glyph. default = falseiconPrefix:'my-icon',// class prefix, only work when glyph is `true`. default to "icon"fontFamily:'myfont',// custom fontFamily, default to filename or get from analysed ttf fileasFileName:false,// rewrite fontFamily as filename force. default = falselocal:true// boolean to add local font. default = false}));
Alternatively, a transform function can be passed asfontFamily option.
importFontminfrom'fontmin';constfontmin=newFontmin().use(Fontmin.css({// ...fontFamily:function(fontInfo,ttf){return"Transformed Font Family Name"},// ...}));
Convert font format svg to ttf.
importFontminfrom'fontmin';constfontmin=newFontmin().src('font.svg').use(Fontmin.svg2ttf());
Concat svg files to a ttf, just like css sprite.
awesome work withcss plugin:
importFontminfrom'fontmin';constfontmin=newFontmin().src('svgs/*.svg').use(Fontmin.svgs2ttf('font.ttf',{fontName:'iconfont'})).use(Fontmin.css({glyph:true}));
Convert otf to ttf.
importFontminfrom'fontmin';constfontmin=newFontmin().src('fonts/*.otf').use(Fontmin.otf2ttf());
$ npm install -g fontmin
$ fontmin --help Usage $ fontmin<file> [<output>] $ fontmin<directory> [<output>] $ fontmin<file>><output> $ cat<file>| fontmin><output> Example $ fontmin fonts/* build $ fontmin fonts build $ fontmin foo.ttf> foo-optimized.ttf $ cat foo.ttf| fontmin> foo-optimized.ttf Options -t, --text require glyphs by text -b, --basic-text require glyphs with base chars -d, --deflate-woff deflate woff --font-family font-familyfor @font-face CSS --css-glyph generate classfor each glyf. default =false -T, --show-time showtime fontmin cost
you can usecurl to generate font for websites running on PHP, ASP, Rails and more:
$ text=`curl www.baidu.com`&& fontmin -t"$text" font.ttf
or you can usehtml-to-text to make it smaller:
$ npm install -g html-to-text$ text=`curl www.baidu.com| html-to-text`&& fontmin -t"$text" font.ttf
what is more, you can usephantom-fetch-cli to generate font forSPA running JS template:
$ npm install -g phantom-fetch-cli$ text=`phantom-fetch http://www.chinaw3c.org`&& fontmin -t"$text" font.ttf
MIT ©fontmin
About
Minify font seamlessly
Topics
Resources
License
Uh oh!
There was an error while loading.Please reload this page.
