mirror of
https://github.com/konpa/devicon.git
synced 2025-08-06 14:46:46 +02:00
Gulpfile Edits (#759)
* Fixed main var/constants Formatting as well * Made gulp a constant * Removed extra comma Co-authored-by: Thomas Bui <43018778+Thomas-Boi@users.noreply.github.com> * Removed extra () the things i cant spell Co-authored-by: Thomas Bui <43018778+Thomas-Boi@users.noreply.github.com> * Removed extra () the things i cant spell Co-authored-by: Thomas Bui <43018778+Thomas-Boi@users.noreply.github.com> * Removed extra () the things i cant spell Co-authored-by: Thomas Bui <43018778+Thomas-Boi@users.noreply.github.com> * Removed extra comma Co-authored-by: Thomas Bui <43018778+Thomas-Boi@users.noreply.github.com> * Apply all suggestions from Thomas-Boi Co-authored-by: Thomas Bui <43018778+Thomas-Boi@users.noreply.github.com> Co-authored-by: Thomas Bui <43018778+Thomas-Boi@users.noreply.github.com>
This commit is contained in:
78
gulpfile.js
78
gulpfile.js
@@ -1,9 +1,9 @@
|
|||||||
var gulp = require('gulp');
|
const gulp = require("gulp");
|
||||||
const svgmin = require("gulp-svgmin")
|
const svgmin = require("gulp-svgmin");
|
||||||
const sass = require('gulp-sass');
|
const sass = require("gulp-sass");
|
||||||
sass.compiler = require('sass')
|
sass.compiler = require("sass");
|
||||||
const yargs = require("yargs")
|
const yargs = require("yargs");
|
||||||
const fsPromise = require('fs').promises;
|
const fsPromise = require("fs").promises;
|
||||||
const path = require("path");
|
const path = require("path");
|
||||||
|
|
||||||
// global const
|
// global const
|
||||||
@@ -27,9 +27,10 @@ async function createDeviconMinCSS() {
|
|||||||
const fileContent = `@use "${aliasSCSSName}";@use "${colorsCSSName}";`;
|
const fileContent = `@use "${aliasSCSSName}";@use "${colorsCSSName}";`;
|
||||||
await fsPromise.writeFile(deviconMinPath, fileContent, "utf8");
|
await fsPromise.writeFile(deviconMinPath, fileContent, "utf8");
|
||||||
|
|
||||||
return gulp.src(finalMinSCSSName)
|
return gulp
|
||||||
.pipe(sass.sync({"outputStyle": "compressed"}).on('error', sass.logError))
|
.src(finalMinSCSSName)
|
||||||
.pipe(gulp.dest('./'));
|
.pipe(sass.sync({ outputStyle: "compressed" }).on("error", sass.logError))
|
||||||
|
.pipe(gulp.dest("./"));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -38,15 +39,13 @@ async function createDeviconMinCSS() {
|
|||||||
*/
|
*/
|
||||||
async function createCSSFiles() {
|
async function createCSSFiles() {
|
||||||
const deviconJson = JSON.parse(
|
const deviconJson = JSON.parse(
|
||||||
await fsPromise.readFile(
|
await fsPromise.readFile(path.join(__dirname, deviconJSONName), "utf8")
|
||||||
path.join(__dirname, deviconJSONName), "utf8"
|
|
||||||
)
|
|
||||||
);
|
);
|
||||||
|
|
||||||
await Promise.all([
|
await Promise.all([
|
||||||
createAliasSCSS(deviconJson),
|
createAliasSCSS(deviconJson),
|
||||||
createColorsCSS(deviconJson)
|
createColorsCSS(deviconJson)
|
||||||
])
|
]);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -66,7 +65,6 @@ function createAliasSCSS(deviconJson) {
|
|||||||
return fsPromise.writeFile(sassPath, sass, "utf8");
|
return fsPromise.writeFile(sassPath, sass, "utf8");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Create the aliases statement by searching for the
|
* Create the aliases statement by searching for the
|
||||||
* techname in the statement and finding its aliases in
|
* techname in the statement and finding its aliases in
|
||||||
@@ -76,16 +74,15 @@ function createAliasSCSS(deviconJson) {
|
|||||||
* devicon-alias.scss.
|
* devicon-alias.scss.
|
||||||
*/
|
*/
|
||||||
function createAliasStatement(fontObj) {
|
function createAliasStatement(fontObj) {
|
||||||
let {
|
let { name, aliases } = fontObj;
|
||||||
name,
|
|
||||||
aliases
|
|
||||||
} = fontObj;
|
|
||||||
|
|
||||||
return aliases.map(aliasObj => {
|
return aliases
|
||||||
|
.map(aliasObj => {
|
||||||
return `.devicon-${name}-${aliasObj.alias} {
|
return `.devicon-${name}-${aliasObj.alias} {
|
||||||
@extend .devicon-${name}-${aliasObj.base};
|
@extend .devicon-${name}-${aliasObj.base};
|
||||||
}`;
|
}`;
|
||||||
}).join(" ");
|
})
|
||||||
|
.join(" ");
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -97,23 +94,22 @@ function createAliasStatement(fontObj) {
|
|||||||
*/
|
*/
|
||||||
function createColorsCSS(deviconJson) {
|
function createColorsCSS(deviconJson) {
|
||||||
// create the color statements for each font object
|
// create the color statements for each font object
|
||||||
let statements = deviconJson.map(fontObj => {
|
let statements = deviconJson
|
||||||
|
.map(fontObj => {
|
||||||
let {
|
let {
|
||||||
name,
|
name,
|
||||||
versions: {
|
versions: { font: fonts },
|
||||||
font: fonts
|
|
||||||
},
|
|
||||||
color,
|
color,
|
||||||
aliases
|
aliases
|
||||||
} = fontObj;
|
} = fontObj;
|
||||||
|
|
||||||
if (fonts.length === 0 || typeof(color) !== "string") {
|
if (fonts.length === 0 || typeof color !== "string") {
|
||||||
console.log(`This object doesn't have a font or a color: ${name}`);
|
console.log(`This object doesn't have a font or a color: ${name}`);
|
||||||
return "";
|
return "";
|
||||||
}
|
}
|
||||||
|
|
||||||
// process the icons in the font attr
|
// process the icons in the font attr
|
||||||
let cssClasses = fonts.map(font => `.devicon-${name}-${font}.colored`);
|
let cssClasses = fonts.map((font) => `.devicon-${name}-${font}.colored`);
|
||||||
|
|
||||||
// process the icons in the aliases attr
|
// process the icons in the aliases attr
|
||||||
aliases.forEach(aliasObj => {
|
aliases.forEach(aliasObj => {
|
||||||
@@ -121,7 +117,8 @@ function createColorsCSS(deviconJson) {
|
|||||||
});
|
});
|
||||||
|
|
||||||
return `${cssClasses.join(",")}{color: ${color}}`;
|
return `${cssClasses.join(",")}{color: ${color}}`;
|
||||||
}).join(" ");
|
})
|
||||||
|
.join(" ");
|
||||||
|
|
||||||
let cssPath = path.join(__dirname, colorsCSSName);
|
let cssPath = path.join(__dirname, colorsCSSName);
|
||||||
return fsPromise.writeFile(cssPath, statements, "utf8");
|
return fsPromise.writeFile(cssPath, statements, "utf8");
|
||||||
@@ -132,11 +129,7 @@ function createColorsCSS(deviconJson) {
|
|||||||
* and the devicon.min.scss.
|
* and the devicon.min.scss.
|
||||||
*/
|
*/
|
||||||
function cleanUp() {
|
function cleanUp() {
|
||||||
let fileNames = [
|
let fileNames = [aliasSCSSName, colorsCSSName, finalMinSCSSName];
|
||||||
aliasSCSSName,
|
|
||||||
colorsCSSName,
|
|
||||||
finalMinSCSSName,
|
|
||||||
];
|
|
||||||
|
|
||||||
return Promise.all(
|
return Promise.all(
|
||||||
fileNames.map(name => {
|
fileNames.map(name => {
|
||||||
@@ -150,7 +143,6 @@ function cleanUp() {
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
//////// Update SVG Task ////////
|
//////// Update SVG Task ////////
|
||||||
/**
|
/**
|
||||||
* Update the svg by optimizing it
|
* Update the svg by optimizing it
|
||||||
@@ -160,13 +152,16 @@ function cleanUp() {
|
|||||||
* This must be passed through the commandline arguments.
|
* This must be passed through the commandline arguments.
|
||||||
*/
|
*/
|
||||||
function optimizeSvg() {
|
function optimizeSvg() {
|
||||||
let svgGlob = JSON.parse(yargs.argv.svgFiles)
|
let svgGlob = JSON.parse(yargs.argv.svgFiles);
|
||||||
console.log("Optimizing these files: ", svgGlob)
|
console.log("Optimizing these files: ", svgGlob);
|
||||||
return gulp.src(svgGlob)
|
return gulp
|
||||||
|
.src(svgGlob)
|
||||||
.pipe(svgmin(configOptionCallback))
|
.pipe(svgmin(configOptionCallback))
|
||||||
.pipe(gulp.dest(file => {
|
.pipe(
|
||||||
return file.base
|
gulp.dest(file => {
|
||||||
}))
|
return file.base;
|
||||||
|
})
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -182,7 +177,7 @@ function configOptionCallback(file) {
|
|||||||
prefixIds: {
|
prefixIds: {
|
||||||
prefix: file.stem, // add file name to ids
|
prefix: file.stem, // add file name to ids
|
||||||
delim: "-"
|
delim: "-"
|
||||||
}
|
},
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
removeViewBox: false // keep viewbox
|
removeViewBox: false // keep viewbox
|
||||||
@@ -191,9 +186,8 @@ function configOptionCallback(file) {
|
|||||||
removeDimensions: true // remove height and width
|
removeDimensions: true // remove height and width
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
|
};
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
exports.updateCss = createDeviconMinCSS;
|
exports.updateCss = createDeviconMinCSS;
|
||||||
exports.clean = cleanUp;
|
exports.clean = cleanUp;
|
||||||
|
Reference in New Issue
Block a user