Endgame Viable
A Dynamic Blogroll
Tom 625 words
Contents
A couple of quick health updates: 1) My brain MRI came back without anything unusual, 2) This infusion cycle has been going better than usual, 3) I still can’t bend my right thumb, but I got a referral to a hand specialist.
Now on to the topic du jour.
A New Blogroll
I’ve been meaning to add a dynamic blogroll to my static Hugo site for years.
Yesterday I finally started researching the nitty-gritty details of all the JavaScript and CSS I’d need and … and …
Ha, just kidding. I mean, can you imagine?
While I was sitting in a chair yesterday morning at the infusion center getting my regular IV fluids for this cycle, I started chatting with Gemini on my phone to get some ideas for how to actually implement a Javascript blogroll. It started out as a Lambda serverless function and an S3 bucket, but by the time I got home it had simplified considerably.
I sat down and explained what I wanted to Antigravity and I had a working prototype in no time.
It was easier than I thought, because I was able to use InoReader for the entirety of the data source. I knew it could output an XML feed for folders, but I didn’t realize it could also output a JSON feed for folders. JSON is very easy to read from JavaScript.
If I didn’t have InoReader, I would have gone ahead and implemented a simple feed reader in a Lambda function to be run every hour or so. But, no need.
The biggest difficulty was figuring out where to put a blogroll in my layout. I don’t have any sidebars, so that’s out. I don’t have a lot of vertical space for a big list, either.
I ended up making a kind of stock ticker of blog post titles that I can fit at the bottom of my posts, and in between the first and second posts on my home page.
It’s not perfect, of course, but then they never are. InoReader doesn’t provide the name of the blog that created the post, only the author and the post title. So I can’t really cite the blog name, only the domain name.
I may yet build my own feed reader in a Lambda function just to fix that one issue.
For now, I set it to use my Blaugust 2026 folder as the data source.
Anyway, I hope it’s useful for someone. It’s more for everyone else than it is for me.
Other Changes
While I was tinkering with the blog, I did some other things.
I got rid of the “Related Posts” section at the bottom of posts, because I never liked it. Whatever algorithm Hugo used never came up with decent posts, and I never clicked on them. (Typically the things that get priority on my site are the things that I personally use.)
And for fans of industry-wide standards, I added Schema.org’s LSON-LD metadata to the blog, too.
And for all you IndieWeb enthusiasts out there, I added that h-card and h-entry nonsense … I mean, carefully thought-out schema … to the pages. (I personally think it’s quite silly to assign semantic meaning to css classes when there’s HTML5, but whatever, it’s no skin off my site generator.)
However, the h-cards are entirely useless because there’s a maze of additional things you have to setup before IndieWeb tools can actually consume your site, including IndieAuth endpoints and Microsub endpoints. Neither of which can be done natively on a static site, so you have to farm it out to some third-party authority you’ve never heard of, and it’s not worth the effort for roughly 7 readers.
Leave a Comment
This is a homegrown DIY comment system I've been working on. It works but technically you're beta testing it. Good luck. Go here to enter a comment on this post without Javascript.