23 lines
906 B
JavaScript
23 lines
906 B
JavaScript
import fs from 'node:fs';
|
|
import path from 'node:path';
|
|
import { fileURLToPath } from 'node:url';
|
|
|
|
const __dirname = path.dirname(fileURLToPath(import.meta.url));
|
|
const ROOT = path.resolve(__dirname, '..');
|
|
const DIST = path.join(ROOT, 'dist');
|
|
|
|
const posts = JSON.parse(fs.readFileSync(path.join(ROOT, 'src/content/posts.json'), 'utf8'));
|
|
const pages = JSON.parse(fs.readFileSync(path.join(ROOT, 'src/content/pages.json'), 'utf8'));
|
|
|
|
const cats = new Set();
|
|
for (const p of posts) (p.categorySlugs || []).forEach((s) => cats.add(s));
|
|
|
|
const routes = ['/', '/news/'];
|
|
for (const p of posts) routes.push(`/${p.slug}/`);
|
|
for (const p of pages) routes.push(`/${p.slug}/`);
|
|
for (const c of cats) routes.push(`/cat/${c}/`);
|
|
|
|
fs.mkdirSync(DIST, { recursive: true });
|
|
fs.writeFileSync(path.join(DIST, 'routes.json'), JSON.stringify(routes, null, 2));
|
|
console.log(`routes: ${routes.length} → dist/routes.json`);
|