fix: linting cleanup, TS errors, mobile cookie banner and hero max-width
This commit is contained in:
@@ -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));
|
||||
}
|
||||
Reference in New Issue
Block a user