Emacs Carnival: org-babel

*
planted: 01/11/2025last tended: 30/11/2025

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.

Emacs Carnival 2025-11 — An Ode to Org Babel

org-babel is a very powerful and versatile tool. I use it for a few different things.

1. Literate configuration

You can use org-babel to 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 as part of your usual publish process. I keep mine here in my digital garden, and you can see them here:

2. Inline diagrams with PlantUML

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).

2.1. Python workbooks

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.

3. Elsewhere

3.1. In my garden

Notes that link to this note (AKA backlinks).

3.3. Mentions

Recent changes. Source. Peer Production License.