import fs from 'node:fs' import path from 'node:path' import { fileURLToPath } from 'node:url' const root = path.resolve(path.dirname(fileURLToPath(import.meta.url)), '..') const EXCLUDE_DIRS = new Set([ 'node_modules', '.vitepress', 'server', 'scripts', 'assets', 'images', '.git', '金瓶梅', '黄帝内经', '健康学习到150岁 - 人体系统调优不完全指南', '梅花', ]) export function generateRewrites(): Record { const rewrites: Record = {} function walk(dir: string, relativeDir: string) { for (const entry of fs.readdirSync(dir, { withFileTypes: true })) { if (entry.isDirectory()) { if (EXCLUDE_DIRS.has(entry.name)) continue walk(path.join(dir, entry.name), path.join(relativeDir, entry.name)) continue } if (!/readme\.md$/i.test(entry.name)) continue const from = path.join(relativeDir, entry.name).replace(/\\/g, '/') const to = from.replace(/README\.md$/i, 'index.md') rewrites[from] = to } } for (const entry of fs.readdirSync(root, { withFileTypes: true })) { if (!entry.isDirectory() || EXCLUDE_DIRS.has(entry.name)) continue walk(path.join(root, entry.name), entry.name) } return rewrites }