Beginning Blogging with org-publish
Intro
I’ve used jekyll to make static websites 1 and found the experience pretty easy provided one was using a template.
However I spend all my time in emacs and absolutely love org-mode.
Once you use org mode for long enough you never want to write markdown, so I decided to make my personal website entirely with Emacs and Org Mode’s org-publish
function.
There are of course other options which integrate with org-mode, however none of them offer the flexibility and simplicity of just customizing org’s built in HTML export and using org-publish
to manage the group of files to be exported.
Examples
Here are some blogs created with org-publish
which inspired me in my quest to create this blog:
- Dennis Ogbe: Blogging using org-mode (and nothing else)
- expLog: Org Configuration
- Two-Wrongs: Now Powered By Org Mode
- thibaultmarin: Personal website in org
- Nicolas Petton: Blogging with org-mode
- Bastian Bechtold: Blogging with Emacs
- kumakichi: build blog with orgmode and github pages
- Pierre Neidhardt: A blog in pure Org/Lisp
- Ramblings from a Corner: Blogging with Org publishing
- Loom Communications: Emacs Blogging for Fun and Profit
Documentation
Of course to understand what all the functions and variables involved do, one needs the documentation, luckily Emacs and org-mode generally have very good documentation to get one started:
- Publishing (The Org Manual)
- Exporting (The Org Manual)
- Specifically: HTML Export (The Org Manual)
- But also useful: Macro Replacement (The Org Manual)
- Org Syntax
- Org Babel reference card
Beyond the manuals, one should of course make generous use of the describe-*
and apropos
functions built into Emacs whenever there’s a function or variable to understand.
Then of course from the *Help*
buffer, one can jump to the definition directly in the source, which is a great way to start learning emacs lisp – by reading it!
Design
Since I want this website to be both a blog of what I’ve done and a sort of living knowledge base with my most current configurations, I’ll have both posts which explain things I’ve done and then project pages which show the current state of my configuration with minimal commentary, but rather links to posts describing the evolution of the project.
In this way I hope to decrease clutter and increase usefulness. We’ll see how well this system works in practices though :)
Backlinks:
Footnotes:
Specifically I created https://cmuhl.org/ using Jekyll