@@ -2,6 +2,7 @@ var assert = require('assert');
22var svgicons2svgfont = require ( 'svgicons2svgfont' ) ;
33var svg2ttf = require ( 'svg2ttf' ) ;
44var ttf2woff = require ( 'ttf2woff' ) ;
5+ var Readable = require ( 'stream' ) . Readable ;
56var fs = require ( 'fs' ) ;
67
78module . exports = function createIconFont ( icons , options ) {
@@ -11,7 +12,10 @@ module.exports = function createIconFont (icons, options) {
1112 name : options . name ,
1213 normalize : true ,
1314 fontHeight : 512 ,
14- log : function ( ) { }
15+ log : function ( ) { } ,
16+ error : function ( err ) {
17+ reject ( err ) ;
18+ }
1519 } ) ;
1620 var svgFont = '' ;
1721 fontStream
@@ -25,16 +29,26 @@ module.exports = function createIconFont (icons, options) {
2529 reject ( err ) ;
2630 } ) ;
2731 icons . forEach ( ( filename , i ) => {
28- var glyph = fs . createReadStream ( filename ) ;
32+ var glyph = new Readable ( ) ;
33+ glyph . _read = function noop ( ) { } ;
2934 glyph . metadata = {
3035 unicode : [ String . fromCodePoint ( '\ue000' . charCodeAt ( 0 ) + i ) ] ,
31- name : 'icon- ' + i
36+ name : 'i ' + i
3237 } ;
3338 fontStream . write ( glyph ) ;
39+ fs . readFile ( filename , 'utf8' , function ( err , result ) {
40+ if ( err ) {
41+ return reject ( err ) ;
42+ }
43+ // prevent svgs with fill="none" from beeing translated into an empty symbol
44+ result = result . replace ( / \s f i l l \s * = \s * [ " ' ] ? n o n e [ ' " ] ? / ig, '' ) ;
45+ glyph . push ( result ) ;
46+ glyph . push ( null ) ;
47+ } ) ;
3448 } ) ;
3549 fontStream . end ( ) ;
3650 } )
3751 . then ( ( svgFont ) => svg2ttf ( svgFont , { } ) . buffer )
3852 . then ( ( ttfFont ) => ttf2woff ( ttfFont ) . buffer )
39- . then ( ( wofffont ) => new Buffer ( wofffont ) . toString ( 'base64' ) ) ;
53+ . then ( ( woffFont ) => new Buffer ( woffFont ) . toString ( 'base64' ) ) ;
4054} ;
0 commit comments