117 lines
5.9 KiB
JavaScript
117 lines
5.9 KiB
JavaScript
|
const gulp = require("gulp");
|
||
|
const realFavicon = require("gulp-real-favicon");
|
||
|
|
||
|
const fs = require("fs");
|
||
|
const del = require("del");
|
||
|
const through = require("through2");
|
||
|
|
||
|
var BUILD = "build";
|
||
|
var FAVICON_DATA_FILE = BUILD + "/faviconData.json";
|
||
|
|
||
|
function noop() {
|
||
|
return through.obj();
|
||
|
}
|
||
|
|
||
|
gulp.task("prepare", function (done) {
|
||
|
if (!fs.existsSync(BUILD)) {
|
||
|
fs.mkdirSync(BUILD, {
|
||
|
recursive: true,
|
||
|
});
|
||
|
}
|
||
|
done();
|
||
|
});
|
||
|
|
||
|
gulp.task("favicon-generate", function (done) {
|
||
|
realFavicon.generateFavicon(
|
||
|
{
|
||
|
masterPicture: "src/favicon/favicon-main.svg",
|
||
|
dest: "static/favicon",
|
||
|
iconsPath: "/favicon",
|
||
|
design: {
|
||
|
ios: {
|
||
|
pictureAspect: "backgroundAndMargin",
|
||
|
backgroundColor: "#4186c9",
|
||
|
margin: "0",
|
||
|
assets: {
|
||
|
ios6AndPriorIcons: false,
|
||
|
ios7AndLaterIcons: false,
|
||
|
precomposedIcons: false,
|
||
|
declareOnlyDefaultIcon: true,
|
||
|
},
|
||
|
},
|
||
|
desktopBrowser: {},
|
||
|
windows: {
|
||
|
masterPicture: {
|
||
|
type: "inline",
|
||
|
content:
|
||
|
"PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjwhLS0gQ3JlYXRlZCB3aXRoIElua3NjYXBlIChodHRwOi8vd3d3Lmlua3NjYXBlLm9yZy8pIC0tPgoKPHN2ZwogICB3aWR0aD0iNTAwIgogICBoZWlnaHQ9IjUwMCIKICAgdmlld0JveD0iMCAwIDEzMi4yOTE2NyAxMzIuMjkxNjciCiAgIHZlcnNpb249IjEuMSIKICAgaWQ9InN2ZzU1OSIKICAgaW5rc2NhcGU6dmVyc2lvbj0iMS4xIChjNjhlMjJjMzg3LCAyMDIxLTA1LTIzKSIKICAgc29kaXBvZGk6ZG9jbmFtZT0iYXZhdGFyX3Jhdy5zdmciCiAgIHhtbG5zOmlua3NjYXBlPSJodHRwOi8vd3d3Lmlua3NjYXBlLm9yZy9uYW1lc3BhY2VzL2lua3NjYXBlIgogICB4bWxuczpzb2RpcG9kaT0iaHR0cDovL3NvZGlwb2RpLnNvdXJjZWZvcmdlLm5ldC9EVEQvc29kaXBvZGktMC5kdGQiCiAgIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIKICAgeG1sbnM6c3ZnPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CiAgPHNvZGlwb2RpOm5hbWVkdmlldwogICAgIGlkPSJuYW1lZHZpZXc1NjEiCiAgICAgcGFnZWNvbG9yPSIjZmZmZmZmIgogICAgIGJvcmRlcmNvbG9yPSIjNjY2NjY2IgogICAgIGJvcmRlcm9wYWNpdHk9IjEuMCIKICAgICBpbmtzY2FwZTpwYWdlc2hhZG93PSIyIgogICAgIGlua3NjYXBlOnBhZ2VvcGFjaXR5PSIwIgogICAgIGlua3NjYXBlOnBhZ2VjaGVja2VyYm9hcmQ9IjAiCiAgICAgaW5rc2NhcGU6ZG9jdW1lbnQtdW5pdHM9Im1tIgogICAgIHNob3dncmlkPSJmYWxzZSIKICAgICBpbmtzY2FwZTp6b29tPSIwLjY0NzY1MDExIgogICAgIGlua3NjYXBlOmN4PSIyODMuMzMyIgogICAgIGlua3NjYXBlOmN5PSI0NjkuMzg5MjUiCiAgICAgaW5rc2NhcGU6d2luZG93LXdpZHRoPSIyNTYwIgogICAgIGlua3NjYXBlOndpbmRvdy1oZWlnaHQ9IjEzODAiCiAgICAgaW5rc2NhcGU6d2luZG93LXg9IjAiCiAgICAgaW5rc2NhcGU6d2luZG93LXk9IjMyIgogICAgIGlua3NjYXBlOndpbmRvdy1tYXhpbWl6ZWQ9IjEiCiAgICAgaW5rc2NhcGU6Y3VycmVudC1sYXllcj0ibGF5ZXIxIgogICAgIHVuaXRzPSJweCIgLz4KICA8ZGVmcwogICAgIGlkPSJkZWZzNTU2IiAvPgogIDxnCiAgICAgaW5rc2NhcGU6bGFiZWw9IkViZW5lIDEiCiAgICAgaW5rc2NhcGU6Z3JvdXBtb2RlPSJsYXllciIKICAgICBpZD0ibGF5ZXIxIgogICAgIHRyYW5zZm9ybT0idHJhbnNsYXRlKC00OC40MTY4OTQsLTExMy40MzY4NikiPgogICAgPGcKICAgICAgIGlkPSJnMzItNiIKICAgICAgIHN0eWxlPSJmaWxsOiNmZmZmZmYiCiAgICAgICB0cmFuc2Zvcm09Im1hdHJpeCgwLjQxNDM5NzM4LDAsMCwwLjQyNDgzNDQ2LC00Ny45NzQ1NjYsLTE3Ny40MzUxNCkiIC8+CiAgICA8ZwogICAgICAgaWQ9ImczNi02IgogICAgICAgc3R5bGU9ImZpbGw6I2ZmZmZmZiIKICAgICAgIHRyYW5zZm9ybT0ibWF0cml4KDAuNDE0Mzk3MzgsMCwwLDAuNDI0ODM0NDYsLTQ3Ljk3NDU2NiwtMTc3LjQzNTE0KSIgLz4KICAgIDxnCiAgICAgICBpZD0iZzUwMzQiCiAgICAgICB0cmFuc2Zvcm09Im1hdHJpeCgyLjgyNTEzMTEsMCwwLDIuODI1MTMxMSwtMjA3LjYxNTQ5LC00NDQuOTI5MzkpIj4KICAgICAgPHBhdGgKICAgICAgICAgY2xhc3M9InN0MSIKICAgICAgICAgZD0ibSAxMTAuMDA0OTEsMjE1LjUxNDU5IC0xNC43MTUzNjgsLTUuOTkwMzQgYyAtMS45MTgwMjcsLTAuNzc5MDEgLTQuMDAzNzQ1LDAuNjY2MTkgLTQuMDAzNzQ1LDIuNzgyOTYgdiAxNy40OTI4NSBjIDAsMi4wNjg0MyAyLjAwMTg2OCwzLjUxODk5IDMuOTA0MTczLDIuODI1OTQgbCAxNC43MTUzNywtNS4zNjcxMyBjIDEuMTYzMzgsLTAuNDI0NDIgMS45NDQyMiwtMS41NTgwMiAxLjk0NDIyLC0yLjgyNTk0IHYgLTYuMTM1MzggYyAwLC0xLjIyNDk0IC0wLjcyODQ0LC0yLjMzMTY4IC0xLjg0NDY1LC0yLjc4Mjk2IHoiCiAgICAgICAgIGlkPSJwYXRoNDQiCiAgICAgICAgIHN0eWxlPSJmaWxsOiNmZmZmZmY7c3Ryb2tlLXdpZHRoOjAuNTMwNjA5IiAvPgogICAgICA8cGF0aAogICAgICAgICBjbGFzcz0ic3QxIgogICAgICAgICBkPSJtIDEzMi43OTA2NCwyMDkuNTI0MjUgLTE0LjcxNTM1LDUuOTkwMzQgYyAtMS4xMTA5OSwwLjQ1MTI4IC0xLjg0NDY2LDEuNTU4MDIgLTEuODQ0NjYsMi43ODI5NiB2IDYuMTM1MzggYyAwLDEuMjY3OTIgMC43ODA4MywyLjM5NjE0IDEuOTQ0MjMsMi44MjU5NCBsIDE0LjcxNTM0LDUuMzY3MTMgYyAxLjkwMjMyLDAuNjkzMDUgMy45MDQxOSwtMC43NTIxNSAzLjkwNDE5LC0yLjgyNTk0IHYgLTE3LjQ5Mjg1IGMgLTAuMDA2LC0yLjExNjc3IC0yLjA4NTcyLC0zLjU2MTk3IC00LjAwMzc1LC0yLjc4Mjk2IHoiCiAgICAgICAgIGlkPSJwYXRoNDYiCiAgICAgICAgIHN0eWxlPSJmaWxsOiNmZmZmZmY7c3Ryb2tlLXdpZHRoOjAuNTMwNjA5IiAvPgogICAgPC9nPgogIDwvZz4KPC9zdmc+Cg==",
|
||
|
},
|
||
|
pictureAspect: "noChange",
|
||
|
backgroundColor: "#4186c9",
|
||
|
onConflict: "override",
|
||
|
assets: {
|
||
|
windows80Ie10Tile: false,
|
||
|
windows10Ie11EdgeTiles: {
|
||
|
small: true,
|
||
|
medium: true,
|
||
|
big: true,
|
||
|
rectangle: true,
|
||
|
},
|
||
|
},
|
||
|
},
|
||
|
androidChrome: {
|
||
|
pictureAspect: "shadow",
|
||
|
themeColor: "#2f333e",
|
||
|
manifest: {
|
||
|
display: "standalone",
|
||
|
orientation: "notSet",
|
||
|
onConflict: "override",
|
||
|
declared: true,
|
||
|
},
|
||
|
assets: {
|
||
|
legacyIcon: false,
|
||
|
lowResolutionIcons: false,
|
||
|
},
|
||
|
},
|
||
|
safariPinnedTab: {
|
||
|
pictureAspect: "blackAndWhite",
|
||
|
threshold: 58.75,
|
||
|
themeColor: "#4186c9",
|
||
|
},
|
||
|
},
|
||
|
settings: {
|
||
|
scalingAlgorithm: "Mitchell",
|
||
|
errorOnImageTooSmall: false,
|
||
|
readmeFile: false,
|
||
|
htmlCodeFile: false,
|
||
|
usePathAsIs: false,
|
||
|
},
|
||
|
markupFile: FAVICON_DATA_FILE,
|
||
|
},
|
||
|
function () {
|
||
|
done();
|
||
|
}
|
||
|
);
|
||
|
});
|
||
|
|
||
|
gulp.task("favicon-check-update", function (done) {
|
||
|
var currentVersion = JSON.parse(fs.readFileSync(FAVICON_DATA_FILE)).version;
|
||
|
realFavicon.checkForUpdates(currentVersion, function (err) {
|
||
|
if (err) {
|
||
|
throw err;
|
||
|
}
|
||
|
});
|
||
|
done();
|
||
|
});
|
||
|
|
||
|
gulp.task("clean", function () {
|
||
|
return del([BUILD, "static/favicon/", "resources"]);
|
||
|
});
|
||
|
|
||
|
/* Task series */
|
||
|
|
||
|
gulp.task(
|
||
|
"favicon",
|
||
|
gulp.series("clean", "prepare", "favicon-generate", "favicon-check-update")
|
||
|
);
|