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 orgy’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:
- https://orgmode.org/manual/Publishing.html
- https://orgmode.org/manual/Exporting.html
- Specifically: https://orgmode.org/manual/HTML-Export.html
- But also useful: https://orgmode.org/manual/Macro-replacement.html
- https://orgmode.org/worg/dev/org-syntax.html
- https://org-babel.readthedocs.io/en/latest/
Beyond the manuals, one should of course make generous use of the apropos
function 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 :)
Footnotes:
Specifically I created https://cmuhl.org/ using Jekyll