-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathupdatelink.js
More file actions
71 lines (58 loc) · 2.4 KB
/
updatelink.js
File metadata and controls
71 lines (58 loc) · 2.4 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
import fs from 'fs';
import path from 'path';
// --- Configuration ---
// Mappage des noms de fichiers vers les nouvelles URL propres.
const linkMappings = {
'index.html': '/',
'services.html': '/services',
'projets.html': '/projets',
'recrutements.html': '/recrutements',
'mentions.html': '/mentions',
'cgv.html': '/cgv',
'credits.html': '/credits',
};
// Chemin vers le dossier contenant vos fichiers HTML.
const templatesDir = path.join(process.cwd(), 'public', 'templates');
// --- Logique du Script ---
console.log('🚀 Démarrage de la mise à jour des liens HTML...');
try {
// Lire la liste des fichiers dans le dossier des templates.
const files = fs.readdirSync(templatesDir);
const htmlFiles = files.filter(file => file.endsWith('.html'));
if (htmlFiles.length === 0) {
console.warn('⚠️ Aucun fichier HTML trouvé dans', templatesDir);
process.exit(0);
}
let totalReplacements = 0;
// Parcourir chaque fichier HTML.
htmlFiles.forEach(fileName => {
const filePath = path.join(templatesDir, fileName);
let content = fs.readFileSync(filePath, 'utf8');
let replacementsInFile = 0;
// Appliquer chaque règle de remplacement sur le contenu du fichier.
for (const [oldFileName, newUrl] of Object.entries(linkMappings)) {
// Regex pour trouver les liens pointant vers le fichier cible.
// Gère les cas comme : href="services.html", href="./services.html", href="../templates/services.html"
const pattern = new RegExp(`href=(["'])(?:\\.{1,2}\\/templates\\/|\\.\\/)?${oldFileName}\\1`, 'g');
// Compter les correspondances avant de remplacer.
const matches = content.match(pattern);
if (matches) {
replacementsInFile += matches.length;
}
// Remplacer par la nouvelle URL propre.
content = content.replace(pattern, `href="${newUrl}"`);
}
if (replacementsInFile > 0) {
// Écrire le contenu mis à jour dans le fichier.
fs.writeFileSync(filePath, content, 'utf8');
console.log(`✅ ${fileName}: ${replacementsInFile} lien(s) mis à jour.`);
totalReplacements += replacementsInFile;
} else {
console.log(`- ${fileName}: Aucun lien à mettre à jour.`);
}
});
console.log(`\n✨ Terminé ! ${totalReplacements} remplacements effectués au total.`);
} catch (error) {
console.error('\n❌ Une erreur est survenue :', error.message);
process.exit(1);
}