Voeg CMS voor de Publieke Website toe (overgenomen van rikx-org)

Pagina-editor, hoofdmenu, SEO en media onder Publieke Website → Pagina's
(/website), los van het CMS in rikx-org: eigen tabellen in de beheerdatabase.
Blokken (hero, tekstblok, testimonial, voordelenlijst, call-to-action) met
Quill, NL/EN/DE met terugval op NL, en afbeeldingsupload naar MEDIA_DIR met
een openbare /media-route (CSP-sandbox).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
2026-10-08 15:27:12 +02:00
parent f9e4a1aa5d
commit 9be692974e
19 changed files with 2505 additions and 87 deletions
+24
View File
@@ -0,0 +1,24 @@
import { requireAdmin } from "../../lib/auth";
import { getAvailabilityMap, listPages } from "../../lib/cms";
import { AppHeader } from "../AppHeader";
import { PagesOverview } from "./PagesOverview";
export default async function WebsitePage() {
const session = await requireAdmin();
const availability = getAvailabilityMap();
const pages = listPages().map((p) => ({ ...p, langs: availability[p.slug] ?? [] }));
return (
<div className="min-h-screen bg-zinc-50 dark:bg-zinc-950">
<AppHeader email={session.email} active="website" />
<main className="max-w-5xl mx-auto px-4 sm:px-6 py-10">
<h1 className="text-lg font-semibold text-zinc-900 dark:text-zinc-100">Pagina&apos;s ({pages.length})</h1>
<p className="text-sm text-zinc-500 mt-1 mb-6">
Beheer de inhoud, het hoofdmenu en de SEO-instellingen van de pagina&apos;s van de publieke website.
</p>
<PagesOverview pages={pages} />
</main>
</div>
);
}