import { notFound } from "next/navigation" import { PublicHeader } from "@/components/public-header" import { SiteFooter } from "@/components/site-footer" import { markdownToHtml } from "@/lib/markdown" import { SITE_PAGE_META, SitePageKey, hasSitePageContent, isAllowedEmbedUrl, isSafeMediaUrl, } from "@/lib/site-pages" import { readSitePages } from "@/lib/site-pages.server" /** * Rendert eine der rechtlichen Seiten aus dem im Admin gepflegten Markdown. * * Serverseitig gerendert: Der Text steht ohne JavaScript im Dokument und ist * damit auch für Screenreader, Suchmaschinen und Archivierung erreichbar. * Ist nichts gepflegt, gibt es die Seite nicht – ein leeres Impressum wäre * irreführender als ein 404. */ export async function LegalPage({ page }: { page: SitePageKey }) { const pages = await readSitePages() const content = pages[page].trim() const meta = SITE_PAGE_META[page] // Auf der Gebärdensprach-Seite ist das Video der eigentliche Inhalt. Sie // erscheint deshalb auch dann, wenn nur eine Videoadresse hinterlegt ist – // ein zusätzlicher Text ist willkommen, aber keine Bedingung. const video = page === "signLanguage" && isSafeMediaUrl(pages.signLanguageVideo) ? pages.signLanguageVideo.trim() : "" if (!hasSitePageContent(pages, page)) notFound() const html = content ? await markdownToHtml(content) : "" const captions = isSafeMediaUrl(pages.signLanguageCaptions) ? pages.signLanguageCaptions.trim() : "" return (