diff --git a/website/src/pages/microlog/[...slug].astro b/website/src/pages/microlog/[...slug].astro new file mode 100644 index 0000000..69c94b0 --- /dev/null +++ b/website/src/pages/microlog/[...slug].astro @@ -0,0 +1,26 @@ +--- +import { type CollectionEntry, getCollection, render } from 'astro:content'; +import MicrologPost from '../../layouts/MicrologPost.astro'; +import { renderGemtextToHtml } from '../../renderGemtextToHtml'; + +export async function getStaticPaths() { + const posts = await getCollection('microlog'); + return posts.map((post) => ({ + params: { slug: post.id }, + props: post, + })); +} +type Props = CollectionEntry<'microlog'>; + +const { id: slug, body } = Astro.props; +const pubDateStr = slug.replaceAll(/\.[0-9]+/g, ''); +const pubDate = new Date(pubDateStr); +if (isNaN(pubDate.valueOf())) { + throw new Error(`Could not construct a valid publication date for microlog post: ${slug}`); +} +const Content = renderGemtextToHtml(body ?? '', pubDateStr); +--- + + + +