import { metadata } from '@/app/metadata' import { ImageWrapper } from '@/components/common/ImageWrapper' import { ShareLinks } from '@/components/common/ShareLinks' import { TableOfContents } from '@/components/common/TableOfContents' import { getAllPostSlugs, getPostBySlug } from '@/lib/posts' import type { Metadata } from 'next' import Link from 'next/link' export async function generateStaticParams() { return getAllPostSlugs().map((slug) => ({ slug })) } export const dynamicParams = false export async function generateMetadata({ params, }: { params: Promise<{ slug: string }> }): Promise { const { slug } = await params const { meta } = await getPostBySlug(slug) return { title: `${meta.title} | ${metadata.title!.toString()}`, description: meta.description } } export default async function Post({ params }: { params: Promise<{ slug: string }> }) { const { slug } = await params const { meta, content, tableOfContents } = await getPostBySlug(slug) return (
{meta.category && ( {meta.category} )}

{meta.title}

Posted
· {meta.updated && ( <>
Updated
· )} {meta.readingTimeText}

{meta.description}

{meta.coverImage && }
{content}
{meta.tags && (

Tags

{meta.tags.map((tag) => ( {tag} ))}
)}
) }