diff options
Diffstat (limited to 'gulpfile.js')
-rw-r--r-- | gulpfile.js | 90 |
1 files changed, 15 insertions, 75 deletions
diff --git a/gulpfile.js b/gulpfile.js index 1817ff9d..d1513c00 100644 --- a/gulpfile.js +++ b/gulpfile.js @@ -8,6 +8,7 @@ const gulp = require('gulp'), zip = require('gulp-zip'), puppeteer = require('puppeteer'), outlineStroke = require('svg-outline-stroke'), + fontcustom = require('gulp-fontcustom'), iconfont = require('gulp-iconfont'), template = require('lodash.template'), sass = require('node-sass'), @@ -196,17 +197,10 @@ gulp.task('iconfont-svg-outline', function (cb) { cp.exec('mkdir -p icons-outlined/ && rm -fd ./icons-outlined/*', async () => { let files = glob.sync("./icons/*.svg"); - let iconfontUnicode = {}; - - if (fs.existsSync('./iconfont-unicode.json')) { - iconfontUnicode = require('./iconfont-unicode'); - } - await asyncForEach(files, async function (file) { - const name = path.basename(file, '.svg'), - unicode = iconfontUnicode[name]; + const name = path.basename(file, '.svg'); - await console.log('Stroke for:', file, unicode); + await console.log('Stroke for:', file); let strokedSVG = fs.readFileSync(file).toString(); @@ -222,11 +216,7 @@ gulp.task('iconfont-svg-outline', function (cb) { fixedWidth: true, color: 'black' }).then(outlined => { - if (unicode) { - fs.writeFileSync(`icons-outlined/u${unicode.toUpperCase()}-${name}.svg`, outlined); - } else { - fs.writeFileSync(`icons-outlined/${name}.svg`, outlined); - } + fs.writeFileSync(`icons-outlined/${name}.svg`, outlined); }).catch(error => console.log(error)); }); @@ -234,60 +224,10 @@ gulp.task('iconfont-svg-outline', function (cb) { }); }); -gulp.task('iconfont', function () { - let maxUnicode = 59905; - - if (fs.existsSync('./iconfont-unicode.json')) { - const iconfontUnicode = require('./iconfont-unicode'); - - for (const name in iconfontUnicode) { - const unicode = parseInt(iconfontUnicode[name], 16); - - maxUnicode = Math.max(maxUnicode, unicode); - } - } - - maxUnicode = maxUnicode + 1; - - return gulp.src(['icons-outlined/*.svg']) - .pipe(iconfont({ - fontName: 'tabler-icons', - prependUnicode: true, - formats: ['ttf', 'eot', 'woff', 'woff2'], - normalize: true, - startUnicode: maxUnicode - })) - .on('glyphs', function (glyphs, options) { - //glyphs json - let glyphsObject = {}; - - //sort glypht - glyphs = glyphs.sort(function (a, b) { - return ('' + a.name).localeCompare(b.name) - }); - - glyphs.forEach(function (glyph) { - glyphsObject[glyph.name] = glyph.unicode[0].codePointAt(0).toString(16); - }); - - fs.writeFileSync(`iconfont-unicode.json`, JSON.stringify(glyphsObject)); - - //css - options['glyphs'] = glyphs; - options['v'] = p.version; - - const compiled = template(fs.readFileSync('.build/iconfont.scss').toString()); - const result = compiled(options); - - fs.writeFileSync('iconfont/tabler-icons.scss', result); - - //html - const compiledHtml = template(fs.readFileSync('.build/iconfont.html').toString()); - const resultHtml = compiledHtml(options); - - fs.writeFileSync('iconfont/tabler-icons.html', resultHtml); - }) - .pipe(gulp.dest('iconfont/fonts')); +gulp.task('iconfont', function (cb) { + cp.exec('fontcustom compile', function () { + cb(); + }); }); gulp.task('iconfont-css', function (cb) { @@ -304,7 +244,7 @@ gulp.task('iconfont-css', function (cb) { }); }); -gulp.task('build-iconfont', gulp.series('iconfont-prepare', 'iconfont-svg-outline', 'iconfont', 'iconfont-css', 'iconfont-clean')); +gulp.task('build-iconfont', gulp.series('iconfont-prepare', 'iconfont-svg-outline', 'iconfont', 'iconfont-css'/*, 'iconfont-clean'*/)); gulp.task('build-zip', function () { const version = p.version; @@ -626,17 +566,17 @@ const setVersions = function(version, files) { if (fs.existsSync(`src/_icons/${file}.svg`)) { let svgFile = fs.readFileSync(`src/_icons/${file}.svg`).toString(); - + if(!svgFile.match(/version: ([0-9.]+)/i)) { svgFile = svgFile.replace(/---\n<svg>/i, function(m){ return `version: ${version}\n${m}`; }); - + fs.writeFileSync(`src/_icons/${file}.svg`, svgFile); } else { console.log(`File ${file} already has version`); } - + } else { console.log(`File ${file} doesn't exists`); } @@ -652,7 +592,7 @@ gulp.task('update-icons-version', function (cb) { cp.exec(`git diff v${version} HEAD --name-status`, function (err, ret) { let newIcons = []; - + ret.replace(/[A]\s+src\/_icons\/([a-z0-9-]+)\.svg/g, function (m, fileName) { newIcons.push(fileName); }); @@ -674,7 +614,7 @@ gulp.task('import-tags', function(cb) { })) .on('data', (row) => { console.log(row[0], row[1]); - + const filename = `src/_icons/${row[0]}.svg`; let data = fs.readFileSync(filename).toString(); @@ -685,7 +625,7 @@ gulp.task('import-tags', function(cb) { return headerContent; }); - + fs.writeFileSync(filename, data); }) |