mirror of
https://codeberg.org/Kankys/NewLukasBlog.git
synced 2026-11-11 06:14:36 +01:00
Opravy střední priority - sjednocení cest, lazy loading, minifikace
- 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>
This commit is contained in:
1 parent
c816b42bc8
commit
31833adfb7
52 files changed
+4207
-51
No files matched your search
@@ -0,0 +1,67 @@
|
||||
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);
|
||||
Reference in new issue
Block a user