Table of Contents


org-blog is a blog exporter for org-mode written by David O'Toole in 2006. org-mode has since then changed a bit and it seemed that it no longer worked. It also seems to be the only viable/acceptable pure-org solution for me, so I'm trying to revive it.


  • Pure org-mode, all you need is some setup and you can use it like any other exporting function.
  • Separate drafts from posts.
  • Generate an index of posts.
  • Rudimentary RSS support.


  • GNU Emacs
    • org-mode



Since I've adapted it to work as a normal publishing function for org, setting it up is a lot like any other publishing project:

(setq org-publish-project-alist
       :base-directory "~/location/to/org/files/"
       :publishing-directory "/place/to/export/to/"
       :base-extension "org"
       :publishing-function org-publish-org-to-blog
       :blog-title "some title"
       :blog-description "some description"
       :blog-export-rss t
       :index-title "oni blog"
       :recursive nil
       :table-of-contents nil)))

Most of these options are very normal project settings and can be read about in the documentation for the variable org-publish-project-alist. The blog-title, blog-description, blog-export-rss and index-title, however, are used by org-blog.

This setting is used when exporting RSS. It sets the title in the XML output.
This setting is also used when exporting RSS. It sets the description in the XML output.
Whether or not you would like an RSS feed to be exported.
This is used as the title of the blog's index page.

Apart from these there are also 2 other settings that need your attention:

(setq org-blog-directory "~/path/to/blog/org/files/")
(setq org-blog-unfinished-directory "~/path/to/drafts/")

These don't have any relevance to the exporting and publishing functions, but they're used by the org-blog-new-post and org-blog-finish-post functions, which help with creating new posts.

Create new post

To create a new post, just call M-x org-blog-new-post and start writing.

Finish a post

When you're done writing and would like to set it up to be published, just call M-x org-blog-finish-post.


To publish just use any of the org-publish-* functions as you would any other org site.

Date: 2012-07-01 14:40:22 CEST

Validate XHTML 1.0