Files
joeac.net/website/src/pages/blog/[...slug].astro
T

29 lines
849 B
Plaintext

---
import { type CollectionEntry, getCollection, render } from 'astro:content';
import BlogPost from '../../layouts/BlogPost.astro';
import { renderGemtextToHtml } from '../../renderGemtextToHtml';
export async function getStaticPaths() {
const posts = await getCollection('blog');
return posts.map((post) => ({
params: { slug: post.id },
props: post,
}));
}
type Props = CollectionEntry<'blog'>;
const post = Astro.props;
const Content = post.filePath?.endsWith('.gmi')
? renderGemtextToHtml(post.body ?? '', post.data.title)
: (await render(post)).Content;
---
<BlogPost
title={post.data.title}
description={post.data.description}
pubDate={post.data.pubDate ?? new Date(post.id)}
updatedDate={post.data.updatedDate}
>
{ post.filePath?.endsWith('.gmi') ? <Fragment set:html={Content}></Fragment> : <Content />}
</BlogPost>