diff options
| author | Joe Carstairs <me@joeac.net> | 2026-04-25 13:10:06 +0100 |
|---|---|---|
| committer | Joe Carstairs <me@joeac.net> | 2026-04-25 13:10:06 +0100 |
| commit | f17061b4cb81d67234f504af6d4220792beecb49 (patch) | |
| tree | 7afd09403b22c249a18bc3716bba1dcafee7c010 /website/src/pages | |
| parent | 00effae167e3ba853ae0284dc7f49a283b27f08a (diff) | |
adds microlog posts to website
Diffstat (limited to 'website/src/pages')
| -rw-r--r-- | website/src/pages/microlog/[...slug].astro | 26 |
1 files changed, 26 insertions, 0 deletions
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); +--- + +<MicrologPost pubDate={pubDate} title={pubDateStr}> + <Fragment set:html={Content}></Fragment> +</MicrologPost> |
