Hot-wiring the lisp machine
The modern web is choking on its own exhaust. Somewhere along the line, we traded the elegance of plain text for gigabytes of node_modules/ , I know you're thinking about it. labyrinthine JavaScript frameworks, and bloated Static Site Generators that insist you learn their esoteric templating languages just to write a blog post. Worse yet, some even force you to use the mouse. Gross.
I know you're thinking about it.
I didn't want another framework. I refused to hoard dependencies like some doomsday prepper. I wanted the comfort of my text editor.
Specifically, I wanted Emacs. Forget the text editor label; it's a single-threaded Lisp machine masquerading as one. Within that machine lies Org-mode. This isn't just another cheap Markdown knockoff dressed in hipster syntax; it's a structural paradigm that bends to the shape of complex logic without effort. Organizing your life with org-mode is a baseline, not catchy hyperbole. Absolute maniacs run their finances, their spreadsheets, and their fragile grip on reality out of it.
I was already deep in the trenches of org-mode, juggling giant agendas and interconnected Zettelkasten-style notes, the works. Bending my workflow or reorganizing my notes to appease the rigid directory structure of some flavor-of-the-month SSG was a non-starter. I just wanted to render my thoughts into some damn HTML.
I may generate a static website out of these notes at some point, not sure when though.
That line had been hovering in my README as a taunt for the better part of five years. It was time to call my own bluff. The goal was simple, perhaps dangerously so: publish my notes, written in org-mode, using zero external dependencies.
Like many before me, I stumbled into the gravitational pull of org-publish. The allure of a native publishing solution built right into Emacs was intoxicating. I spent hours tweaking, pruning, and watering my org-publish-projects-alist , only to smash face-first into the cold, harsh reality of its brittle API . For all its promises of infinite extensibility, the publishing engine felt agonizingly spartan. My code devolved into an abhorrent mass of duct tape and fragile hooks, leaving me miles away from the HTML output I was after.
I lost count of the battles fought against the templating function, the broken URLs, and the damned sitemap11 Sitemap in org-publish parlance refers to the index page listing all posts. . Needless to say, building a paginated index was an exercise in futility that felt less like programming and more like negotiating a hostage release with a brick wall. Extensibility was a myth; it was turtles all the way down.
... continue reading