简介
Skribe 是一个基于 Scheme 的文档处理系统。它主要有两个优点:
- Skribe 的语法和 HTML 很像,所以学习使用 Skribe 非常容易。
- Skribe 并不是像 HTML 那样的标记语言,而是真正的程序设计语言,因此 可以轻而易举地使用各种复杂机制,比如动态生成文档的内容等。
另外,由 Skribe 写成的文档可以很轻松地导出为 HTML 或者是 TeX 等格式。 Skribe 非常适合于写技术报告、API 文档等类型的文档。
获取
在它的主页上可以下载到最新版本的 Skribe 。Skribe 可以用 Bigloo 或者 STklos 来编译。或者,如果你使用 Debian 系统,可以直接使用 apt-get 进行 安装:
apt-get install skribe skribe-doc skribe-el skribe-example
装好之后就拥有了 skribe 系统以及它的文档和例子了。并且,还有一个用于 Emacs 的方便的编辑 Skribe 文档的 mode 。
一个例子
Skribe 的强大之处在于它能利用 Scheme 的强大之处。这几天在看 SICP 正好 看到那个八皇后的问题。可惜得出的结果是一个表的形式,不是很直观,于是我 就决定用 Skribe 生成一个表格来显示结果。
这里是 N 皇后问题的求解代码,我把它放在 nqueen.skr
里面:
然后,是生成表格的文档,我放在 nqueen.skb
里面:
之后我将它转换为 HTML 文档:
skribe nqueen.skb -o nqueen.html
就是这个页面。很短的代码,生成了很大的一个文档,包含了, 1-8
皇后问题
的解的直观显示。事实上,我只需要改动一个数字,就可以生成棋盘更大的情况
的时候的解。