现在做Wiki的工具这么多,为什么还要用muse这样老土界面的东西呢?Muse其实有着许多的优点,归结起来,我觉得不外乎这么几个:

其一,你可以专注于写作,而不是排版,一旦你设计好了你的风格,你就可以一劳永逸了,写起来特别地快捷。

其二,用Muse写Wiki的成本很低。大多数个人发布页面,如果要用动态网站的形式,势必给自己添加许多维护上的麻烦。而Muse生成的html静态页面,容易托管和备份。当然,如果你是多人维护的页面或是Wiki,就另当别论了。

其三,Muse可以生成多种格式。你写的一份内容,不仅可以生成html页面,还能生成类似于pdf之类的其它文档,对于保存和发派你的作品,都十分的方便。

因为muse的配置比较长,所以我喜欢把muse配置代码全部放到emacs-muse.el里,在.emacs文件里导入这个文件来加载muse配置代码以及自定义样式的代码,这样可以方便编写调试,而且还能方便在命令行调用。

;; Emacs Muse
(load-file “~/emacs/site-lisp/emacs-muse.el”)

下面就讲一讲我在emacs-muse.el里的配置代码。

1) Muse的基本配置

定义一些基本的格式,没什么特别的。

(require ‘muse-mode)     ; load authoring mode
(require ‘muse-html)     ; load publishing styles I use
(require ‘muse-latex)
(require ‘muse-texinfo)
(require ‘muse-docbook)
(require ‘tp-muse-highlight nil t)
(require ‘muse-project)  ; publish files in projects

2) 自定义自己的样式

Muse提供了函数muse-define-style来自定义格式,还有函数muse-derive-style来继承已定义的格式。本文就介绍一种自定义的HTML格式,所以只需要函数muse-derive-style来继承自HTML格式即可,这里我们定义了两个名为wiki-xhtml和default-xhtml的新格式,它继承自XHTML格式。

(unless (assoc “my-blosxom” muse-publishing-styles)
(muse-derive-style “wiki-xhtml” “xhtml”     ;定义一个派生的style为wiki-xhtml
:header ‘muse-xhtml-header
:footer ‘muse-xhtml-footer
)
(muse-derive-style “default-xhtml” “xhtml”  ;定义另一个派生的style
:header “~/muse/common/templates/default-header.html”
:footer “~/muse/common/templates/default-footer.html”
))

3) 多项目配置

在这里,我们配置了两个项目,一个是ArrAyWiki,另一个是个人主面的MyWiki。从语句中可以看出来,我们给ArrAyWiki配置的是Muse自带的html风格的模式,而给MyWiki配置的却是wiki-xhtml风格的模式。

(setq muse-project-alist
‘((“ArrAyWiki” (“~/ArrAyWiki” :default “index”)
(:base “html” :path “~/public_html/ArrAyWiki”)
(:base “pdf” :path “~/public_html/ArrAyWiki/pdf”))
(“MyWiki” (“~/MyWiki” :default “index”)
(:base “wiki-xhtml” :path “~/public_html/MyWiki”)
(:base “pdf”  :path “~/public_html/MyWiki/pdf”))))

有关多项目配置的详细情况可以看一看我之前写的《Emacs Muse的多项目发布模式和命令》在发布项目的时候,即muse-mode里C-c C-t的时候,对于MyWiki项目要记得用输入wiki-xhtml这个style来生成页面。

4) 具体定义风格

我们虽然在2)中已经定义了样式的名,但其实我们还没有真正的定义出样式的具体内容。我们现在就来对样式的具体内容作出定义,拿wiki-xhtml作为例子。我们可以先从http://www.dream-logic.com/下载我们喜欢的模板文件作为参考模板。

对于wiki-xhtml风格,我们只需要定义muse-xhtml-header和muse-xhtml-footer这两个变量,参考我下载的模板,我对这两个变量进行了如下的定义:

;;;; muse xhtml header
(setq muse-xhtml-header ”

<!– change this to the title you want to appear in browser title bar –>

Water Lin

<!– the title that appear in the page header –>

Water Lin
Sea made by Water Drop
\n “)

;;;;  muse xhtml-footer
(setq muse-xhtml-footer ”
<!– end page content –>

   


<!– it’d be super if you left this link intact –>

Web Design by dreamLogic

“)

在这里,注意所以的**“号都要用&#8221;**来转义。

到这里,Muse的基本配置就算结束了。试着在你的muse文件里,M-x muse-project-publish-this-file试一试看。