Posted on 20-10-2008
Filed Under (技术) by waterlin

现在做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 ”
<!DOCTYPE html PUBLIC \”-//W3C//DTD XHTML 1.0 Strict//EN\” \”http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd\”>
<html xmlns=\”http://www.w3.org/1999/xhtml\” lang=\”en\” xml:lang=\”en\”>
<head>

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

<title>Water Lin</title>
<meta http-equiv=\”Content-Type\” content=\”text/html; charset=utf-8\” />
<meta name=\”author\” content=\”dreamLogic\” />
<meta name=\”description\” content=\” \” />
<link rel=\”stylesheet\” href=\”style.css\” type=\”text/css\” />
</head>

<body>

<div id=\”navcontainer\”>
<ul id=\”navlist\”>

<!– put your navigation links and text here –>

<li><a href=\”#\”>home</a></li>
<li><a href=\”http://blog.waterlin.org\”>blog</a></li>
<li><a href=\”#\”>portfolio</a></li>
<li><a href=\”#\”>links</a></li>
<li><a href=\”#\”>contact</a></li>
<li><a href=\”http://validator.w3.org/check?uri=referer\”>xhtml</a></li>

<!– end navigation –>

</ul>
</div>

<div id=\”wrap\”>

<div id=\”header\”></div>

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

<div id=\”title\”>Water Lin<br />Sea made by Water Drop</div>

<div id=\”container\”>

<div class=\”content\”>
<!– Page published by Emacs Muse begins here –>\n
“)

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

</div>

    <div id=\”footer\”><br />

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

<a href=\”http://www.dream-logic.com\”>Web Design by dreamLogic</a>

</div>
</div>

</div>
</body>
</html>
“)

在这里,注意所以的号都要用\”来转义。

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

© 2008, 浏忙大爆炸. All rights reserved.
除非注明,浏忙大爆炸文章均为原创,转载请以链接形式标明本文地址。

(1) Comment    (2,429) Views    Read More   

Comments

[…] 终于在cesky上买了一个空间,把用Emacs Muse做的个人主页放上去了。 […]


Post a Comment
Name:
Email:
Website:
Comments: