import { useParams, Link } from "react-router-dom"; import CodeSnippet from "../components/CodeSnippet"; import LinkWithIcon from "../components/LinkWithIcon"; import NotFoundPage from "./404Page"; interface PostFile { attributes: { title: string; date: string; cover?: string; }; markdown: string; ReactComponent: React.FC; } const posts = import.meta.glob("../blog/*.md", { eager: true, }) as Record; export default function Post() { const { slug } = useParams<{ slug: string }>(); const match = Object.entries(posts).find(([path]) => path.endsWith(`${slug}.md`) ); if (!match) return ; const { attributes: meta, ReactComponent: Content } = match[1]; return (
← Back {meta.cover && ( {meta.title} )}

{meta.title}

{new Date(meta.date).toLocaleDateString("de-DE")}

{/* The Markdown, already a React component */} ); }, a: LinkWithIcon, }} />
); }