orgweb/site/projects/org-blog.org

3.2 KiB

git-auto-commit-mode

<script src="/keyjs.KS" type="text/javascript"></script> <script type="text/javascript"> keyjs_initialize({ "u": [ "keyjs_goto", "../index.html" ], "h": [ "keyjs_goto", "http://ryuslash.org" ] }); </script>

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.