import { notFound } from 'next/navigation' import { CustomMDX } from '@/app/components/mdx' import { formatDate, getPosts } from '@/app/utils' import { Avatar, Button, Flex, Heading, Text } from '@/once-ui/components' import { person, baseURL } from '@/app/resources' interface BlogParams { params: { slug: string; }; } export async function generateStaticParams() { let posts = getPosts(['src', 'app', 'blog', 'posts']) return posts.map((post) => ({ slug: post.slug, })) } export function generateMetadata({ params }: BlogParams) { let post = getPosts(['src', 'app', 'blog', 'posts']).find((post) => post.slug === params.slug) if (!post) { return } let { title, publishedAt: publishedTime, summary: description, image, } = post.metadata; let ogImage = image ? `https://${baseURL}${image}` : `https://${baseURL}/og?title=${title}`; return { title, description, openGraph: { title, description, type: 'article', publishedTime, url: `https://${baseURL}/blog/${post.slug}`, images: [ { url: ogImage, }, ], }, twitter: { card: 'summary_large_image', title, description, images: [ogImage], }, } } export default function Blog({ params }: BlogParams) { let post = getPosts(['src', 'app', 'blog', 'posts']).find((post) => post.slug === params.slug) if (!post) { notFound() } return (