From e1ec4a112907f4aebad56b2b388eceb3969e6e88 Mon Sep 17 00:00:00 2001 From: Pinapelz Date: Fri, 12 Jun 2026 18:30:42 -0700 Subject: unify microblog --- src/pages/index.astro | 24 ++++++++++++++++++ src/pages/micro/[...slug].astro | 20 +++++++++++++++ src/pages/micro/index.astro | 54 +++++++++++++++++++++++++++++++++++++++++ src/pages/rss.xml.js | 14 ++++++++--- 4 files changed, 108 insertions(+), 4 deletions(-) create mode 100644 src/pages/micro/[...slug].astro create mode 100644 src/pages/micro/index.astro (limited to 'src/pages') diff --git a/src/pages/index.astro b/src/pages/index.astro index c2129e0..3886d8f 100644 --- a/src/pages/index.astro +++ b/src/pages/index.astro @@ -9,6 +9,11 @@ import FormattedDate from "../components/FormattedDate.astro"; const posts = (await getCollection("blog")).sort( (a, b) => a.data.pubDate.valueOf() - b.data.pubDate.valueOf() ); + +const microposts = (await getCollection("micro")).sort( + (a, b) => a.data.pubDate.valueOf() - b.data.pubDate.valueOf() +); + --- @@ -50,6 +55,22 @@ const posts = (await getCollection("blog")).sort( } +

Recent MicroPosts

+
+ +

👋 Greetings, Adventurer

@@ -58,6 +79,9 @@ const posts = (await getCollection("blog")).sort( archive my thoughts and processes on various topics or projects. It'll pretty much just be whatever I feel like writing about, posts will be very infrequent so don't expect much.

+

+ Blog posts are regular long form writing about some technical concept, MicroPosts are all over the place and are usually quite unstructured. The RSS feed combines both of these. +

Check out the main site as well: pinapelz.com

diff --git a/src/pages/micro/[...slug].astro b/src/pages/micro/[...slug].astro new file mode 100644 index 0000000..0ad6f8b --- /dev/null +++ b/src/pages/micro/[...slug].astro @@ -0,0 +1,20 @@ +--- +import { CollectionEntry, getCollection } from 'astro:content'; +import BlogPost from '../../layouts/BlogPost.astro'; + +export async function getStaticPaths() { + const posts = await getCollection('micro'); + return posts.map((post) => ({ + params: { slug: post.slug }, + props: post, + })); +} +type Props = CollectionEntry<'micro'>; + +const post = Astro.props; +const { Content } = await post.render(); +--- + + + + diff --git a/src/pages/micro/index.astro b/src/pages/micro/index.astro new file mode 100644 index 0000000..7393216 --- /dev/null +++ b/src/pages/micro/index.astro @@ -0,0 +1,54 @@ +--- +import BaseHead from '../../components/BaseHead.astro'; +import Header from '../../components/Header.astro'; +import Footer from '../../components/Footer.astro'; +import { SITE_TITLE, SITE_DESCRIPTION } from '../../consts'; +import { getCollection } from 'astro:content'; +import FormattedDate from '../../components/FormattedDate.astro'; + +const posts = (await getCollection('micro')).sort( + (a, b) => a.data.pubDate.valueOf() - b.data.pubDate.valueOf() +); +--- + + + + + + + + +
+
+
+ +
+
+