« Back to article list

Blogging with Emacs' org-mode

Table of Contents

Blogging with Emacs' org-mode/org-publish

Emacs is an amazing tool, and blogging in emacs' org-mode can be a very enjoyable experience.

Using the software set up available at: https://github.com/ahungry/ahungry-blog

You will be able to set up a blog entry through org-mode, publish it via org-publish, and finally expand the tags set at the start of the org-mode file via the generate-html.lisp script provided in the repository.

Getting started

To get started, you will need to clone the repository with the following:

git clone https://github.com/ahungry/ahungry-blog.git

After you have cloned the repository, you will want to set up your first test entry, do that via the following commands in your sh:

cd ./ahungry-blog/org
cp ./sample.org ./_posts

At this point, you will have the base template to start setting up your first blog entry.

However, there is one more thing that must be done, add the required ~/.emacs information to set org-publish parameters.

If you are not using the directory, "/srv/http/ahungry-blog" for this, you will need to manually edit the file. If you are, simply type the following into your sh:

cd /srv/http/ahungry-blog
cat ./dot-emacs >> ~/.emacs

And in emacs, run:

M-x load-file

to re-evaluate the new configuration information.

Generating the final html

After you've had a chance to work on your sample file, you will want to save your .org file.

It is now time to publish the file, in emacs simply run:

M-x org-publish

This will generate the raw html file with the common lisp s-exp's in it still.

The final step to produce usable static html files from this is to run:

./generate-html.lisp ./articles/_posts/*

You will now see your articles directory contains a fully expanded version of all the relevant posts.

Update <2013-04-20 Sat>

Using the content in the dot-files included with the package will allow you to run the following commands:

M-x ahungry-new-blog

To start a new blog entry (follow the prompts).

To easily publish your new entries and push to a remote git repository which will host your blog you can run:

M-x ahungry-publish