-->
Emacs-Wiki
Define Emacs-wiki
关于这个话题,网上有极其丰富的内容。 我只说2句废话,就是这个网页就是由Emacs-Wiki生成的,以及它有两个关键字,Emacs和Wiki。 如此好的一个东西,说实话,网络上关于如何让新手快速起步的资料确实少之又少。因此我希望能够写一篇让新手可以快速起步的东西,
只要你懂得一些Emacs的基础
。 我还需要让你知道,Emacs-wiki在某种程度上类似于TeX。 我们在tex文件里面写代码,再通过TeX的
编译
将它变成pdf; 我们在Emacs-wiki中,编辑Emacs-wiki文件,再通过Emacs-wiki的
发布
将它变成生成的网页文件。
安装Emacs-Wiki
对于Debian用户来说,安装
实在是一件简单不过的事情。
~$ sudo aptitude install emacs-wiki
即可。
关于Emacs-wiki的教程
这是一件有些困难的事情,因为当你搜索Google的时候,往往可以找到很多关于如何设置Emacs-Wiki的文章,但是却很少有文章能够告诉你,当你真正设置完了,如何开始真正地使用它,尤其是像我这样的一个wiki新手。
关于设置的一些注解
- 关于设置css的问题。 在.emacs文件里面添加如下的elisp代码:
(setq emacs-wiki-style-sheet "<link rel=\"stylesheet\" type=\"text/css\" href=\"blueheadings.css\" />")
需要注意的是,很多人在他们的设置指导上面只说了如此设置css,却没有说明如何添加引号中的内容,导致我一开始直接在引号里面加入了css的路径从而失败。 但是研究了 Eamcs-wiki生成的html文件以后,我发现它不过是把这引号里面的东西加入到了html头文件里面。 这下好办了,在引号内添入那句设置css的html就好了呀。 注意在LISP中,要在字符串内 输入引号要用“\”来转义。
找我喜欢的css文件也废了我很大的功夫。 好在,最终我找到了。 以后成功找到这篇文章的人就幸福了因为,你可以直接去:
- 关于设置多个Project 这个在网上也很容易搜索到。 我想说的是大家很有可能会问的问题: 为什么要设置多个Project? 为了把这个问题说明白,我要调用一个设置里面的例子来将它说明白:
(setq emacs-wiki-projects `(("Default" . ((emacs-wiki-directories . ("~/wiki/Default")) (emacs-wiki-publishing-directory . "~/wiki/publish/Default"))) ("Debian" . ((emacs-wiki-directories . ("~/wiki/draft/Debian")) (emacs-wiki-publishing-directory . "~/wiki/publish/Debian"))) ("TeX" . ((emacs-wiki-directories . ("~/wiki/draft/TeX")) (emacs-wiki-publishing-directory . "~/wiki/publish/TeX")))))
上面的设置来源于.emacs文件。 这个设置中有三个Project。 拿Debian这个Project来说,它的每一个emacs-wiki文件都存在
~/wiki/draft/Debian
这个目录下面。而每个文件发布了以后,生成的html文件会放在
~/wiki/publish/Debian
下面。 而默认地,生成文件夹中会有一个 *WikiIndex*的网页来index这个Project下面的所有html。 我想,不用我接着说,你也应该理解了Project的意义和它是如何封装的了。
关于使用的注解
首先,关于Emacs中最最常用的快捷键:
- M-x emacs-wiki-find-file RET
它会在mini-bar里面显示一个提示,让你输入Default这个project下你想编辑的entry,或者说,emacs-wiki文件名。其实我认为它最大的作用就是进入Emacs-wiki模式,只要继续轻轻回车 就可以了。 接下来的事我们用接下来的命令做。
- C-c C-v 这个命令是换project用的。 因为我们已经用前面的命令进入了Emacs-wiki模式,所以在这个命令的使用中,可以通过Tab来补全project名。
- C-c C-f 在Emacs-wiki的模式下,这个和C-x C-f是一个回事来着。 只不过,这个文件会保存在当前Project对应的emacs-wiki文件夹。
- C-c C-p publish到当前Project对应的目标文件夹里头。
关于Wiki标记语言
这个找一篇教程就好了,比如
需要注意的是,这个教程貌似是默认你知道wiki的基本概念的,比如插入一个wikiname链接(比如你在维基百科上看到一个蓝色的名字,点一下就能连接到那个页面)它就没有详细说。 其实,只要用两个中括号就好了,比如:
[[Google]]
的结果就是Google
当然,前提条件是,你需要在当前的Project下有以这个为名字的html,不然它会找不到连接而直接发邮件给maintainer,也就是你,当然,这个功能是可以取消的。