important
Whoops, I forgot to update the RSS feed to work with the new content collection system. So I did that.
…and I also updated it to now
- include journal entires, and
- include both the published date and the updated date (since apparently
date on the library I use is put into the updated field
on the Atom feed because OF COURSE IT DOES).
So that’s fun! Hopefully I didn’t break your feeds too bad. I also hope that sending the rendered HTML of each entry actually works…
we’ll see! 0:3
A day later and I did the tedious part: converting the big journal page into a series of individual .mdx files in an Astro content
collection. That was… fun.
It turns out that Astro slipped an overhaul of their content collection system right under my nose when I wasn’t looking. In their
5.0 update, opens in a new tab they upgraded the system into a full-fledged “content layer”
( heyyyyyy opens in a new tab ) that supports processing all sorts of #content and #data from literally anywhere you want.
Part of this update was literally giving you the freedom to process the data however you want, replacing the weird type attribute
with a new loader attribute that you can slot either the two built-in functions (representing the two old type’s) ooooooor your
own bespoke function for whatever content you want to work with. It’s actually really cool… and slightly breaking compared to the old
system. Whoops. So, just to be on the safe side for the future, I migrated from the old system to the new system.
After that, it was pretty simple to get the new journal set up… it was just really tedious to make all the new individual files and copy
all of the content over. Honestly, it kinda made me wish I had a generative AI agent handy, but I would rather move slowly and ensure that
everything works right than move fast and break everything with AI slop. I also decided to make the now and todo sections of the journal
their own files for later use with Micropub opens in a new tab . This way, I can (eventually) not only make new journal entries
outside a code editor, but I can also update those journal entries and the now & todo sections outside a code editor!!! How sick would
that be???
Now that I’ve done all that, though… look!!! Pages!!!!! It isn’t just one giant page anymore!!!!!! Currently, I’ve got it set to display
10 entries on each page, but I might tweak that later. I’ve also got it set up to only display the now and todo sections
on the first page, and only display the really old entries section on the last page. Pretty slick, huh?
My main worry when implementing this was that all of the async stuff I had to add to get this to work would mean excess loading, but I think
I can solve that by making this page static instead of server-rendered (the pages are precompiled with all of their content, so
when the browser requests the page, all the server needs to do is hand the browser that precompiled page instead of having to go and fetch
all of the content it needs first). All of the blog posts are handled this way, so I figured it would be worth it to do it for the journal
page as well.
Also, while I haven’t started implementing it yet (I’m waiting for the weekend to do that), I have started looking at the
Micropub specification… opens in a new tab and it seems like a really good “baby’s first protocol implementation project”.
Everything is very straightforward & well laid-out, and both the h-entry and h-cite microformats seem great for what I am personally
looking for. The Micropub protocol itself seems pretty loose when it comes to what you can do
through it: as long as the client and the server agree, you can exchange whatever data you want. So, for instance, I can staple a
note field to my h-cite entry for use with the sharefeed and hope none of the
IndieWeb opens in a new tab people get mad at me for sacrilege. Alternatively, I could make the in-reply-to field in my
h-entry its own h-cite object so I use the same base microformat for both journal entires and sharefeed posts, but I think that might
be a bit too tryhard… I’ll figure it out once I get a base implementation going for journal entries.
Finally, I made some other miscelaneous changes lately. For example, I got rid of that stupid external link icon and replaced it with a more
subtle change: all links (within markdown, at least) now have underlines, and they are dashed if they are internal links and dotted if they
are external. Will anyone notice this? Probably not. Do I need a better solution? Yes. But that’s for later me.
also here’s a cool raggae song opens in a new tab kbyyyyeeeeeeee