From 1e417e33797f3661757c5b7fbe641255baa1bc75 Mon Sep 17 00:00:00 2001 From: KoalaDev <6156589+Shik3i@users.noreply.github.com> Date: Wed, 8 Jul 2026 16:59:04 +0200 Subject: [PATCH] fix(website): wrap locale replacement values in function to prevent RegExp dollar replacement bugs --- website/build.cjs | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/website/build.cjs b/website/build.cjs index e1c087d..aa2a92e 100644 --- a/website/build.cjs +++ b/website/build.cjs @@ -193,7 +193,7 @@ async function compile() { compiled = compiled.replace(new RegExp(`\\{\\{SELECTED_${l.toUpperCase()}\\}\\}`, 'g'), l === lang ? 'selected' : ''); }); for (const [key, value] of Object.entries(locale)) { - compiled = compiled.replace(new RegExp(`\\{\\{${key}\\}\\}`, 'g'), value); + compiled = compiled.replace(new RegExp(`\\{\\{${key}\\}\\}`, 'g'), () => value); } return compiled; } @@ -244,7 +244,7 @@ async function compile() { // Merge locale with English fallback for keys not present in current locale const mergedLocale = { ...englishLocale, ...locale }; for (const [key, value] of Object.entries(mergedLocale)) { - compiled = compiled.replace(new RegExp(`\\{\\{${key}\\}\\}`, 'g'), value); + compiled = compiled.replace(new RegExp(`\\{\\{${key}\\}\\}`, 'g'), () => value); } return compiled; } @@ -569,5 +569,4 @@ function generateSitemap(wwwDir, websiteDir) { fs.writeFileSync(path.join(wwwDir, 'sitemap.xml'), xml.trim() + '\n', 'utf8'); console.log(' ✓ Dynamically generated sitemap.xml with current date'); } - compile().catch(err => { console.error('Build failed:', err); process.exit(1); });