From bb15276c820c81bd40dfd17fb4098f797271e784 Mon Sep 17 00:00:00 2001 From: Robert Kaussow Date: Sun, 15 Mar 2020 18:38:10 +0100 Subject: [PATCH] add iconfont generation --- gulpfile.js | 37 +++++++++++++++++++------ layouts/partials/page-footer.html | 8 +++--- layouts/partials/svg-icon-symbols.html | 2 +- src/favicon/faviconData.json | 2 +- src/iconfont/uEA01-arrow_back.svg | 5 ++++ src/iconfont/uEA02-arrow_right_alt.svg | 5 ++++ src/iconfont/uEA03-bookmark.svg | 5 ++++ src/iconfont/uEA04-code.svg | 5 ++++ src/iconfont/uEA05-date.svg | 5 ++++ src/iconfont/uEA06-download.svg | 5 ++++ src/iconfont/uEA07-email.svg | 5 ++++ src/iconfont/uEA08-github.svg | 5 ++++ src/iconfont/uEA09-heart.svg | 5 ++++ src/iconfont/uEA0A-link.svg | 4 +++ src/iconfont/uEA0B-menu.svg | 5 ++++ src/iconfont/uEA0C-notification.svg | 5 ++++ src/iconfont/uEA0D-path.svg | 5 ++++ src/iconfont/uEA0E-person.svg | 5 ++++ src/iconfont/uEA0F-search.svg | 5 ++++ src/iconfont/uEA10-shield.svg | 5 ++++ src/iconfont/uEA11-tags.svg | 5 ++++ src/iconfont/uEA12-telescope.svg | 5 ++++ src/iconfont/uEA13-arrow_left_alt.svg | 5 ++++ src/icons/arrow_left_alt.svg | 5 ++++ src/sass/_base.scss | 26 ++++++++++++----- src/sass/_fonts.scss | 9 +++++- static/fonts/GeekdocIcons.woff | Bin 0 -> 3008 bytes static/fonts/GeekdocIcons.woff2 | Bin 0 -> 2408 bytes 28 files changed, 161 insertions(+), 22 deletions(-) create mode 100644 src/iconfont/uEA01-arrow_back.svg create mode 100644 src/iconfont/uEA02-arrow_right_alt.svg create mode 100644 src/iconfont/uEA03-bookmark.svg create mode 100644 src/iconfont/uEA04-code.svg create mode 100644 src/iconfont/uEA05-date.svg create mode 100644 src/iconfont/uEA06-download.svg create mode 100644 src/iconfont/uEA07-email.svg create mode 100644 src/iconfont/uEA08-github.svg create mode 100644 src/iconfont/uEA09-heart.svg create mode 100644 src/iconfont/uEA0A-link.svg create mode 100644 src/iconfont/uEA0B-menu.svg create mode 100644 src/iconfont/uEA0C-notification.svg create mode 100644 src/iconfont/uEA0D-path.svg create mode 100644 src/iconfont/uEA0E-person.svg create mode 100644 src/iconfont/uEA0F-search.svg create mode 100644 src/iconfont/uEA10-shield.svg create mode 100644 src/iconfont/uEA11-tags.svg create mode 100644 src/iconfont/uEA12-telescope.svg create mode 100644 src/iconfont/uEA13-arrow_left_alt.svg create mode 100644 src/icons/arrow_left_alt.svg create mode 100644 static/fonts/GeekdocIcons.woff create mode 100644 static/fonts/GeekdocIcons.woff2 diff --git a/gulpfile.js b/gulpfile.js index a39929c..dab3fc5 100644 --- a/gulpfile.js +++ b/gulpfile.js @@ -7,6 +7,7 @@ const autoprefixer = require('gulp-autoprefixer'); const iconfont = require('gulp-iconfont'); const realFavicon = require('gulp-real-favicon'); +const path = require('path'); const fs = require('fs'); const svgSprite = require('gulp-svg-sprite'); @@ -127,23 +128,43 @@ gulp.task('svg-sprite', function () { }); gulp.task('iconfont', function () { - return gulp.src(['assets/icons/*.svg']) + var lastUnicode = 0xEA01; + var files = fs.readdirSync('src/iconfont'); + + // Filter files with containing unicode value + // and set last unicode + files.forEach(function (file) { + var basename = path.basename(file); + var matches = basename.match(/^(?:((?:u[0-9a-f]{4,6},?)+)\-)?(.+)\.svg$/i); + var currentCode = -1; + + if (matches && matches[1]) { + currentCode = parseInt(matches[1].split('u')[1], 16); + } + + if (currentCode >= lastUnicode) { + lastUnicode = ++currentCode; + } + }); + + return gulp.src(['src/iconfont/*.svg']) .pipe(iconfont({ - fontName: 'myfont', // required + startUnicode: lastUnicode, + fontName: 'GeekdocIcons', // required prependUnicode: true, // recommended option - formats: ['ttf', 'eot', 'woff'], // default, 'woff2' and 'svg' are available + normalize: true, + fontHeight: 1001, + centerHorizontally: true, + formats: ['woff', 'woff2'], // default, 'woff2' and 'svg' are available timestamp: TIMESTAMP, // recommended to get consistent builds when watching files })) - .on('glyphs', function (glyphs, options) { - // CSS templating, e.g. - console.log(glyphs, options); - }) - .pipe(gulp.dest('www/fonts/')); + .pipe(gulp.dest('static/fonts/')); }); gulp.task('default', gulp.series( 'sass', 'svg-sprite', + 'iconfont', 'favicon-check-update', 'favicon-generate' )); diff --git a/layouts/partials/page-footer.html b/layouts/partials/page-footer.html index a072581..a67e3c3 100644 --- a/layouts/partials/page-footer.html +++ b/layouts/partials/page-footer.html @@ -46,14 +46,14 @@