Benoit J - My mostly tech blog

Seeking a Hugo Blog Replacement

2022-12-15


The path to replace Hugo.

My current blog setup always worried me a bit due to the complexity it has.

I write org-mode files, that are then exported to Hugo markdown file with the help of the great package ox-hugo, and these markdown are then converted by hugo to HTML and RSS.

That process works and is quite stable, yet, introduce complexity to:

  • understand how ox-hugo works

  • understand how Hugo generates it’s files

  • understand how to extend Hugo for my theme

  • understand the mapping between org-mode and the generated files

It is stable so I had little incentive to fix this complexity until now.

Clojure is my new hammer

Some ``events'' happened that made me consider replacing Hugo:

  1. With all the fun I’ve been having using Clojure, I decided Clojure to be my hammer until I understand what it’s bad for.

  2. I’ve completed 10ish days of AdventOfCode using Clojure and babashka (Clojure scripting)

  3. Then I stumble upon (well I searched for it) some post mentioning cryogen, and then I found borkdude’s quickblog related posts (post1, post2).

All of this made me think that replacing Hugo with babashka is a brilliant idea.

After all, an org file is DATA :D

The plan

I write this hopefully using Hugo for the last time.

Here are some of the objectives:

  1. keep things simple

  2. either keep org-mode, or use asciidoc

    1. org-mode is more and outliner than a markup language. Rendering/export requires emacs org export modules.

    2. asciidoc is standard, has all the documentation features of org-mode, has good clojure/java integration with asciidoctorj, has a lesser editing mode than org-mode.

    3. avoid markdown at all cost due to the need for extensions, but yet, no good standard.

  3. reduce steps and necessity of having an intermediate step to generate my site. I want to get rid of the middle component in: org-mode → markdown (or some markup) → HTML/RSS

  4. leverage babashka so I can build my blog using CI tool without needing to install Emacs. My blog is built by sourcehut’s build engine.

  5. learn more about solving practical problems with Clojure

  6. gain full control on the generation of the HTML and CSS

  7. keep my clean semantic HTML5 generation and my current CSS

Non-goal:

  1. write another minor mode like ``ox-hugo''

  2. modify my Emacs configuration

  3. keep org-mode at all cost