import type { BlogPost } from "./content"; export type LegalDocumentSlug = "privacy" | "terms" | "cookies"; export type LegalDocumentSection = { heading: string; paragraphs: string[]; }; export type LegalDocumentMessages = { banner: { title: string; description: string; author: string; date: string; }; updated: string; intro: string[]; sections: LegalDocumentSection[]; }; const PATH_BY_SLUG: Record = { privacy: "/privacy", terms: "/terms", cookies: "/cookies", }; export function legalPathForSlug(slug: LegalDocumentSlug): string { return PATH_BY_SLUG[slug]; } /** * Builds a {@link BlogPost}-shaped object so legal pages can reuse * `ContentBanner` (guide variant) without a markdown file. */ export function buildLegalSyntheticPost( slug: LegalDocumentSlug, page: LegalDocumentMessages, ): BlogPost { return { slug: `__legal__:${slug}`, frontmatter: { title: page.banner.title, description: page.banner.description, author: page.banner.author, date: page.banner.date, }, content: "", htmlContent: "", filePath: `messages/en/pages/${slug}.json`, lastModified: new Date(page.banner.date), }; }