Eleventy and Me
Like most folks roughly my age who spent their youth and adolescence as "computer people", my personal website has gone through multiple generations of technology, starting with hand-coded HTML, moving to WordPress, Drupal, then Backdrop once Drupal jumped the shark and went all Enterprise PHP. It's been a few years since I've done much with CMS-based websites that I've had to manage myself, going either for centrally-run infrastructure at work or static site generators.
The first static-site generator I was introduced to, and the default (if you ask GitHub Pages), is Jekyll. I have struggled mightily with Jekyll -- to the point where you'll soon be able to formally cite me on that in a peer-reviewed article! But between the number of pre-built themes available for Jekyll (which is a big deal, if you loathe CSS as much as I do), and DH-oriented systems built on top of Jekyll (like Alex Gil's Ed and his and Marii Nyröp's Wax), it didn't seem worth fighting it. After all, I believe in reusability, and contributing back to technology communities, especially when it's part of a field that's relatively small within a technology's user base -- that's why I wrote Drupal for Humanists, so DH people could see themselves (and not e-commerce) in the pedagogical materials they were using. But I can't say I've ever liked Jekyll, even when I was able to get it to work. I struggled to get a basic hang of Liquid, and the layouts-and-includes(-with-includes) situation felt like a labrynth where I might become a minotaur's lunch at any moment. And don't get me started with Ruby, which I'm pretty sure just hates me because every third time I tried to serve a site locally, everything inexplicably broke.
It was a Friday night in mid-December when all I wanted to do was rebuild my website, and instead found myself fighting with Ruby, when I complained about this state of affairs on Twitter. And I got some thought-provoking advice about other options. Non-Jekyll options. Options that wouldn't make me placate Ruby. When I needed a break from ragefully Googling error messages I started exploring some of these possibilities, but after a couple of hours, I had Ruby working again and I figured, "Why mess with what works (even if only for the moment)?" I really liked the Minimal Mistakes theme I had picked out, and I just wanted to get on with things, not start over from scratch.
I spent the first week of the holiday break carefully hand-migrating most of my old content, choosing just the right thumbnail image for some old projects and the Project Bamboo data write-ups, and on Christmas Eve it was all ready to go. I was at a cabin where internet was hit-or-miss (mostly miss), so I resolved to actually publish it when I got home. Before bed, I cleaned up some files from a previous iteration of the site, and emptied the trash on my lapotp. Another project wrapped up!
The next day, I wanted to fiddle with something on my CV, so I fired up the new site locally and... the earlier iteration appeared instead. Somehow, in some way I still do not understand, I managed to hard-delete the new website I'd spent a week making. (And because I'm less good at data management with my own stuff, I didn't have any almost-done versions committed to the repo or anything salvagable.) Data recovery tools, such as I could find, did not help. It was gone.
I try to not give in to superstition, but accidentally deleting my Jekyll site on Chrsitmas Eve sure felt like an omen. Was this a message from the Ghost of Christmas Futures that if I continue down this path, I'll be spending more Christmases cursing Ruby? I wasn't going to take the chance. Inertia overcome, it was time for something different.
And what I found, thanks to Cassey Lottman, was Eleventy. Even the website, whimsically featuring a cluster of possums floating along the screen attached to a red balloon, spoke to me. That said, there was a lot of jargon to figure out at first; I've never done much with JavaScript, and honestly, I find it more than a little nerve-wracking. Cassey kindly put together this Just Enough JavaScript for Eleventy to help me over that hurdle, and once I had my bearings, I realized that even though there's not a lot of pre-built themes / template sites for Eleventy (at least, not ones I was able to get to work), you can also work from HTML templates, and Eleventy can work with Liquid templates, so with a non-insurmountable number of tweaks, you can adapt a Jekyll theme to Eleventy. And that's what I ended up doing, with some help from this Moving from Jekyll to Eleventy blog post by Alex Pearce, taking the things I wanted most from the Minimal Mistakes theme I'd been using in Jekyll. One caveat: SASS doesn't work out-of-the-box, and I needed some help from Philip Allfrey to get the site-generating code to process the right set of SASS files, but that's a topic for another blog post.
Not everything works quite yet, and I've got some things I'd like to explore further (like using a data file to dynamically generate a gallery of spiffy things I've sewn), but with some debugging help from Cassey I've now managed to build two Eleventy sites and get them running on GitHub. And I have enjoyed doing it, even the debugging and fiddly bits. The Eleventy blog posts and documentation and issues feel like a community of people trying to figure out a way to do things that centers flexibility and choice -- honestly, to a greater extent than I was always comfortable with, as someone who lacked the knowledge to have preferences or make informed choices. But there was less of the "X is just like Y, next topic!" (where X and Y are things I knew zero about) vibe I often got from trying to make sense of Jekyll.
Eleventy and, more recently, Obsidian for note-taking (thanks to Shawn Graham), have gotten me thinking about the role of enjoyment in selecting tools and platforms. Despite being a general advocate for more fun in DH, I had never considered fun as a worthwhile consideration when choosing tools and platforms. Do you think about fun much when you choose a washing machine? Factors like cost, effectiveness, use of resources, compatibility with your preferred soap all come to mind, but not fun. Voyant is a rare exception of a tool that puts fun front and center, but these days, I'm more likely to use AntConc to get the data I'm looking for because of its efficiency with giant corpora. I'm wary of fun as an influencing factor, after seeing too many years (decades, now) of CS undergrads building websites using the latest hot (fun) framework, resulting in something utterly unmaintainable in the medium-term, let alone the long-term. Those reservations leave me reluctant to sub out Jekyll in projects with scholar-collaborators at work, at least for the time being. But my own website and notetaking practices feel like the ideal place to embrace enjoyment as a guiding principle in tool selection, since no one but me has to deal with any unintended consequences. How much of it will make its way into collaborative projects down the road remains to be seen.
In the meantime, I've got a handful of Eleventy tips and tricks and explainers I hope to put together in the next few months for anyone who wants to join me on this path.