- 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.
Stars
Watchers
Forks
Packages0
Contributors12
Uh oh!
There was an error while loading.Please reload this page.
