Webmentions are the way people have conversations on the Indieweb, but integrating them - or, indeed, any kind of dynamic content - into a static site can be a little tricky. Luckily, many people have run into this issue before and so there wasn't much for me to do but steal.
It turns out other people have done most of the work for displaying webmentions in #Eleventy
An #indieweb aware approach to unfurling URLs in @eleven_ty
As a participant in the IndieWeb, I publish my share of likes, replies, reposts, and bookmarks. These posts all have one thing in common - they refer to another, external URL and only make sense in the context of that URL.
This being the case, it's nice to give my readers (and myself) some sense of what I'm referring to when I post that content. The process of scraping metadata from URLs for display purposes is called "URL unfurling" and implementing it efficiently on an Eleventy based website is not entirely trivial, especially when you're trying to save your Netlify build minutes, so it's worth sharing what I've learned.
As you probably already know, Eleventy is a static site generator. It generates output HTML files from input template files. In the simplest case, one HTML file is generated for each (non-layout) input template.
Classifying your #indieweb posts with @eleven_ty
As mentioned previously, I recently converted my website over to Eleventy. I'm an IndieWeb participant and, moreover, my website is fairly complex so I ended up writing (or, in some cases, pilfering) a fair amount of code to make it all work together in an acceptable manner. I thought I would document the process via a series of blog posts in case anyone else finds it of value.
Making the switch from Pelican to @eleven_ty
After roughly five years, I've finally decided to switch my blog over from Pelican to Eleventy. I'd be lying if I said that I wasn't at least partially swayed by the fact that all the cool kids seemed to be doing it but, with that in mind, I do have some (hopefully) legitimate reasons for making the switch.