Table of Contents:
Muse 是 Emacs 中的一个撰写和发布文档的环境,它的前身是 emacs-wiki。 Muse 与它的前辈相比有诸多优点,比如多种发布格式的良好支持(包括 xhtml, latex, pdf, docbook...)和对工程的管理等等。新版本的 Muse 加入了代码加 亮功能。所以呢... 还在用 emacs-wiki 的同学们,赶快来感受 Muse 吧 ~
这个问题么... 其实呢,我自己也还没配置好 ~ Muse 相对 emacs-wiki 来 说配置起来要容易些。我不怎么会 elisp,所以也不会自己写函数,只是随便设 了一些变量,效果就是你现在看到的这样(当然有一个 css 的问题)。我的 Muse 配置如下:
(require 'muse-mode) (require 'muse-publish) (require 'muse-html) (require 'muse-journal) (muse-derive-style "wiki-xhtml" "xhtml" :header "~/.emacs.d/muse/header.wiki" :footer "~/.emacs.d/muse/footer.wiki" ) ; Self-defined style (muse-derive-style "site-journal-xhtml" "journal-xhtml" :header "~/.journal/header.html" :footer "~/.journal/footer.html" :style-sheet "styles/default/style.css") ; Self-defined style (setq muse-project-alist '(("muse-test" ("/media/d/text/muse-test" :default "index") (:base "wiki-xhtml" :path "/media/d/text/muse-test/public_html")) ("Wiki" ("/media/d/text/wiki" :default "index") (:base "wiki-xhtml" :path "/media/d/text/wiki/publish" :force-publish ("WikiIndex"))) ("Journal" ("~/.journal" :default "index") (:base "site-journal-xhtml" :path "~/.journal/publish")) )) (setq muse-html-style-sheet "styles/default/style.css") (setq muse-html-meta-http-equiv "Content-Type") (setq muse-html-meta-content-type "application/xhtml+xml") (setq muse-html-meta-content-encoding 'detect) (setq muse-html-charset-default "utf-8") (setq muse-html-encoding-default "utf-8") (setq muse-journal-date-format "%Y年%B%e日, %A")
我建了三个 projects,其中 muse-test 那个是测试用的,还没删... 剩下的相 信大家一看就明白。
Muse 和 emacs-wiki 的一个很大的不同就是 emacs-wiki 只会发布成 html,因 此可以在源文件里随意的写 html tags,但是在 Muse 里是不行的。比如在 emacs-wiki 里写一句
<img class="smile" src="some pic.png" alt="" />
发布以后就会是一个图片,但是在 Muse 里这样写的话,它会把代码原样发布出 来。
Muse 的官方文档并没有给出使用代码加亮的具体方法(Fix: 最新的 3.03 版里 给出了使用方法),这里给个例子。
<src lang="scheme">
(define (double p)
(lambda (x)
(p (p x))))
</src>
上面这陀东西发布出来就会变成这样
(define (double p) (lambda (x) (p (p x))))
另外,Muse 的代码加亮是用 htmlize.el 完成的,所以颜色与代码在 Emacs 里 的颜色有关。我的 color-theme 恰好是一个暗色的主题,所以代码加亮在这里看 起来相当猥琐... 不知道有什么办法...
(FIX: 找到了一个比较 dirty 的办法:设置 before-publish-hook 和
after-publish-hook。看代码:
(setq muse-before-publish-hook
'color-theme-blippblopp)
(setq muse-after-publish-hook
(lambda ()
(color-theme-deep-blue)
(set-face-attribute
'mode-line nil
:background "#dedede" :foreground "#000000"
:height 80
:box nil)))
最后那几行是设置我的 mode-line。这个办法的 dirty 在于每次发布的时候 Emacs 都会乱闪,而且比较慢。)