您的位置:首页 > 其它

使用 Emacs-wiki 来做笔记

2014-01-21 13:09 239 查看
使用 Emacs-wiki 来做笔记

什么是 Wiki

中国人叫它维基,但很难描述 wiki 是什么。
Wiki 内容包罗万象,无所不有。究其广泛受人欢迎的原因主要有:
text markup, 它的用法完全是文本操作,不懂 HTML 没有关系,识字就行,按照 WikiMarkup 的规则就能创造出结构鲜明的网页。

人人都有编辑的权利,体现出一种共享开放。

格式简单,容易维护

Emacs-wiki

我曾经用 HTML 来做笔记,但十分讨厌去增加各种 HTML 代码(虽然已经把各种代码映射到了不同的按键组合上)。后来我找到了 Emacs-wiki,它的纯文本操作实在是太方便了。
如果你熟悉 Emacs,经常想写些东西,又苦于没有很好的记录方式的话,来试试 Emacs-wiki 吧。
用过 Emacs 的人都知道 Emacs 超强的编辑能力靠的是各种 mode。 Emacs-wiki 是一个 Wiki-mode,在这个 mode 下,可以用快捷键 C-c C-v 来切换不同的 wiki 项目,可以用 C-c C-t 来将编辑的文本文件转化成 HTML 代码,甚至可以用 C-c C-h 调用浏览器查看当前的已经转化成 HTML 的网页。 更多的快捷键请参看 Emacs
中的文档(进入 emacs-wiki-mode,键入 C-h m)
配置 .emacs 文件

下载 Emacs-wiki

emacs-wiki 的 lisp 包在 http://www.mwolson.org/static/dist/emacs-wiki/ 可以得到。
安装 Emacs-wiki

将 emacs-wiki 文件夹放入自己的load-path中。把下列代码放到自己的 .emacs 中。
(add-to-list 'load-path "your/emacs/wiki/directory")
(require 'emacs-wiki)
完成后便可以重启 Emacs, 键入
M-x emacs-wiki-find-file RET RET 就开始编辑自己的 WelcomePage 。
组织自己的 Wiki

再配置 .emacs

Emacs-wiki 支持多 Wiki 项目。所以我们可以把想写的东西分门别类(但是注意,多 Wiki 项目中的各项目除了在相互应用外,彼此是没有联系的)。然后在 .emacs 中加入和下面类似的代码,开始组织自己的 Wiki。
(setq emacs-wiki-projects
`(("ProgrammingWiki" .
((emacs-wiki-directories . ("~/wiki/programming"))
(emacs-wiki-project-server-prefix . "../programming")
(emacs-wiki-publishing-directory
. "~/personal-site/programming")))
("SystemWiki" .
((emacs-wiki-directories . ("~/wiki/system"))
(emacs-wiki-project-server-prefix . "../system")
(emacs-wiki-publishing-directory
. "~/personal-site/system")))
))

emacs-wiki-directories 就是存放自己文本文件的地方。那么有几类就应该有几个文件夹咯。

emacs-wiki-project-server-prefix 是为了在不同项目之间引用的时候,能够正确地找到文件路径而设计的一个变量。比如我在 SystemWiki 项目中的某个文本想引用 ProgrammingWiki 的 PythonChallenge 。就可以直接写成 ProgrammingWiki#PythonChallenge 。在转换成 HTML 的时候会变成 ../programming/PythonChallenge.html ,从而保证链接的正确。 这里可以使用绝对路径 。

emacs-wiki-publishing-directory 是转化后 HTML 代码存放的地方。

关于 Wiki projects 名字的说明 : project 的名字最好使用大小写混合的名称。这样在不同项目间引用的时候能够方便地直接键入文本而不需要使用另外的符号。
Tips

在 .emacs 中加入下面的代码,获得更多方便的功能
(add-hook 'emacs-wiki-mode-hook
(lambda ()
(define-key emacs-wiki-mode-map (kbd "C-c C-h") 'emacs-wiki-preview-html)
(define-key emacs-wiki-mode-map (kbd "C-c C-c") 'emacs-wiki-preview-source)))
(defun emacs-wiki-preview-source ()
(interactive)
(emacs-wiki-publish-this-page)
(find-file (emacs-wiki-published-file)))
(defun emacs-wiki-preview-html ()
(interactive)
(emacs-wiki-publish-this-page)
(browse-url (emacs-wiki-published-file)))
现在能够在编辑过程中,按 C-c C-h 调用浏览器查看生成的 HTML 网页,按 C-c C-c 查看生成的 HTML 代码。
基本的编辑规则

下面列举了 Emacs-wiki 文本规则:
创建标题

#title 这个是当前页的一级标题

* 这个是二级标题

** 这个是三级标题

*** 这个是四级标题

创建列表

可以用 - 来表示无序列表,比如
- 无序列表项目 1
- 无序列表项目 2(注意 - 后面有个空格)

可以用 1. 2. 3. 来表示有序列表,比如

1. 有序列表项目 1
2. 有序列表项目 2

目前没有二级链表但是可以用如下方式实现

- 一级列表 1
<ul>
<li>二级列表 1
<li>二级列表 2
</ul>
hr 分割线

简单地用----来分割即可
文字上的修饰

*这个是强调***加强的强调*****最强的强调***
_下划线_=原文表示=<verbatim>用这个可以括起一块文本来,类似于上面的等号</verbatim>分段

用一个空行把段落分开即可。
表格

Double bars Separate header fields

Single bars Separate body fields

Here are more body fields

Triple bars Separate footer fields
产生以上表格的文本如下:
Double bars || Separate header fields
Single bars | Separate body fields
Here are more | body fields
Triple bars ||| Separate footer fields
做引用

有很多可以做引用的格式最常见的有一下几个
<example> 引用代码
<pre> 和上面类似
<verse> 引用诗歌
<verbatim> 可以避免一些有 < > 的标记被当作 HTML 代码
几个功能差不多,但是有差别。比如我要显示 <verbatim> ,直接写的话会被当作 HTML 代码而不显示出来。这个时候就需要用 <example> ,或者 <verbatim> 。但如果用 <pre> 或者 = 就不行。
做脚注

在想添脚注的地方写上 [1]
然后随意在最后添上如下文本:
footnotes:

[1] 这里写上脚注的内容,wiki会自动把这两个做成 anchor。

做链接

Emacs-wiki 的自动链接

Wiki 中能够自动把大小写混杂的单词作为一个链接,比如 MyEmacs PythonChallenge。并且在 Emacs 中,默认把一个存在的链接显示为绿色,不存在的链接显示为红色(颜色还和设置有关系)。这样的好处在于能够随时方便地插入一个链接引用。
但不好的地方也是有的,比如我想写一份关于 Fvwm 的记录,提到了 FvwmPager FvwmButton 它也会自动地把它当作链接。这时候可以在前面加上 <nop> <verbatim> 或者用 <verbatim> <verbatim> 来取消链接。
那么如果我的某个页面就只是一个单词呢?比如 Python,这时候可以用 [[Python]] 这样的格式来告诉 Emacs 这个也是一个 Wiki 页面的名字。
Anchor

Anchor 在 Emacs-wiki 中十分方便易用直接用 WikiName#anchor 。下面的例子演示 anchor 的用法:
若干文字
.....
.....
#anchor1
.....
.....
若干文字
这里是一个 anchor:WikiName#anchor1
为链接更改名字

做链接也可能给链接取名字,比如提及自己的主页,插图之类,我们可以用 [[Wiki链接][链接的描述]] 来实现。
做外部引用链接

想做外部 URL 的引用怎么办?可以这样
[[http://www.google.com][Google]]用图片来做链接

可用如下方式实现
[[http://www.lisperati.com][Emacslisp.png]] #这里的图片和文本在同一目录下,直接引用
[[EmacsImg-big.png][EmacsIng-small.png]]
不同 Wiki Projects 之间的链接

前面已经提到过了。
使用 Emacs-wiki 来做笔记

以上仅仅是 Emacs-wiki 的一个基本介绍,但我相信到这里你已经能够使用 Emacs 来组织起自己的知识 Wiki 了。如果感觉不够,Emacs-wiki 有一个文档,地址是:
PDF: http://www.mwolson.org/static/doc/emacs-wiki.pdf

HTML (single file): http://www.mwolson.org/static/doc/emacs-wiki.html

HTML (multiple files): http://www.mwolson.org/static/doc/emacs-wiki/ 上面有更详细的说明,可以作为一份参考手册保留。

更多信息可以查看 http://www.mwolson.org/projects/EmacsWiki.html

本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/li_junsong/archive/2010/03/02/5339682.aspx
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: