import { getDocumentation } from "@/app/common/documentation"; import { CustomMDX } from "@/app/components/mdx-components"; import { Metadata } from "next"; import { generateEmbed } from "@/app/common/embed"; type DocumentationPageParams = { params: { slug?: string[]; }; }; export async function generateStaticParams() { let documentationPages = getDocumentation(); return documentationPages.map(page => ({ slug: [page.slug], })); } export async function generateMetadata({ params: { slug } }: DocumentationPageParams): Promise { const pageSlug = slug?.join("/"); const documentationPages = getDocumentation(); let page = documentationPages.find(page => page.slug === pageSlug); // Use the landing page on "/documentation" if (!page && !slug) { page = documentationPages.find(page => page.slug === "landing"); } // Fallback to page not found if (!page) { return generateEmbed({ title: "Page not found", description: "The documentation page was not found", }); } return generateEmbed({ title: `${page.metadata.title} - Documentation`, description: `${page.metadata.description}\n\nClick to view this page`, }); } export default function Page({ params: { slug } }: DocumentationPageParams) { const pageSlug = slug?.join("/"); const documentationPages = getDocumentation(); let page = documentationPages.find(page => page.slug === pageSlug); // Use the landing page on "/documentation" if (!page && !slug) { page = documentationPages.find(page => page.slug === "landing"); } // Page was not found, show an error page if (!page) { return (

Not Found

The page you are looking for was not found.

); } return (
{/* The documentation page title and description */}
{page.metadata.title &&

{page.metadata.title}

} {page.metadata.description &&

{page.metadata.description}

}
{/* The content of the documentation page */}
); }