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');
      }
    }

View source record →

📰 Research Paper
Loading…
⏳ Fetching content…