The theme for the [[Emacs Carnival]] in November 2025 is: An Ode to Org Babel.
For this month’s blog carnival, I would like you to celebrate the great power that Org Babel brings to Emacs. Tell us what problems you solve with literate programming and any tips and tricks you can share about how you use Org Babel.
[[org-babel]] is a very powerful and versatile tool. I use it for a few different things.
You can use org-babel to help maintain your config files. Rather than having source files full of comments, you have an org file full of source blocks that you ‘tangle’ together into the config file. You write narrative notes around the source blocks to explain why they’re there.
It might not sound like much of a win, but I’ve found it to be a much more maintainable way of managing large config files.
As a nice side benefit, as they’re org files you can easily publish them to the web and share them as part of your usual publish process. I keep mine here in my digital garden, and you can see them here:
I’ve got more info on how I made them in [[Setting up a spacemacs literate config file]] and [[Setting up a literate publish.el with org-babel]].
I use org-babel to create diagrams with [[PlantUML]] inline in org files. Sometimes for mindmaps, but more frequently for Gantt charts for project management at work. Occassionally some of the other UML diagrams, like sequence diagrams.
The logo of my website is also made with org-babel and PlantUML ([[Made myself a logo with PlantUML]]).
Occasionally I’ve use org-babel for very basic literate programming with Python. Usually working through some simple figures for something where it’s been handy to have a running narrative on those figures. If I’m honest, I usually end up moving to a spreadsheet as it feels quicker and more suited to my use cases. But it has been interesting to see how some of those Babel features work - like using variables across source blocks, for example.