import { getPageImage, getPageMarkdown, source } from '@/lib/source'; import { DocsBody, DocsDescription, DocsPage, DocsTitle } from 'fumadocs-ui/layouts/docs/page'; import { notFound } from 'next/navigation'; import { getMDXComponents } from '@/mdx-components'; import type { Metadata } from 'next'; import { createRelativeLink } from 'fumadocs-ui/mdx'; import { LLMCopyButton, ViewOptions } from '@/components/ai/page-actions'; export default async function Page(props: PageProps<'/[...slug]'>) { const params = await props.params; const page = source.getPage(params.slug); if (!page) notFound(); const MDX = page.data.body; const markdownUrl = getPageMarkdown(page).url; return ( {page.data.title} {page.data.description}
); } export async function generateStaticParams() { return source.generateParams(); } export async function generateMetadata(props: PageProps<'/[...slug]'>): Promise { const params = await props.params; const page = source.getPage(params.slug); if (!page) notFound(); const url = page.url.endsWith('/') ? page.url : `${page.url}/`; return { title: page.data.title, description: page.data.description, alternates: { canonical: url }, openGraph: { url, title: page.data.title, description: page.data.description, images: getPageImage(page).url, }, }; }