Skip to content

Commit d48ad82

Browse files
committed
icons optimize
1 parent d64e4d7 commit d48ad82

15 files changed

+91
-46
lines changed

gulpfile.js

+52-7
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ const gulp = require('gulp'),
44
fs = require('fs'),
55
path = require('path'),
66
p = require('./package.json'),
7+
csv = require('csv-parser'),
78
zip = require('gulp-zip'),
89
puppeteer = require('puppeteer'),
910
outlineStroke = require('svg-outline-stroke'),
@@ -12,6 +13,8 @@ const gulp = require('gulp'),
1213
sass = require('node-sass'),
1314
cleanCSS = require('clean-css'),
1415
argv = require('minimist')(process.argv.slice(2)),
16+
svgParse = require('parse-svg-path'),
17+
svgpath = require('svgpath'),
1518
svgr = require('@svgr/core').default;
1619

1720
async function asyncForEach(array, callback) {
@@ -404,6 +407,17 @@ gulp.task('optimize', function (cb) {
404407
return Math.round((parseFloat(n1) + parseFloat(n2)) * 1000) / 1000
405408
};
406409

410+
const optimizePath = function(path) {
411+
let transformed = svgpath(path)
412+
.rel()
413+
.round(3)
414+
.toString();
415+
416+
return svgParse(transformed).map(function(a){
417+
return a.join(' ');
418+
}).join(' ');
419+
};
420+
407421
glob("src/_icons/*.svg", {}, function (er, files) {
408422

409423
files.forEach(function (file, i) {
@@ -416,6 +430,11 @@ gulp.task('optimize', function (cb) {
416430
.replace(/\s?\/>/g, ' />')
417431
.replace(/\n\s*<(line|circle|path|polyline|rect)/g, "\n <$1")
418432
.replace(/polyline points="([0-9.]+)\s([0-9.]+)\s([0-9.]+)\s([0-9.]+)"/g, 'line x1="$1" y1="$2" x2="$3" y2="$4"')
433+
.replace(/<path d="([^"]+)"/g, function(f, r1) {
434+
r1 = optimizePath(r1);
435+
436+
return `<path d="${r1}"`;
437+
})
419438
.replace(/d="m/g, 'd="M')
420439
.replace(/([Aa])\s?([0-9.]+)\s([0-9.]+)\s([0-9.]+)\s?([0-1])\s?([0-1])\s?(-?[0-9.]+)\s?(-?[0-9.]+)/gi, '$1$2 $3 $4 $5 $6 $7 $8')
421440
.replace(/\n\n+/g, "\n")
@@ -439,9 +458,6 @@ gulp.task('optimize', function (cb) {
439458
})
440459
;
441460

442-
//
443-
//
444-
445461
if (svgFile.toString() !== svgFileContent) {
446462
fs.writeFileSync(file, svgFileContent);
447463
}
@@ -610,17 +626,17 @@ const setVersions = function(version, files) {
610626

611627
if (fs.existsSync(`src/_icons/${file}.svg`)) {
612628
let svgFile = fs.readFileSync(`src/_icons/${file}.svg`).toString();
613-
629+
614630
if(!svgFile.match(/version: ([0-9.]+)/i)) {
615631
svgFile = svgFile.replace(/---\n<svg>/i, function(m){
616632
return `version: ${version}\n${m}`;
617633
});
618-
634+
619635
fs.writeFileSync(`src/_icons/${file}.svg`, svgFile);
620636
} else {
621637
console.log(`File ${file} already has version`);
622638
}
623-
639+
624640
} else {
625641
console.log(`File ${file} doesn't exists`);
626642
}
@@ -636,7 +652,7 @@ gulp.task('update-icons-version', function (cb) {
636652
cp.exec(`git diff v${version} HEAD --name-status`, function (err, ret) {
637653

638654
let newIcons = [];
639-
655+
640656
ret.replace(/[A]\s+src\/_icons\/([a-z0-9-]+)\.svg/g, function (m, fileName) {
641657
newIcons.push(fileName);
642658
});
@@ -650,6 +666,35 @@ gulp.task('update-icons-version', function (cb) {
650666
cb();
651667
});
652668

669+
gulp.task('import-tags', function(cb) {
670+
fs.createReadStream('./_import.csv')
671+
.pipe(csv({
672+
headers: false,
673+
separator: "\t"
674+
}))
675+
.on('data', (row) => {
676+
console.log(row[0], row[1]);
677+
678+
const filename = `src/_icons/${row[0]}.svg`;
679+
680+
let data = fs.readFileSync(filename).toString();
681+
data = data.replace(/(---[\s\S]+?---)/, function(m, headerContent){
682+
683+
headerContent = headerContent.replace(/tags: .*\n/, '');
684+
headerContent = headerContent.replace(/---/, `---\ntags: [${row[1]}]`);
685+
686+
return headerContent;
687+
});
688+
689+
fs.writeFileSync(filename, data);
690+
691+
})
692+
.on('end', () => {
693+
console.log('CSV file successfully processed');
694+
});
695+
cb();
696+
});
697+
653698
gulp.task("build-react", function (cb) {
654699
cp.exec("npm run build-react", function () {
655700
cb();

src/_icons/arrow-big-down.svg

+1-1
Loading

src/_icons/arrow-big-left.svg

+1-1
Loading

src/_icons/arrow-big-right.svg

+1-1
Loading

src/_icons/arrow-big-top.svg

+1-1
Loading

src/_icons/arrows-double-ne-sw.svg

+4-4
Loading

src/_icons/arrows-double-nw-se.svg

+4-4
Loading

src/_icons/arrows-double-se-nw.svg

+4-4
Loading

src/_icons/arrows-double-sw-ne.svg

+4-4
Loading

src/_icons/bell-minus.svg

+3-3
Loading

src/_icons/bell-plus.svg

+4-4
Loading

src/_icons/bell-x.svg

+3-3
Loading

src/_icons/file-alert.svg

+2-2
Loading

src/_icons/file-analytics.svg

+3-3
Loading

src/_icons/zoom-question.svg

+4-4
Loading

0 commit comments

Comments
 (0)