--- import { existsSync, readdirSync } from "node:fs"; import path from "node:path"; const contentDir = "src/content/docs"; function findMdxFiles(dir: string): string[] { if (!existsSync(dir)) return []; const files: string[] = []; for (const entry of readdirSync(dir, { withFileTypes: true })) { if (entry.name.startsWith(".") || entry.name.startsWith("_")) continue; const full = path.join(dir, entry.name); if (entry.isDirectory()) files.push(...findMdxFiles(full)); else if (entry.name.endsWith(".mdx")) files.push(full); } return files; } const slugs = [ "index", "jisseki", "policy", "support", "contact", "whisper-to-ai-moji-okoshi", "koubunsyo-kanri", "ijime-judai-jitai", "fukushi-shisetsu-gyakutai", "aiki-kouen", "joutyo-koteikyu", "kajo-seigen-kanwa", "saresio-kaihatu", "vaccine-kyuusai-tekiseika", "dislexia-taiou", "ippan-situmon", // Auto-discover ippan-situmon sub-pages ...findMdxFiles(path.join(contentDir, "ippan-situmon")) .map((f) => f .replace(/\\/g, "/") .replace(contentDir + "/", "") .replace(/\.mdx$/, "") .replace(/\/index$/, "") .replace(/\//g, "--") ) .filter((s) => s !== "ippan-situmon"), ]; --- OGP 画像一覧

OGP 画像一覧({slugs.length} 枚)

{slugs.map((slug) => ( {slug} {slug}.png ))}