可以采用两种方式组织muse的项目结构
(setq muse-project-alist `( ("Debian" ;项目名称 ("~/muse/source/wiki/debian" ;源文件的位置 :default "index" ;默认的project的主页 :force-publish ("WikiIndex")) ;发布项目时同时发布project的索引文件 (:base "wiki-xhtml" :path "~/muse/publish/wiki/debian")) ;发布路径 ("Emacs" ("~/muse/source/wiki/emacs" :default "index" :force-publish ("WikiIndex")) (:base "wiki-xhtml" :path "~/muse/publish/wiki/emacs")) ("GNU" ("~/muse/source/wiki/gnu" :default "index" :force-publish ("WikiIndex")) (:base "wiki-xhtml" :path "~/muse/publish/wiki/gnu")) ))
(setq muse-project-alist `( ("Muse" ("~/muse/source/wiki/gnu/emacs/muse" :default "MuseIndex" :force-publish ("index")) (:base "wiki-xhtml" :path "~/muse/publish/wiki/gnu/emacs/muse")) ("Debian" ("~/muse/source/wiki/gnu/debian" :default "index" :force-publish ("WikiIndex")) (:base "wiki-xhtml" :path "~/muse/publish/wiki/gnu/debian")) ("Emacs" ("~/muse/source/wiki/gnu/emacs" :default "index" :force-publish ("WikiIndex")) (:base "wiki-xhtml" :path "~/muse/publish/wiki/gnu/emacs")) ("GNU" ("~/muse/source/wiki/gnu" :default "index" :force-publish ("WikiIndex")) (:base "wiki-xhtml" :path "~/muse/publish/wiki/gnu")) ("WiKi" (,@(muse-project-alist-dirs "~/muse/source/wiki") ;源文件路径 :default "index" ;默认项目主页 :force-publish ("WikiIndex")) ,@(muse-project-alist-styles "~/muse/source/wiki" ;还是源文件路径 "~/muse/publish/wiki" ;发布路径 "wiki-xhtml")) ("Others" ("~/muse/source/others" :default "index" :force-publish ("WikiIndex")) (:base "xhtml" :path "~/muse/publish/others")) ("Default" (,@(muse-project-alist-dirs "~/muse/source/default") :default "index" :force-publish ("WikiIndex")) ,@(muse-project-alist-styles "~/muse/source/default" "~/muse/publish" "default-xhtml")) ))
;** Muse 的多级
在每个Muse的发布目录下建立一个资源文件夹res,当项目发布的时候自动将该 目录拷贝到相应的项目的发布目录上去法,这样做的好处是在编辑文件的时候可以 相对于Muse源文件目录浏览文件,而在发布的时候可以使用发布目录的文件。
需要定义一个拷贝函数:
(defun kid-muse-html-copy-attachements () (mapc #'(lambda (entry) (let ((src (car entry)) (dest (cdr entry))) (mapc #'(lambda (file) (let ((src-file file) (dest-file (concat dest "/" (file-name-nondirectory file)))) (if (file-newer-than-file-p src-file dest-file) (copy-file src-file dest-file t)))) (directory-files src t "^[^.]")))) ;we must exclude `.' and `..' kid-muse-html-attachment-directories)) (add-hook 'muse-after-project-publish-hook #'(lambda (proj) (if (string= (car proj) "wiki") (kid-muse-html-copy-attachements))))
然后在发布一个项目之前调用这个拷贝函数:
Wiki comments powered by Disqus