Git Product home page Git Product logo

gulp-fontmin's Introduction

gulp-fontmin

NPM version Build Status Downloads Dependencies Font support

Minify TTF font to SVG, EOT, WOFF with fontmin

Install

$ npm install --save-dev gulp-fontmin

Usage

var gulp = require('gulp');
var fontmin = require('gulp-fontmin');

gulp.task('default', function () {
    return gulp.src('src/fonts/*.ttf')
        .pipe(fontmin({
            text: '天地玄黄 宇宙洪荒',
        }))
        .pipe(gulp.dest('dist/fonts'));
});

API

fontmin(options)

Options:

  • text: A string corresponding glyphs of ttf
  • onlyChinese: {boolean} keep chinese only, exclude Latin, number and symbol. Default = false
  • fontPath: {string=} location of font file.
  • hinting: {boolean=} keep hint info, defaults true.
  • quiet: {boolean=} print how many fonts were effected, defaults false.

Practice

Get needed text from html

function minifyFont(text, cb) {
    gulp
        .src('src/font/*.ttf')
        .pipe(fontmin({
            text: text
        }))
        .pipe(gulp.dest('dest/font'))
        .on('end', cb);
}

gulp.task('fonts', function(cb) {

    var buffers = [];

    gulp
        .src('index.html')
        .on('data', function(file) {
            buffers.push(file.contents);
        })
        .on('end', function() {
            var text = Buffer.concat(buffers).toString('utf-8');
            minifyFont(text, cb);
        });

});

Related

License

MIT

gulp-fontmin's People

Contributors

brandonocasey avatar junmer avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

gulp-fontmin's Issues

only create woff

I don't need the css, svg, eot and ttf files. Can I set it up like that?

Allow to pass directory to generated font url in css

Hi!

Great plugin! The only issue is that you cannot control where generated css links fonts to. It's always current dir.
But in case you concatenate generated css file to your main css file, fonts may be located in other dir, so it would be very helpful to have ability to control this.

example:
knowing that my fonts would be located in dir ../fonts/ relative to css file location I add an option

cssFontPath: '../fonts/'

to gulp plugin and the generated css has urls like url(../fonts/myfont.ttf) (notice the ../fonts/ in front of font name).

Also please note there are different comma symbols in comments of generated css

chrome、firefox、opera、Safari, 
      ↑                       ↑
   strange                 regular

Thanks!

I need more information in file README.md

I want convert a few of files to directory path.create.fonts.
What does I need to pass for call function fontmin in parameter?
Can show on this example?
I have this example:

var gulp = require('gulp');
var fontmin = require('gulp-fontmin');

gulp.task('font-min',function(callback){
     return gulp.src(path.source.fonts+'*.ttf')
         .pipe(fontmin({
            text: '天地玄黄 宇宙洪荒',
        }))
        .pipe(gulp.dest(path.create.fonts))
        .pipe(reload({stream: true}));
})

I not understand this "Get needed text from html". How text?
I have file in directory path.source.fonts+'*.ttf'.

pass different texts to fontmin

gulp.task('default', function () {
    return gulp.src('src/fonts/*.ttf')
        .pipe(fontmin({
            text: '天地玄黄 宇宙洪荒',
        }))
        .pipe(gulp.dest('dist/fonts'));
});


In the example, what should I do if I want to pass different texts to fontmin according to the filename?

TypeError: Cannot read property 'contours' of undefined

When I specify the text option – and specifically the i character, I receive:

TypeError: Cannot read property 'contours' of undefined at /Users/atimberlake/Webroot/Mobile/node_modules/gulp-fontmin/node_modules/fontmin/node_modules/fonteditor-ttf/lib/ttf/table/OS2.js:175:59

var alphaNumeric = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefgh';

return gulp.src('public/fonts/pt-sans-web/**.ttf')
           .pipe(fontmin({ text: alphaNumeric }))
           .pipe(gulp.dest('public/fonts'));

That above runs fine, but as soon as I append i to the end of alphaNumeric then the error is raised.

The font file I'm trying to minify is this one: https://www.dropbox.com/s/gv3yv4nnp8jigdk/PTS75F_W.ttf?dl=0

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.