fix: linting cleanup, TS errors, mobile cookie banner and hero max-width

This commit is contained in:
MichalC
2026-08-01 12:27:14 +02:00
parent 02cb49e180
commit 88cb4c516d
49 changed files with 167 additions and 125 deletions
+156
View File
@@ -0,0 +1,156 @@
/* eslint-disable */
const fs = require('fs');
const path = require('path');
const mapping = {
'img_6a5d04a21372a8.20397387.webp': 'klimatyzacja-wroclaw-kiedy-montowac',
'img_6a5d04a231dac2.11355832.webp': 'cena-klimatyzacji-do-pokoju',
'img_6a5d04a25e4b98.52144832.webp': 'klimatyzacja-a-jakos-powietrza',
'img_6a5d04a27a2a42.56795579.webp': 'montaz-klimatyzacji-w-bloku',
'img_6a5d04a2a89295.39636622.webp': 'czynnik-chlodniczy-r32-r410a',
'img_6a5d04a2ce3596.67627277.webp': 'jaki-klimatyzator-do-salonu-30-m2',
'img_6a5d04a30d2c52.62595133.webp': 'klimatyzacja-w-biurze-co-warto-wiedziec',
'img_6a5d04a32a8e24.64727858.webp': 'pompa-ciepla-powietrze-woda-jak-dziala',
'img_6a5d04a354c369.35471968.webp': 'klimatyzacja-dla-alergikow',
'img_6a5d04a3772ec5.39684638.webp': 'serwis-klimatyzacji-samemu-co-mozna',
'img_6a5d04a3a0ad91.92196165.webp': 'klimatyzator-split-czy-multisplit',
'img_6a5d04a3beba26.98450615.webp': 'jak-dobrac-moc-klimatyzatora',
'img_6a5d04a3ec8671.37520426.webp': 'pompa-ciepla-vs-gaz-co-wybrac',
'img_6a5d04a41b3d33.17571060.webp': 'klimatyzacja-jako-ogrzewanie-zimowe',
'img_6a5d04a441d4a9.95117803.webp': 'jaki-klimatyzator-do-pokoju-20-m2',
'img_6a5d04a464d615.75587080.webp': 'jaki-klimatyzator-wybrac-do-mieszkania',
'img_6a5d04be52b442.44314731.webp': 'ranking-marek-klimatyzacji',
'img_6a5d04be6fdb26.32043683.webp': 'gdzie-zamontowac-jednostke-zewnetrzna-klimatyzacji',
'img_6a5d04beb3c1f3.98136765.webp': 'co-sprawdzic-przed-montazem-klimatyzacji',
'img_6a5d04bed08665.86887655.webp': 'gdzie-nie-montowac-klimatyzacji-w-domu',
'img_6a5d04bf25e550.89462427.webp': 'kiedy-najlepiej-zainstalowac-klimatyzacje-w-domu',
'img_6a5d04bf45cf49.82956577.webp': 'jak-dziala-inwenter-klimatyzator',
'img_6a5d04bf71f7e2.14009785.webp': 'gwarancja-na-montaz-klimatyzacji',
'img_6a5d04bfa28c35.65238690.webp': 'klimatyzacja-vs-wentylacja-roznice',
'img_6a5d04bfc11633.69161886.webp': 'pompa-ciepla-ile-kosztuje-eksploatacja',
'img_6a5d04bfef7be1.18184702.webp': 'halas-klimatyzatora-jak-zmierzyc',
'img_6a5d04c02261f0.29970552.webp': 'serwis-klimatyzacji-co-i-kiedy',
'img_6a5d04c04b87f9.58656333.webp': 'klimatyzacja-walbrzych-ceny',
'img_6a5d04c073be83.21304683.webp': 'klimatyzacja-dom-jednorodzinny-system',
'img_6a5d04c09d68c3.59447568.webp': 'pompa-ciepla-fotowoltaika-synergia',
'img_6a5d04c0c8c1c6.48575540.webp': 'klimatyzacja-nowe-mieszkanie-deweloper',
'img_6a5d04c1067c12.79554682.webp': 'pompa-ciepla-stary-dom',
'img_6a5d04c12da0c8.50905305.webp': 'ile-kosztuje-godzina-pracy-technika-klimatyzacji',
'img_6a5d04c159bcd6.32914629.webp': 'ile-trwa-montaz-klimatyzacji',
'img_6a5d04e0bf2493.80472628.webp': 'jak-oszczedzac-na-klimatyzacji',
'img_6a5d04e0dd6821.27388481.webp': 'czy-mozna-zainstalowac-klimatyzator-samemu',
'img_6a5d04e1172f78.91797716.webp': 'halas-z-klimatyzacji-normy',
'img_6a5d04e1319575.94343123.webp': 'objawy-uszkodzonej-klimatyzacji',
'img_6a5d04e15a8ce7.38987392.webp': 'okres-gwarancji-na-klimatyzacje',
'img_6a5d04e175b984.69402532.webp': 'jak-wybrac-firme-do-montazu-klimatyzacji',
'img_6a5d04e1a97cf7.04175498.webp': 'czy-instalacja-klimatyzacji-wymaga-pozwolenia',
'img_6a5d04e1cb3269.84592063.webp': 'jak-czyscic-filtry-w-klimatyzacji',
'img_6a5d04e2003b93.75200105.webp': 'cena-montazu-klimatyzacji-w-biurze',
'img_6a5d04e2233561.05897034.webp': 'czy-klimatyzacja-bez-montazu-warta-inwestycji',
'img_6a5d04e25dba63.60274799.webp': 'czy-multisplit-oszczedza-prad',
'img_6a5d04e27f4308.72545903.webp': 'ile-kosztuje-montaz-klimatyzacji',
'img_6a5d04e2ac7600.19211261.webp': 'czy-mozna-montowac-klimatyzacje-nad-oknem',
'img_6a5d04e2ce4529.48716501.webp': 'oznaczenia-wydajnosci-klimatyzatorow',
'img_6a5d04e309b541.63791762.webp': 'split-czy-multisplit-ktora-klimatyzacja-lepsza',
'img_6a5d04e32f8533.44864660.webp': 'czy-klimatyzacja-multisplit-jest-oplacalna',
'img_6a5d04e35a77b6.58886578.webp': 'ile-trwa-demontaz-starej-klimatyzacji',
'img_6a5d04e385e4f5.96931089.webp': 'wymogi-elektryczne-do-klimatyzacji',
'img_6a5d04e3a4d1e7.98716793.webp': 'ile-kosztuje-montaz-klimatyzacji-w-domu',
'img_6a5d04e3ced574.69087334.webp': 'zasada-5-minut-w-montazu-klimatyzacji',
'img_6a5d04e4016424.10906606.webp': 'koszt-konsultacji-przed-montazem-klimatyzacji',
'img_6a5d04e4315737.26878013.webp': 'klimatyzacja-legnica-montaz',
'img_6a5d04e4523360.78733262.webp': 'jak-sprawdzic-czy-technicy-montuja-klimatyzacje-prawidlowo',
'img_6a5d04e47b4101.45444854.webp': 'czy-warto-remontowac-stara-klimatyzacje',
'img_6a5d04e4978d12.59948415.webp': 'klimatyzacja-a-zdrowie-mity-i-prawda',
'img_6a5d04e4c0ab90.56512395.webp': 'koszty-przedluzenia-rur-w-klimatyzacji',
'img_6a5d04e4e23ca4.33276359.webp': 'czy-trzeba-uziemic-klimatyzacje',
'img_6a5d04e518a696.65815784.webp': 'na-co-zwrocic-uwage-przy-wyborze-klimatyzatora',
'img_6a5d04e5377e23.67377862.webp': 'jak-chronic-parapet-przed-kondensacja-z-klimatyzacji'
};
const imagesDir = path.join(__dirname, 'public/images/blogs_images');
const postsPath = path.join(__dirname, 'content/posts.ts');
let postsContent = fs.readFileSync(postsPath, 'utf-8');
const missingFiles = [];
const missingSlugs = [];
const processedSlugs = new Set();
// Ensure the directory exists
if (!fs.existsSync(imagesDir)) {
console.log('Error: Directory ' + imagesDir + ' does not exist.');
process.exit(1);
}
for (const [filename, slug] of Object.entries(mapping)) {
const oldPath = path.join(imagesDir, filename);
const newFilename = `${slug}.webp`;
const newPath = path.join(imagesDir, newFilename);
if (!fs.existsSync(oldPath) && !fs.existsSync(newPath)) {
missingFiles.push(`${filename} => ${slug}`);
continue;
}
// Find slug in posts.ts
const slugRegex = new RegExp(`slug:\\s*['"]${slug}['"]`);
if (!slugRegex.test(postsContent)) {
missingSlugs.push(`${filename} => ${slug}`);
continue;
}
// Rename file if not already renamed
if (fs.existsSync(oldPath)) {
fs.renameSync(oldPath, newPath);
}
// Update postsContent
// The structure is roughly:
// slug: 'slug-name',
// title: '...',
// category: '...',
// excerpt: '...',
// date: '...',
// author: '...',
// image: '',
// We need to replace image: '' with image: '/images/blogs_images/slug.webp' for this specific object.
// A safe way is to find the object block containing the slug, and replace the image field inside it.
// We'll split the content by objects or just use a replace with a function.
// A simple way is to find the index of the slug, then find the next `image: '',` and replace it.
const slugIndex = postsContent.indexOf(`slug: '${slug}'`);
if (slugIndex === -1) {
missingSlugs.push(`${filename} => ${slug}`);
continue;
}
const nextImageIndex = postsContent.indexOf(`image: ''`, slugIndex);
if (nextImageIndex !== -1 && nextImageIndex < slugIndex + 1000) { // arbitrary limit to ensure we are in the same object
postsContent = postsContent.slice(0, nextImageIndex) + `image: '/images/blogs_images/${newFilename}'` + postsContent.slice(nextImageIndex + 9);
processedSlugs.add(slug);
} else {
// maybe it already has a value or spacing is different
const nextImageRegex = /image:\s*['"][^'"]*['"]/;
const substr = postsContent.substring(slugIndex, slugIndex + 1000);
const match = substr.match(nextImageRegex);
if (match) {
const matchIndex = slugIndex + match.index;
postsContent = postsContent.slice(0, matchIndex) + `image: '/images/blogs_images/${newFilename}'` + postsContent.slice(matchIndex + match[0].length);
processedSlugs.add(slug);
} else {
console.log('Could not find image field for slug: ' + slug);
}
}
}
fs.writeFileSync(postsPath, postsContent);
console.log('Successfully updated posts.ts and renamed images.');
if (missingFiles.length > 0) {
console.log('\\nBrakujące pliki w folderze public/images/blogs_images:');
missingFiles.forEach(f => console.log(f));
}
if (missingSlugs.length > 0) {
console.log('\\nSlugi usunięte z posts.ts lub nieistniejące:');
missingSlugs.forEach(s => console.log(s));
}