#!/usr/bin/env node const fs = require('fs') const path = require('path') const walk = require('walk-sync') const stripHtmlComments = require('strip-html-comments') const languages = require('../../lib/languages') const frontmatter = require('../../lib/read-frontmatter') const addRedirectToFrontmatter = require('../../lib/redirects/add-redirect-to-frontmatter') const relativeRefRegex = /\/[a-zA-Z0-9-]+/g const linkString = /{% [^}]*?link.*? \/(.*?) ?%}/m const linksArray = new RegExp(linkString.source, 'gm') const walkOpts = { includeBasePath: true, directories: false } // We only want category TOC files, not product TOCs. const categoryFileRegex = /content\/[^/]+?\/[^/]+?\/index.md/ const fullDirectoryPaths = Object.values(languages).map(langObj => path.join(process.cwd(), langObj.dir, 'content')) const categoryIndexFiles = fullDirectoryPaths.map(fullDirectoryPath => walk(fullDirectoryPath, walkOpts)).flat() .filter(file => categoryFileRegex.test(file)) categoryIndexFiles.forEach(categoryIndexFile => { let categoryIndexContent = fs.readFileSync(categoryIndexFile, 'utf8') if (categoryIndexFile.endsWith('github/getting-started-with-github/index.md')) { categoryIndexContent = stripHtmlComments(categoryIndexContent.replace(/\n