Two Wrongs

Long Hiatus: Emacs Upgrades

Long Hiatus: Emacs Upgrades


I wrote before about how I started publishing these articles using Emacs. In that article, I was (rightfully) extatic about the benefits of doing so.11 Over the years, I’ve also received plenty of questions for details on how I’m doing it. The reason I haven’t published anything about the process is that it’s really hacky. It’s at least 90 % the default publishing mechanism in Org, and then some custom hacks around generating the index page and such.

Unfortunately, at this point, I’ve had time to taste some of the drawbacks as well. There have been four major problems:

  1. I don’t fully understand how Org publishing works. I think it’s well designed, but I honestly don’t know. I also think the user base is kind of small, so you find some parts that are really well polished, and then others that seem like an afterthought.

    In the end, my lack of understanding means that sometimes I find it… doing things that I didn’t know I asked for. But on the other hand, I haven’t taken the time to study it either, so it’s not like I can blame anyone else for this.

  2. Parts of the publishing functionality I use in very hacky ways. This means sometimes I’m accidentally relying on quirks I shouldn’t. When those quirks get fixed, my publishing setup breaks.
  3. Tying my publishing configuration to my local Emacs editing configuration is all sorts of bad. Not only does it make everything slower (because my editing configuration is optimised for interactive use, not batch processing) but it also leads to additional breakage when I change things in ways that are better for me, but worse for this web page.
  4. It sort of conflates what happens locally (authoring, publishing for preview reasons) with what happens remotely (generating indices and feeds, publishing for production) because anything can happen anywhere and I don’t have a great system in place for making sure it only happens where it’s supposed to happen.

These four reasons lead to my publishing configuration breaking some years ago. At the same time, my life conspired in ways that made it harder to motivate myself to fixing the configuration. In particular, I have still been writing and publishing, only at places not accessible to the public.22 I might re-write the more important of those articles and publish them here as time allows.

Anyway, this is where you might expect me to say, “And now I’ve taken the time to fix all four problems above!” but the truth is I haven’t. I’ve patched over the most problematic hacks with slightly more robust hacks.

But at least now it works again. Maybe for a few more months, maybe for a few more years. We’ll see!

Well, at least I think it works now. If you notice anything that looks weird or wrong, please let me know!