import fs from "node:fs"; import path from "node:path"; export const repoRoot = process.cwd(); export const legacyHtmlRoot = path.join(repoRoot, "archive-source"); export const migratedHtmlPages = new Set([ "2013-sunday-service-archive.html", "2014-sunday-services.html", "2015-sunday-services-archive.html", "2016-sunday-service-archive.html", "2017-sunday-service-archive.html", "2018-sunday-service-archive.html", "about.html", "about-us-organizations.html", "archive-sunday-services-2013.html", "archive-sunday-services-2014.html", "archive-sunday-services-2015.html", "archive-sunday-services-2016.html", "archive-sunday-services-2017.html", "archive-sunday-services-2018.html", "contact.html", "events.html", "index.html", "register.html", "services.html", "speeches/index.html", "the-founders.html", "videos.html", ]); const migratedHtmlPrefixes = [ "blog/categories/", "blog/tags/", "speeches/categories/", "speeches/rev-dr-sun-myung-moon/", ]; export function walkHtmlFiles(dir = legacyHtmlRoot): string[] { return fs.readdirSync(dir, { withFileTypes: true }).flatMap((entry) => { const fullPath = path.join(dir, entry.name); if (entry.isDirectory()) { return walkHtmlFiles(fullPath); } return entry.isFile() && entry.name.endsWith(".html") ? [fullPath] : []; }); } export function relativeWebsitePath(filePath: string): string { return path.relative(legacyHtmlRoot, filePath).split(path.sep).join("/"); } export function routeFromRelativePath(relativePath: string): string { if (relativePath === "index.html") { return ""; } return relativePath; } export function isMigratedHtmlPage(relativePath: string): boolean { return migratedHtmlPages.has(relativePath) || migratedHtmlPrefixes.some((prefix) => relativePath.startsWith(prefix)); } export function sourcePathFromRoute(route = ""): string { const relativePath = route === "" ? "index.html" : route.endsWith(".html") ? route : `${route}/index.html`; return path.join(legacyHtmlRoot, relativePath); }