As of <2012-06-10 Sun>, this README file is a WIP.
I have developed a nice Org Mode/Emacs interface built around blogging with Octopress. While I’m not sure the task will ever be completed, I’d like to create a version of this repo that has none of my blog data but contains the skeleton of a my Org Mode flavor Octopress blog as well as all of my Emacs customizations.
Like Octopress, I’d like the repo to be auto-installing. That is, you clone it and just start using it. Configuration and initialization are just part of the workflow.
Assuming that I ever get around to doing this (it is nowhere near the top of my todo list), there will be a simple recipe for creating an Org Mode/Emacs/Octopress/Jekyll/Github blog:
- Create a Github repo for your blog.
- Clone Octopress.
- Config Octopress (only a few commands).
- Clone my blog data repo
- Add my Octopress Elisp file to your load path
- Start blogging
I am currently using Octopress as the engine for my blog. I have slightly modified Octopress’s file layout so that all of my data is stored in a single subtree of the blog. Besides making it easy to track my changes (eg: if I added or changed a file, it is in this repository), it provides me with great portability.
Once I’ve installed a generic copy of Octopress on any computer, I can clone this repository and start blogging right from there. I like nice and tidy.
Several pieces of software are involved in the publication of my blog. Most of them are generic Octopress or Jekyll, the underlying technology for Octopress, components. I have added to generic Octopress so that I can use GNU Emacs’s Org Mode for my markup language and publishing platform.
Software Components:
- Octopress: Client-side blogging platform.
- Jekyll: Underlying technology for Octopress.
- Github: Blog hosting service.
- Github Pages: Server-side blogging platform.
- Ruby and Rake: Underlying technology for Jekyll and Octopress
- Org Mode: Markup language, project management, and general coolness :-)
- GNU Emacs: Underlying technology for Org Mode.
The pages
subdirectory contains all of the pages on my website. That is, it holds any non-blog data that I wish to publish. Unlike blog posts, pages do not have tags, dates, and other typical blogging miscellanea.
The pages
subdirectory has a tree structure of its own that matches Octopress/Jekyll’s source
directory tree structure. Org Mode project publishing converts these files from Org Mode markup to HTML, storing the HTML files into the corresponding directories of Octopress’s source
directory.
In the end, this means that Octopress/Jekyll only see HTML in its source
directory and handles them as it would handle hand-coded HTML files.
My contact page is an example of an Octopress page. While it isn’t organized by tags and dates as blog postings are, it has the look-and-feel of my Octopress site.
An example of a non-blog page is my resume. It is an HTML file that Octopress simply deploys to my Github hosted blog. My resume appears as a printer friendly page that is clearly not part of my Octopress website. It doesn’t have Octopress’s header, theme, layout, etc…
Octopress requires blog posts to follow a standard naming convention.