Seeking a Hugo Blog Replacement
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:
- 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.
- I’ve completed 10ish days of AdventOfCode using Clojure and babashka (Clojure scripting)
- 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
I write this hopefully using Hugo for the last time.
Here are some of the objectives:
- keep things simple
- either keep org-mode, or use asciidoc
- org-mode is more and outliner than a markup language. Rendering/export requires emacs org export modules.
- 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.
- avoid markdown at all cost due to the need for extensions, but yet, no good standard.
- 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
- 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.
- learn more about solving practical problems with Clojure
- gain full control on the generation of the HTML and CSS
- keep my clean semantic HTML5 generation and my current CSS
- write another minor mode like “ox-hugo”
- modify my Emacs configuration
- keep org-mode at all cost