I recently moved to a literate programming style of emacs configuration. I've configured org-mode to automatically publish the latest HTML version of this configuration whenever I publish my blog posts. Since I love metadata and statistics, I wondered whether or not I could get the org-mode export to add Google Analytics tracking code for me. Turns out I can!
I've been using org mode with emacs more and more recently. It's exceptional. I keep finding new features and capabilities that make the switch to emacs increasingly worthwhile. This post is about configuring emacs and managing configuration in an approachable, coherent, and understandable way.
What is literate programming?
Literate programming is an approach to programming introduced by Donald Knuth in which a program is given as an explanation of the program logic in a natural language, such as English, interspersed with snippets of macros and traditional source code, from which a compilable source code can be generated.
The core concept is that a program is much easier to understand by any human being when it is mixed with prose about that program. While often algorithmic or structural comments in code are quite detailed, I often find single line comments without much meaning that do little to help me understand the code. Complex systems require complex descriptions, and taking the time to properly annotate code is important. It's often quite difficult as well, as it's combined with a choice of where exactly to put the comment so that it's most useful - is there any documentation to update as well?
Some years ago I moved to Jekyll from Wordpress and have been hosting this blog as a statically generated website on S3. Having recently discovered Emacs' org mode I wanted to see if I could write blog posts with it. Considering that this is the emacs community it was probably silly to doubt that nobody had done this before. It turns out that there's a whole post specifically about this on the org mode site: Using org to Blog with Jekyll. It's a little out-of-date as in org 8.2 the HTML export publishing function has changed, but that's the only difference.
To see more posts, visit the archives.
subscribe via RSS