Files

73 lines
2.3 KiB
JavaScript
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
import fs from 'fs';
import path from 'path';
import { fileURLToPath } from 'url';
const __dirname = path.dirname(fileURLToPath(import.meta.url));
function slugify(text) {
return text.toString().toLowerCase()
.replace(/ç/g, 'c')
.replace(/ğ/g, 'g')
.replace(/ı/g, 'i')
.replace(/ö/g, 'o')
.replace(/ş/g, 's')
.replace(/ü/g, 'u')
// URL decode first just in case
.replace(/%20/g, ' ')
.replace(/%c3%b6/g, 'o') // ö
.replace(/%c3%bc/g, 'u') // ü
.replace(/%c3%a7/g, 'c') // ç
.replace(/%c4%b1/g, 'i') // ı
.replace(/%c5%9f/g, 's') // ş
.replace(/%c4%9f/g, 'g') // ğ
.replace(/[^a-z0-9.]/g, '-')
.replace(/\-\-+/g, '-')
.replace(/^-+/, '')
.replace(/-+$/, '');
}
function processPath(urlPath) {
// decode url first
let decoded = decodeURIComponent(urlPath);
// split by /
const parts = decoded.split('/');
const newParts = parts.map((part, index) => {
// don't slugify empty parts or fixed prefixes
if (!part) return part;
if (part === 'images' || part === 'https:' || part === '' || part === 'media.ayris.tech' || part === 'upload' || part === 'aydogan') return part;
let newName = slugify(path.parse(part).name);
const ext = path.extname(part).toLowerCase();
if (ext) {
newName += ext;
}
return newName;
});
return newParts.join('/');
}
const filesToProcess = [
path.resolve(__dirname, '../lib/data.ts'),
path.resolve(__dirname, '../lib/gallery_data.ts'),
path.resolve(__dirname, '../components/Hero.tsx'),
path.resolve(__dirname, '../components/ServicesPreview.tsx')
];
for (const file of filesToProcess) {
if (!fs.existsSync(file)) continue;
let content = fs.readFileSync(file, 'utf8');
// Replace "/images/..."
content = content.replace(/"(\/images\/[^"]+)"/g, (match, p1) => {
return `"${processPath(p1)}"`;
});
// Replace "https://media.ayris.tech/upload/aydogan/..."
content = content.replace(/"(https:\/\/media\.ayris\.tech\/upload\/aydogan\/[^"]+)"/g, (match, p1) => {
return `"${processPath(p1)}"`;
});
fs.writeFileSync(file, content);
console.log(`Updated ${file}`);
}