在FreeBSD下面搭建DocBook创作环境

Dryice Liu


Table of Contents
1. 从port安装软件
2. 配置
环境变量
Emacs的设置
3. 使用
编辑
编译
4. 其它
文档
如果你是Emacs老手
psgml mode
关于本文

Chapter 1. 从port安装软件

感谢FreeBSD的Port Dependance机制,我们只要安装三个port就可以把必要的软件都装齐。(实际只需要两个)


Chapter 2. 配置

环境变量

我们需要告诉各种程序到哪里去找DTD,这就要输出SGML_CATALOG_FILESXML_CATALOG_FILES两个变量。我用的是bash,就把这两行加到我的~/.bashrc里面去:

export SGML_CATALOG_FILES=/usr/local/share/sgml/catalog
export XML_CATALOG_FILES=/usr/local/share/xml/catalog.ports

Emacs的设置

如果你没用过Emacs,没关系,它支持菜单,支持鼠标定位,就把它当Windows下面的傻瓜程序用好了,很容易上手的。

为了要Emacs很好的支持DocBook的编辑,你需要在你的HOME目录下建一个.emacs文件,里面写上这样两行:

(require 'psgml-startup)
(setq sgml-insert-missing-element-comment nil)

Chapter 3. 使用

让我们来写一个HelloWorld,看看该怎么使用这个环境。这是源文件

<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook V4.1//EN">
<book>
  <bookinfo>
	<title>Hello, World!
</title>
	<author>
	  <firstname>Dryice</firstname>
	  <surname>Liu</surname>
	</author>
  </bookinfo>
  <chapter>
	<title>Hello, World!</title>
	<para>Hello, World! This is my first DocBook book:)</para>
  </chapter>
</book>

编辑

先别急着把code拷到你的文本编辑器里,让我们来一步一步看看怎么使用这个编辑环境.用Emacs创建一个新文件hello.sgml,输入文件头:

<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook V4.1//EN">

现在按 Ctrl+c-Ctrl+e, Emacs会提示我们输入tag,好,输入book,可以看到Emacs把start-tag和 end-tag都输入好了。现在按 Ctrl+c-Ctrl+t, Emacs会在另一个窗口里提示我们当前位置有哪些tag是可 以输入的。输了一会儿,可以按Ctrl+c-Ctrl+v来检查一下有没有语法错误。这时Emacs会提示我们用来语 法检查的命令,不用管,用默认的就好了。如果有错误,Emacs会在另一个窗 口里面给出提示,把光标移到错误提示上,按回车键,另一个窗口中的 源文件就会自动定位到出错的地方。

还有许多功能,可以 Ctrl+h-m看一下。


编译

这个比较简单,只要找个shell打

jade -E 0 -t sgml -V nochunks -d /usr/local/share/sgml/docbook/dsssl/modular/html/docbook.dsl hello.sgml > hello.html

就可以了


Chapter 4. 其它

文档

DocBook: The Definitive Guide 可 以说是DocBook的圣经,在ports里面也有了,在/usr/ports/textproc/docbook-tdg


如果你是Emacs老手

如果你是Emacs老手,那还可以进行一些定制。


psgml mode

Port 里面的psgml mode稍微有点老,可以去http://www.lysator.liu.se/projects/about_psgml.html找个新的回来