-
{fileList.map((file) => (
- {file.title} {formatSize(file.size)} ))}
import fs from "fs"; import path from "path"; import Link from "next/link"; function formatTitle(filename: string) { return filename .replace(/\.RTF$/i, "") .replace(/-/g, " ") .replace(/\b\w/g, (c) => c.toUpperCase()); } function formatSize(bytes: number) { if (bytes < 1024) return `${bytes} B`; if (bytes < 1024 * 1024) return `${(bytes / 1024).toFixed(1)} KB`; return `${(bytes / (1024 * 1024)).toFixed(1)} MB`; } export default function Home() { const rtfDir = path.join(process.cwd(), "public/rtfs"); const files = fs.readdirSync(rtfDir).filter((f) => /\.rtf$/i.test(f)); const fileList = files.map((f) => { const stat = fs.statSync(path.join(rtfDir, f)); return { filename: f, slug: f.replace(/\.RTF$/i, ""), title: formatTitle(f), size: stat.size, }; }); fileList.sort((a, b) => a.title.localeCompare(b.title)); return (
{files.length} documents available