muse-blog is an extension to Emacs Muse, a publishing environment for Emacs.
It allows you to maintain a blog within Emacs, and produce HTML pages and RSS 2.0 feeds.
Download
It is available from its Git repository.
There's no tagged release for now.
Manual
Creating a blog project
You should load it from your Emacs start-up file:
(require 'muse-blog)
Then, you should define a project in `muse-project-alist'.
(add-to-list 'muse-project-alist
'("MyBlog"
;; Path to your blog
("~/Blog")
;; Always re-publish index
:force-publish ("index"))
(:base "blog-xhtml"
:base-url "http://www.example.com/blog/"
:path "~/Blog/output/")
(:base "blog-rss"
:base-url "http://www.example.com/blog/"
:path "~/Blog/output/"))
This will add a new project named MyBlog, which have files in ~/Blog and will publish all files (XHTML and RSS) to :path. All URL will be relative to :base-url.
Writing entries
You're free to split your blog entries like you want: either all of them in one Muse file, or a Muse file for each month, or even a file by entry.
The syntax for a blog entry is:
* 20100519-16:24:78 This is my first muse-blog entry I'm very excited about all this. I think it's amazing to write a blog in Emacs. Seriously. We should all thanks **jd** for his extraordinary work!
An entry should start with a first-level heading, with the following format:
* YYMMDD-HH:MM:SS Title
Date is mandatory, time and title are optional. If title is not specified, the date will be used as a title.
Building an index page
muse-blog provides you a way to create an index page and regroup all your entries in a front page.
Just create a front page like this:
#title This is my bloog! #desc Blog of a new muse-blog user(muse-blog-make-index 0 9) ---- Archives(muse-index-as-string t nil t)
This will create an index page (HTML and RSS) with the 10 first entries from all files matching `muse-blog-make-index-files-regexp'.
You can even add a footer to add link from your archives. Footer is "----", i.e. an horizontal line, and such a line is not included in an entry. Muse provides a handy function to build page index, `muse-index-as-string'.