aboutsummaryrefslogtreecommitdiff
path: root/gulpfile.js
diff options
context:
space:
mode:
Diffstat (limited to 'gulpfile.js')
-rw-r--r--gulpfile.js103
1 files changed, 1 insertions, 102 deletions
diff --git a/gulpfile.js b/gulpfile.js
index a36fb97b..65a847a9 100644
--- a/gulpfile.js
+++ b/gulpfile.js
@@ -13,8 +13,6 @@ const gulp = require('gulp'),
sass = require('node-sass'),
cleanCSS = require('clean-css'),
argv = require('minimist')(process.argv.slice(2)),
- svgParse = require('parse-svg-path'),
- svgpath = require('svgpath'),
svgr = require('@svgr/core').default
const compileOptions = {
@@ -382,7 +380,7 @@ gulp.task('build-zip', function () {
return gulp.src('{icons/**/*,icons-png/**/*,icons-react/**/*,iconfont/**/*,tabler-sprite.svg,tabler-sprite-nostroke.svg}')
.pipe(zip(`tabler-icons-${version}.zip`))
- .pipe(gulp.dest('packages'))
+ .pipe(gulp.dest('packages-zip'))
})
gulp.task('build-jekyll', function (cb) {
@@ -478,67 +476,7 @@ gulp.task('icons-stroke', gulp.series('build-jekyll', function (cb) {
}))
gulp.task('optimize', function (cb) {
- const addFloats = function (n1, n2) {
- return Math.round((parseFloat(n1) + parseFloat(n2)) * 1000) / 1000
- }
-
- const optimizePath = function (path) {
- let transformed = svgpath(path)
- .rel()
- .round(3)
- .toString()
-
- return svgParse(transformed).map(function (a) {
- return a.join(' ')
- }).join(' ')
- }
-
- glob("src/_icons/*.svg", {}, function (er, files) {
- files.forEach(function (file, i) {
- let svgFile = fs.readFileSync(file),
- svgFileContent = svgFile.toString()
-
- svgFileContent = svgFileContent
- .replace(/><\/(polyline|line|rect|circle|path)>/g, '/>')
- .replace(/rx="([^"]+)"\s+ry="\1"/g, 'rx="$1"')
- .replace(/\s?\/>/g, ' />')
- .replace(/\n\s*<(line|circle|path|polyline|rect)/g, "\n <$1")
- .replace(/polyline points="([0-9.]+)\s([0-9.]+)\s([0-9.]+)\s([0-9.]+)"/g, 'line x1="$1" y1="$2" x2="$3" y2="$4"')
- .replace(/<path d="([^"]+)"/g, function (f, r1) {
- r1 = optimizePath(r1)
-
- return `<path d="${r1}"`
- })
- .replace(/d="m/g, 'd="M')
- .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')
- .replace(/\n\n+/g, "\n")
-
- .replace(/<path d="M([0-9.]*) ([0-9.]*)l\s?([-0-9.]*) ([-0-9.]*)"/g, function (f, r1, r2, r3, r4) {
- return `<line x1="${r1}" y1="${r2}" x2="${addFloats(r1, r3)}" y2="${addFloats(r2, r4)}"`
- })
- .replace(/<path d="M([0-9.]*) ([0-9.]*)v\s?([-0-9.]*)"/g, function (f, r1, r2, r3) {
- return `<line x1="${r1}" y1="${r2}" x2="${r1}" y2="${addFloats(r2, r3)}"`
- })
- .replace(/<path d="M([0-9.]*) ([0-9.]*)h\s?([-0-9.]*)"/g, function (f, r1, r2, r3) {
- return `<line x1="${r1}" y1="${r2}" x2="${addFloats(r1, r3)}" y2="${r2}"`
- })
- .replace(/<path d="([^"]+)"/g, function (f, r1) {
- r1 = r1
- .replace(/ -0\./g, " -.")
- .replace(/ 0\./g, " .")
- .replace(/\s([a-z])/gi, "$1")
- .replace(/([a-z])\s/gi, "$1")
- return `<path d="${r1}"`
- })
-
- if (svgFile.toString() !== svgFileContent) {
- fs.writeFileSync(file, svgFileContent)
- }
- })
-
- cb()
- })
})
gulp.task('changelog-commit', function (cb) {
@@ -693,48 +631,9 @@ gulp.task('svg-to-react', gulp.series('clean-react', async function (cb) {
cb()
}))
-const setVersions = function (version, files) {
- for (const i in files) {
- const file = files[i]
-
- 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`)
- }
- }
-}
gulp.task('update-icons-version', function (cb) {
- const version = argv['latest-version'] || `${p.version}`,
- newVersion = argv['new-version'] || `${p.version}`
-
- if (version) {
- cp.exec(`grep -RiL "version: " ./src/_icons/*.svg`, function (err, ret) {
-
- let newIcons = []
-
- ret.replace(/src\/_icons\/([a-z0-9-]+)\.svg/g, function (m, fileName) {
- newIcons.push(fileName)
- })
-
- if (newIcons.length) {
- setVersions(newVersion.replace(/\.0$/, ''), newIcons)
- }
- })
- }
cb()
})