Skribe

简介

Skribe 是一个基于 Scheme 的文档处理系统。它主要有两个优点:

  1. Skribe 的语法和 HTML 很像,所以学习使用 Skribe 非常容易。
  2. 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 皇后问题 的解的直观显示。事实上,我只需要改动一个数字,就可以生成棋盘更大的情况 的时候的解。