最近更新: 2008-04-13
本页目录
关于 EmacsWiki 的简单介绍请看这里。
而 EmacsWikiJournal 则是建立在 EmacsWiki 上的一个 Blog 系统,支持生成 RSS 种子,日历和存档连接,软件按月份存档,并可以自定义首页的记录数目。不过即便如此,相比如今的各种 Blog 系统,EmacsWikiJournal 的功能还是很有限的。
EmacsWikiJournal 和 EmacsWiki 的语法规则一样,配置的过程也差不多,而且可以作为 EmacsWiki 的一个 project 来管理,和 EmacsWiki 其他的 project 是一样的。
如果你对 EmacsWiki 的语法规则不太了解,不妨到李宇维护的 EmacsWiki 中文站点搜寻一下,上面有一些 FAQ,而且他还给出了配置模板,对刚开始接触的朋友非常有帮助。他的配置模板可以在这里直接使用,但还要增加一些特别的配置,配合我修改过的文件使其生效。具体的请看下面的《配置及使用说明》。
emacs-wiki-journal-latest.el.tar.gz
emacs-wiki-2.70.tar.gz
emacs-wiki-2.72.tar.gz (from mwolson.org)
请注意,以上代码都是以 GPL 发布的。
emacs-wiki-journal 需要 emacs-wiki 的支持,Emacs version 23 仅能配合 emacs-wiki-2.72 使用。若有用到 <src> tag 对嵌入代码高亮进行文件的发布,还需要修改 emacs-wiki 中的 emacs-wiki-srctag.el 文件,具体见<<Emacs-Wiki-Journal with Emacs23>>的详细说明。
Emacs version 22 可以配合 emacs-wiki-2.70 使用,若有用到更高级的特性,请下载 emacs-wiki-2.72。
另外,Emacs-wiki 现在由 Michael Olson 维护;而 Emacs-wiki-journal 的“原始”版本可以到 Yamagata Yoriyuki 的主页上下载(貌似现在已经打不开了)。
如果你是第一次接触 EmacsWikiJournal,不妨 M-x customize-group,输入 emacs-wiki-journal 来进行配置,对于每个变量的设置都有简短的英文说明,只是完成它要花一点时间。如果你选择这样建立配置文件,下面的部分就不用看了。
或者你也可以这样,到李宇维护的 EmacsWiki 中文站点获取配置模板,做相应的修改,然后请继续看下面的部分。
下面的配置部分假设你已经配置好了原来的 EmacsWiki 和 EmacsWikiJournal。在对原来的配置文件做出改动前,请做好必要的备份,所谓有备无患。
请将这一部分注释掉,以免和修改过的代码冲突。只需在每行的前面加上一个分号';'。
; '(emacs-wiki-journal-date-format "%Y-%m-%dT%T%z") ; '(emacs-wiki-journal-date-tag-template "<!-- date: %s -->")
下面的这一部分,请作相应的修改,添你的 ~/.emacs 文件或 load 进来的外部 EmacsWiki 配置文件即可。
(custom-set-variables ; emacs-wiki-journal-wiki 是最新月份记录的拷贝,是一个“静态”页面,下面定义 ; 它的文件名以及标题 '(emacs-wiki-journal-wiki "index") '(emacs-wiki-journal-welcome-page-title "Title") ; 定义指向当前记录的自连接的名字 '(emacs-wiki-journal-self-link-name "Permalink") ; 定义是否产生最新月份的 RSS 种子,t 表示肯定,nil 表示否定 '(emacs-wiki-journal-generate-rss-file t) ; 定义 RSS 的文件头,请对应作相应的修改 '(emacs-wiki-journal-rss-initial-content "<?xml version=\"1.0\" encoding=\"utf-8\"?> <?xml-stylesheet href=\"rss_style.css\" type=\"text/css\"?> <rss version=\"2.0\" xmlns:rdf=\"http://www.w3.org/1999/02/22-rdf-syntax-ns#\" xmlns:dc=\"http://purl.org/dc/elements/1.1/\" xmlns:admin=\"http://webns.net/mvcb/\" > <channel> <title>Sucha's Blog</title> <link>http://suchang.net/blog/index.html</link> <description>linux, emacs, erogramming, live and essay</description> <dc:language>zh-CN</dc:language> <dc:creator>sucha</dc:creator> <dc:date>%s</dc:date> <admin:generatorAgent rdf:resource=\"http://suchang.net\"/> \n\n") ; 定义 RSS 种子包含路径的文件名 '(emacs-wiki-journal-rss-file-name "~/path/to/your/publish/dir/rss.xml") ; 定义首页的记录数目 '(emacs-wiki-journal-wiki-max-entries 11) ; 定义指向 blog 的连接 '(emacs-wiki-journal-rss-link "http://suchang.net/blog/index.html") ; 你的网络 ID '(emacs-wiki-journal-maintainer "sucha") )
下面是将日历和存档连接插入页眉的例子,或者,你也可以将它们插入到页脚。为了在产生日历和存档连接后更好地控制版面,建议使用 div 容器来存放各部分的内容。
<?xml version=\"1.0\" encoding=\"utf-8\">
<html>
<head><!-- Original text/样本页眉的原来部分 --></head>
<body>
<h1>title/你的标题</h1>
<div class=\"side_bar\">
<!-- 你可以在这里或其他地方增加一些固定连接,像通往首页、你的
RSS 种子连接、友情连接或者是你的分类文件连接以及广告等等 -->
<!-- 如果你需要日历,就将这部分加入 -->
<lisp>(emacs-wiki-journal-insert-calendar)</lisp>
<!-- 如果你需要产生存档连接,就将这部分加入 -->
<lisp>(emacs-wiki-journal-generate-archive-links)</lisp>
</div><!-- side_bar -->
<div class=\"body\">
<!-- Page published by Emacs Wiki begins here -->
<!-- 记录文档的插入部分,上面是页眉,下面是页脚 -->
<!-- Page published by Emacs Wiki ends here -->
</div><!-- body -->
</body>
</html>
这部分是我从薛瑞尼个人网站中的 EmacsWiki 部分得来的,作者是现在维护 Planner 的 sacha。实在是非常好用,可以省去每次保存后还要发布成 html 的麻烦——每次修改后只需保存即可自动发布,强烈建议大家都尝试一下。只需拷贝进你的 ~/.emacs 或 load 进来的外部 EmacsWiki 配置文档。
;; emacs-wiki auto-publish from sacha, add my hack. (defun sacha-emacs-wiki-auto-publish() (when (derived-mode-p 'emacs-wiki-mode) (unless emacs-wiki-publishing-p (let ((emacs-wiki-publishing-p t) (emacs-wiki-after-wiki-publish-hook nil)) (emacs-wiki-journal-publish-this-page) ; (emacs-wiki-publish-index) ; 如果你需要在保存的同时自动发布 )))) ; WikiIndex,请将行首的';'去掉 (add-hook 'emacs-wiki-mode-hook (lambda () (add-hook 'after-save-hook 'sacha-emacs-wiki-auto-publish nil t)))
下面是我的个人 EmacsWiki 和 EmacsWikiJournal 设置,我用它们来维护我的个人网站和 blog。由于使用上的需要,相比原来的样本页眉页脚,已经修改了很多地方,也许没有什么借鉴意义。而且我用的是 CVS 的 Emacs22.0.50.1,内部环境和系统环境都是用 utf-8 的编码,所以不会遇到汉字编码转换的问题。
不管怎么说,在这里权且充当能够成功使用的一个例子吧,header 和 footer 是相应主页以及 blog 的文件头和文件尾。注意,下面的文件都是 utf-8 编码。
emacs-wiki-conf.el
.site-header
.site-footer
.blog-header
.blog-footer
感谢 Mwolson 的 EmacsWiki,使得维护一个网站变得如此简单。
感谢 Yamagata Yoriyuki 的 EmacsWikiJournal,给我有了现实中修改的基础。
感谢 gswamina 的 EmacsWikiBlog,带给了我如此多的灵感。
感谢 长弓无敌 (junshen365 AT 163 DOT com),解决了第一次使用时无法插入首 页的 bug。
有什么问题,可以联系我 EmailMe,同时欢迎任何建议和意见。