mirror of
https://codeberg.org/Kankys/NewLukasBlog.git
synced 2026-11-11 06:14:36 +01:00
- Sjednoceny všechny relativní cesty na absolutní (od kořene /web/) - Přidáno loading="lazy" pro všechny obrázky pod foldem - Vytvořeny minifikované verze: - web/js/min/shared.min.js (125 → 3 řádky) - web/css/min/shared.min.css - web/css/min/variables.min.css - Přidány dev dependencies: cssnano, terser - Vytvořen minify.js skript pro budoucí minifikaci Generated by Mistral Vibe. Co-Authored-By: Mistral Vibe <vibe@mistral.ai>
68 lines
1.9 KiB
JavaScript
68 lines
1.9 KiB
JavaScript
const fs = require('fs');
|
|
const path = require('path');
|
|
const { minify: minifyJs } = require('terser');
|
|
|
|
// Minify JavaScript files
|
|
const jsFiles = [
|
|
'js/shared.js'
|
|
];
|
|
|
|
// Minify CSS files (simple approach - remove whitespace and comments)
|
|
function minifyCss(content) {
|
|
return content
|
|
.replace(/\/\*[\s\S]*?\*\//g, '') // Remove multi-line comments
|
|
.replace(/\/\*.*\*\//g, '') // Remove single-line comments
|
|
.replace(/\s+/g, ' ') // Collapse whitespace
|
|
.replace(/\s*([{}:;,>])\s*/g, '$1') // Remove spaces around brackets
|
|
.replace(/\s*\n\s*/g, '\n') // Remove empty lines
|
|
.replace(/\n/g, '') // Remove all newlines
|
|
.trim();
|
|
}
|
|
|
|
async function minifyAll() {
|
|
// Minify JS files
|
|
for (const file of jsFiles) {
|
|
try {
|
|
const content = fs.readFileSync(file, 'utf8');
|
|
const result = await minifyJs(content, {
|
|
compress: {
|
|
drop_console: false,
|
|
keep_fnames: false,
|
|
passes: 2
|
|
},
|
|
mangle: true,
|
|
format: {
|
|
beautify: false,
|
|
comments: false
|
|
}
|
|
});
|
|
|
|
const outputPath = file.replace('.js', '.min.js');
|
|
fs.writeFileSync(outputPath, result.code);
|
|
console.log(`Minified: ${file} -> ${outputPath}`);
|
|
} catch (error) {
|
|
console.error(`Error minifying ${file}:`, error);
|
|
}
|
|
}
|
|
|
|
// Minify CSS files
|
|
const cssFiles = [
|
|
'css/shared.css',
|
|
'css/variables.css'
|
|
];
|
|
|
|
for (const file of cssFiles) {
|
|
try {
|
|
const content = fs.readFileSync(file, 'utf8');
|
|
const minified = minifyCss(content);
|
|
const outputPath = file.replace('.css', '.min.css');
|
|
fs.writeFileSync(outputPath, minified);
|
|
console.log(`Minified: ${file} -> ${outputPath}`);
|
|
} catch (error) {
|
|
console.error(`Error minifying ${file}:`, error);
|
|
}
|
|
}
|
|
}
|
|
|
|
minifyAll().catch(console.error);
|