import { CustomMDX } from "@/app/components/mdx-components"; import { Metadata } from "next"; import { generateEmbed } from "@/app/common/embed"; import { Title } from "@/app/components/title"; import { getDocContent, getDocsContent, getDocsDirectories, getMetadata } from "@/app/common/documentation"; import { Breadcrumb, BreadcrumbItem, BreadcrumbLink, BreadcrumbList, BreadcrumbPage, BreadcrumbSeparator, } from "@/app/components/ui/breadcrumb"; import { capitalizeFirstLetter } from "@/app/common/string-utils"; type DocumentationPageParams = { params: { slug?: string[]; }; }; export async function generateStaticParams() { let documentationPages = getDocsContent(); return documentationPages.map(page => ({ slug: [page.slug], })); } export async function generateMetadata({ params: { slug } }: DocumentationPageParams): Promise { const page = getDocContent(slug); // Fallback to page not found if (!page) { return generateEmbed({ title: "Page not found", description: "The documentation page was not found", }); } return generateEmbed({ title: `${page.title} - Documentation`, description: `${page.summary}\n\nClick to view this page`, }); } export default function Page({ params: { slug } }: DocumentationPageParams) { const page = getDocContent(slug); // Page was not found, show an error page if (!page) { return (

Not Found

The page you are looking for was not found.

); } const slugParts = page.slug.split("/"); return (
{slugParts.length > 1 && ( Home {slugParts.map((slug, index, array) => { const path = array.slice(0, index + 1).join("/"); return (
{capitalizeFirstLetter(slug)}
); })}
)} {/* The documentation page title and description */}
</div> {/* The content of the documentation page */} <div className="text-left w-full"> <CustomMDX source={page.content} /> </div> </div> ); }