import {createRelativeLink} from 'fumadocs-ui/mdx'; import {DocsBody, DocsDescription, DocsPage, DocsTitle} from 'fumadocs-ui/page'; import {notFound} from 'next/navigation'; import {source} from '@/lib/source'; import {getMDXComponents} from '@/mdx-components'; import {LLMCopyButton, ViewOptions} from '@/components/page-actions'; export const dynamic = 'force-dynamic'; export default async function Page(props: {params: Promise<{slug?: string[]}>}) { const params = await props.params; const page = source.getPage(params.slug); if (!page) notFound(); const MDXContent = page.data.body; return ( {page.data.title} {page.data.description}

Reading this with electronic eyes? Add{' '} .md {' '} for the Markdown cut.

); } export function generateStaticParams() { return source.generateParams(); } export async function generateMetadata(props: {params: Promise<{slug?: string[]}>}) { const params = await props.params; const page = source.getPage(params.slug); if (!page) notFound(); const ogUrl = new URL('https://docs.useplunk.com/api/og'); ogUrl.searchParams.set('title', page.data.title); if (page.data.description) { ogUrl.searchParams.set('description', page.data.description); } return { title: page.data.title, description: page.data.description, alternates: { types: { 'text/markdown': `${page.url}.md`, }, }, openGraph: { images: [{url: ogUrl.toString(), width: 1200, height: 630}], }, twitter: { card: 'summary_large_image', images: [ogUrl.toString()], }, }; }