My personal website.
1---
2import { getCollection } from "astro:content";
3import Base from "/components/Base.astro";
4import SinglePage from "/layouts/SinglePage.astro";
5import BlogPost from "/components/BlogPost.astro";
6
7const post = await getCollection("blog").then((x) =>
8 x.sort(
9 (a, b) =>
10 (b.data.pub as unknown as number) - (a.data.pub as unknown as number),
11 ),
12);
13---
14
15<Base
16 title="BLOG"
17 graph={{
18 description: "Blog posts and such.",
19 }}
20>
21 <SinglePage>
22 <h1 slot="header">Blog posts</h1>
23 {
24 post.map((post) => (
25 <BlogPost
26 url={`/blog/${post.id}`}
27 title={post.data.title}
28 time={`${post.data.pub.getFullYear()}-${post.data.pub.getMonth() + 1}-${post.data.pub.getDate()}`}
29 />
30 ))
31 }
32 </SinglePage>
33</Base>