import Link from 'next/link'; import Image from 'next/image'; import { notFound } from 'next/navigation'; import type { Metadata } from 'next'; import { allPages } from 'contentlayer2/generated'; import { getPageBySlug } from '@/lib/posts'; import { siteConfig } from '@/lib/config'; import { ReadingProgress } from '@/components/reading-progress'; import { PostLayout } from '@/components/post-layout'; import { ScrollReveal } from '@/components/scroll-reveal'; import { SectionDivider } from '@/components/section-divider'; export function generateStaticParams() { return allPages.map((page) => ({ slug: page.slug || page.flattenedPath })); } interface Props { params: { slug: string }; } export function generateMetadata({ params }: Props): Metadata { const slug = params.slug; const page = getPageBySlug(slug); if (!page) return {}; return { title: page.title, description: page.description || page.title }; } export default function StaticPage({ params }: Props) { const slug = params.slug; const page = getPageBySlug(slug); if (!page) return notFound(); const hasToc = /
{page.published_at && (

{new Date(page.published_at).toLocaleDateString( siteConfig.defaultLocale )}

)}

{page.title}

{page.tags && (
{page.tags.map((t) => ( #{t} ))}
)}
{page.feature_image && (
{page.title}
)}
); }