Files
DAO_DE_JING/.vitepress/rewrites.mts
T
dekun 4a0851628a Fix section 404 by rewriting README pages to index.html
Generate VitePress rewrites for subdirectory README.md and simplify Express page resolution.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-05 17:01:03 +08:00

47 lines
1.2 KiB
TypeScript

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<string, string> {
const rewrites: Record<string, string> = {}
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
}