UP | HOME

org-blog

Table of Contents

About

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.

Features

  • 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.

Requirements

  • GNU Emacs
    • org-mode

Usage

Setup

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
    '(("my-blog"
       :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.

blog-title
This setting is used when exporting RSS. It sets the title in the XML output.
blog-description
This setting is also used when exporting RSS. It sets the description in the XML output.
blog-export-rss
Whether or not you would like an RSS feed to be exported.
index-title
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.

Publish

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