Files
doormile-site/fix_paths_all.js
2026-04-17 12:47:41 +05:30

69 lines
2.8 KiB
JavaScript

const fs = require('fs');
const path = require('path');
const cssDir = 'c:/xampp/htdocs/doormileweb/assets/css';
const files = fs.readdirSync(cssDir).filter(f => f.endsWith('.css'));
files.forEach(file => {
const filePath = path.join(cssDir, file);
let content = fs.readFileSync(filePath, 'utf8');
let changed = false;
// 1. Replace external domains and /wp-content/ in URLs
// Pattern: url("https://.../wp-content/.../file.ext") -> url("/doormileweb/assets/.../file.ext")
// This is tricky because we don't know the exact mapping.
// But most fonts/images should be in assets/fonts/ or assets/images/.
// Specifically for fonts
content = content.replace(/url\(['"]?(?:https?:\/\/[^/]+)?(?:\/themes\/[^/]+)?\/wp-content\/[^'"]+\/([^'"]+\.(?:woff2?|ttf|eot|svg))['"]?\)/gi, (match, filename) => {
changed = true;
return `url(/doormileweb/assets/fonts/${filename})`;
});
// Specifically for images
content = content.replace(/url\(['"]?(?:https?:\/\/[^/]+)?(?:\/themes\/[^/]+)?\/wp-content\/[^'"]+\/([^'"]+\.(?:jpg|png|gif|svg|webp))['"]?\)/gi, (match, filename) => {
changed = true;
return `url(/doormileweb/assets/images/${filename})`;
});
// 2. Replace relative paths to fonts
// Pattern: url(../../fonts/file.ext) -> url(/doormileweb/assets/fonts/file.ext)
content = content.replace(/url\(['"]?(?:\.\.\/)+fonts\/([^'"]+)['"]?\)/gi, (match, filename) => {
changed = true;
return `url(/doormileweb/assets/fonts/${filename})`;
});
// Patterns with /plugins/ elementor ...
content = content.replace(/url\(['"]?(?:\.\.\/)+plugins\/elementor\/assets\/lib\/font-awesome\/webfonts\/([^'"]+)['"]?\)/gi, (match, filename) => {
changed = true;
return `url(/doormileweb/assets/fonts/${filename})`;
});
content = content.replace(/url\(['"]?(?:\.\.\/)+plugins\/elementor\/assets\/lib\/eicons\/fonts\/([^'"]+)['"]?\)/gi, (match, filename) => {
changed = true;
return `url(/doormileweb/assets/fonts/${filename})`;
});
// 3. Fix /assets/fonts/ -> /doormileweb/assets/fonts/
content = content.replace(/url\(?['"]?\/assets\/fonts\/([^'"]+)['"]?\)?/gi, (match, pathPart) => {
// match might include url( or just the path if I'm not careful.
// Let's refine the regex.
if (match.startsWith('url(')) {
changed = true;
return `url(/doormileweb/assets/fonts/${pathPart})`;
}
return match;
});
// General /assets/ fix
content = content.replace(/url\(['"]?\/assets\/([^'"]+)['"]?\)/gi, (match, pathPart) => {
changed = true;
return `url(/doormileweb/assets/${pathPart})`;
});
if (changed) {
console.log(`Updated paths in ${file}`);
fs.writeFileSync(filePath, content);
}
});