diff --git a/.compress-all.js b/.compress-all.js new file mode 100644 index 0000000..dcbce1e --- /dev/null +++ b/.compress-all.js @@ -0,0 +1,32 @@ +const glob = require("glob"); +const minify = require('@node-minify/core'); +const htmlMinifier = require('@node-minify/html-minifier'); +const crass = require('@node-minify/crass'); + +console.log('compress all html and css files'); + +glob("dist/**/*.html", function (er, files) { + files.forEach(file => { + console.log(file); + minify({ + compressor: htmlMinifier, + input: file, + output: file, + options: { + collapseWhitespace: true, + conservativeCollapse: true + }, + }); + }) +}); + +glob("dist/**/*.css", function (er, files) { + files.forEach(file => { + console.log(file); + minify({ + compressor: crass, + input: file, + output: file + }); + }) +}); diff --git a/.eleventy.js b/.eleventy.js index 67d1c3d..2cd5a68 100644 --- a/.eleventy.js +++ b/.eleventy.js @@ -8,8 +8,7 @@ module.exports = function (eleventyConfig) { eleventyConfig.addPassthroughCopy({ "src/img": "img", "src/font": "font", - "node_modules/@fortawesome/fontawesome-free/webfonts/": "font", - "node_modules/flag-icon-css/flags/4x3/(de|us)*": "flags" + "src/favicon.*": "", }); eleventyConfig.addShortcode("translatedUrl", function (currentLocale, newLocale) { return this.page.url.replace(new RegExp(`\/${currentLocale}\/`), `/${newLocale}/`); diff --git a/package.json b/package.json index 8fb77eb..b569d60 100644 --- a/package.json +++ b/package.json @@ -3,11 +3,12 @@ "version": "1.0.0", "description": "website for sp-codes.de", "scripts": { - "compile-sass": "node-sass --output-style compressed --importer=node_modules/node-sass-tilde-importer src/scss/ -o dist/css/", + "compile-sass": "node-sass --output-style compressed --importer=node_modules/node-sass-tilde-importer src/scss/main.scss -o dist/css/", + "minify-css": "uncss -n -H dist/ -o dist/css/main.css dist/**/*.html dist/**/**/*.html dist/**/**/**/*.html", "watch:eleventy": "eleventy --serve", - "watch:sass": "npm run compile-sass -- --watch", - "start": "npm-run-all compile-sass --parallel watch:*", - "build": "npm run compile-sass && eleventy && npm run move-index", + "watch:sass": "npm-run-all compile-sass minify-css -- --watch", + "start": "npm-run-all compile-sass minify-css --parallel watch:*", + "build": "npm run compile-sass && eleventy && npm run move-index && npm run minify-css && node .compress-all.js", "move-index": "cpx dist/de/index.html dist/" }, "author": "samuel-p", @@ -19,16 +20,20 @@ "browser-sync": "^2.26.14" }, "devDependencies": { - "@11ty/eleventy": "^1.0.0-canary.32", + "@11ty/eleventy": "^1.0.0-canary.35", "@11ty/eleventy-navigation": "^0.2.0", + "@node-minify/core": "^6.2.0", + "@node-minify/crass": "^6.2.0", + "@node-minify/html-minifier": "^6.2.0", "cpx": "^1.5.0", + "glob": "^7.1.7", + "minify": "^7.0.2", "node-sass": "^6.0.0", "node-sass-tilde-importer": "^1.0.2", - "npm-run-all": "^4.1.5" + "npm-run-all": "^4.1.5", + "uncss": "^0.17.3" }, "dependencies": { - "@fortawesome/fontawesome-free": "^5.15.3", - "bootstrap": "^4.6.0", - "flag-icon-css": "^3.5.0" + "bootstrap": "^4.6.0" } } diff --git a/src/_data/services.json b/src/_data/services.json index 4021de7..f190189 100644 --- a/src/_data/services.json +++ b/src/_data/services.json @@ -2,7 +2,7 @@ { "id": "searx", "name": "Searx", - "icon": "si si-search", + "icon": "i-search", "url": "https://searx.sp-codes.de", "status": "https://searx.sp-codes.de", "summary": { @@ -13,7 +13,7 @@ { "id": "matrix", "name": "Matrix", - "icon": "si si-comments", + "icon": "i-comments", "url": "https://chat.sp-codes.de", "status": "https://matrix.sp-codes.de/_matrix/static/", "summary": { @@ -24,7 +24,7 @@ { "id": "jitsi", "name": "Jitsi Meet", - "icon": "si si-users", + "icon": "i-users", "url": "https://jitsi.sp-codes.de", "status": "https://jitsi.sp-codes.de", "summary": { @@ -35,7 +35,7 @@ { "id": "mastodon", "name": "Mastodon", - "icon": "si si-mastodon", + "icon": "i-mastodon", "url": "https://social.sp-codes.de", "status": "https://social.sp-codes.de/health", "beta": true, @@ -47,7 +47,7 @@ { "id": "gitea", "name": "Gitea", - "icon": "si si-gitea", + "icon": "i-gitea", "url": "https://git.sp-codes.de", "status": "https://git.sp-codes.de", "summary": { @@ -58,7 +58,7 @@ { "id": "connectivitycheck", "name": "Captive Portal Check", - "icon": "si si-wifi", + "icon": "i-wifi", "status": "https://connectivitycheck.sp-codes.de/generate204", "summary": { "de": "Eine datenschutzfreundliches Tool, um Anmeldeseiten in WLAN-Netzwerken zu erkennen.", @@ -68,7 +68,7 @@ { "id": "firefox-sync", "name": "Firefox Sync", - "icon": "si si-firefox-browser", + "icon": "i-firefox", "status": "https://sync.firefox.sp-codes.de/token/", "summary": { "de": "Ein Service um Firefox Einstellungen, Lesezeichen, offene Tabs und vieles mehr über verschiedene Geräte zu synchronisieren.", @@ -78,7 +78,7 @@ { "id": "shields", "name": "Shields", - "icon": "si si-tags", + "icon": "i-tags", "url": "https://shields.sp-codes.de", "status": "https://shields.sp-codes.de", "summary": { @@ -88,8 +88,8 @@ }, { "id": "translate", - "name": "LibreTranslate", - "icon": "si si-language", + "name": "Translate", + "icon": "i-language", "url": "https://translate.sp-codes.de", "status": "https://translate.sp-codes.de", "beta": true, @@ -101,7 +101,7 @@ { "id": "invidious", "name": "Invidious", - "icon": "si si-youtube", + "icon": "i-youtube", "url": "https://invidious.sp-codes.de", "status": "https://invidious.sp-codes.de", "summary": { @@ -112,7 +112,7 @@ { "id": "nitter", "name": "Nitter", - "icon": "si si-twitter", + "icon": "i-twitter", "url": "https://nitter.sp-codes.de", "status": "https://nitter.sp-codes.de", "summary": { diff --git a/src/_includes/layouts/base.njk b/src/_includes/layouts/base.njk index fc410de..6b154a2 100644 --- a/src/_includes/layouts/base.njk +++ b/src/_includes/layouts/base.njk @@ -31,23 +31,22 @@ title: sp-codes - - - + +