INNER CODE UNIT · JavaScript
rewriteVersionCanonicals
namastack/namastack-outbox · namastack-outbox-docs/plugins/canonical-fix-plugin.js:42
function rewriteVersionCanonicals(docsDir, versionPrefixes, siteUrl, baseUrl, docsPath) {
for (const prefix of versionPrefixes) {
const versionDir = path.join(docsDir, prefix);
if (!fs.existsSync(versionDir)) continue;
for (const filePath of findHtmlFiles(versionDir)) {
const html = fs.readFileSync(filePath, 'utf-8');
const versionRoot = `${siteUrl}${baseUrl}${docsPath}/${prefix}/`;
const latestRoot = `${siteUrl}${baseUrl}${docsPath}/`;
const canonicalRegex = new RegExp(
`(<link[^>]*rel="canonical"[^>]*href=")${escapeRegExp(versionRoot)}([^"]*")`
);
const nextHtml = html.replace(canonicalRegex, `$1${latestRoot}$2`);
if (nextHtml !== html) {
fs.writeFileSync(filePath, nextHtml, 'utf-8');
}
}