Docbook介绍

本文主要介绍一下Docbook是什么,下一篇将给出一个最简单的Docbook文档做为例子。

Docbook提供了整个书写结构化文档的体系,它使用SGML/XML定义了一系列文档元素,并可以利用工具把原始的文档源文件转换成各种文档格式。它最适合用来书写计算机文档、论文。很多开源软件项目都使用Docbook来写自己的文档。在我看来,使用Docbook写文档的好处有以下几点:

  • 内容与格式分离

    我们用Word写文档时,除了书写文档内容之外,还要经常对文档的样式进行排版。我们都知道,排版很是费时费力,还经常容易出错。

    而使用Docbook书写文档,你只需要专注于文档的内容。文章的内容和格式是分离的。Docbook定义了诸如章节(chapter)、段落(para)、表格(table)这些文档元素,但如何显示这些元素,则由样式表(XSL)来控制,你不必在文档中嵌入排版信息。

    这也意味着,你不能用”所见即所得”的方式来编辑你的文档了。不过,你很快就会喜欢上内容和格式分离的,因为这不仅节省了排版的时间、也使文档样式更为统一。另外,使用程序自动处理文档也变得更加容易了。

  • 多种文件格式输出

    使用Docbook书写文档,你只需要书写文档一次,就能够以多种文件格式输出。有很多免费的工具可以将Docbook文档转换成HTML、PDF,以及其它各种文件格式。

  • 便于版本管理

    这也是我选择Docbook的主要原因之一。因为Docbook的文档源文件是文本文件,因此可以方便的使用cvs, subversion, git等版本管理工具进行版本管理。

    在多人协作编写文档时,如果没有版本管理的功能,你很难知道别人对文档做了哪些修改,更别说回溯文档的历史。在公司里,一般可以通过约定规则的方法来控制冲突,即事先约定好,你只允许改哪几章,他只能改哪几章。但对开源世界的”大集市”开发模式来说,无法通过约定的方法来避免冲突,因此对文档的版本管理就显得非常重要。这就是为什么很多开源项目的文档都使用Docbook的原因。

  • 方便阅读

    阅读word文档,需要你安装了Macrosoft Word;阅读PDF文档,需要安装PDF阅读器。设想十年以后,当Word不再维护,而你又需要阅读一个十年前使用Word写就的文档,会怎么样?是的,你读不了,因为Word文档是二进制格式的,你必须使用特殊的程序才能阅读、编辑。

    但Docbook文档就不同了,你只要使用一个再普通不过的文本编辑器,就可以阅读、编辑Docbook的文档,因为它只是一个普通的文本文件。

  • 多平台支持

    在Windows上你可以使用Word来察看、编辑文档(不管用的是正版,或是盗版),但在Linux下怎么看Word文档呢?谢天谢地,现在有了Open Office。在以前,Linux下是无法察看Word文档的,因为它是一个二进制文件。

    Docbook是文本文档,因此,无论你是在windows下还是Linux下,都可以阅读、书写文档。而Docbook的转换工具大多由Java编写,也支持跨平台运行。这样一来,你可以在多种操作系统平台下使用统一的方式来管理你的文档了。

  • 多语言支持

    Docbook使用UTF-8字符集,因此,在文档中可以使用多国语言的字符集。这对国际化合作的项目来说很重要。

正因为Docbook有这么多的优点,所以我才将我的vim使用进阶系列文章使用Docbook重新整理了一遍(因为之前的Word文档因意外被损坏,无法打开)。今后我的文档也都会使用Docbook书写。就连博客上的文章,大部分也是先用Docbook书写,然后转换成HTML再发上来的。

如果你也对Docbook写文档有兴趣,可以在网上搜索一下相关的文章。我会陆续写一些Docbook的文章发表在Easwy的博客,欢迎交流。

“Docbook介绍”的6个回复

  1. james :“DocBook文档是纯文本格式的文档,可以类似代码管理一样进行文档的版本控制。”
    操蛋嘛,你的文档中就没有图片吗?技术文档中的图片占很大的篇幅的。你倒是用纯文本格式将图片保存起来给我看看。
    很明显的一个规律,那些用DocBook撰写的文档里面一般很少有图片的,顶多也是几个icon。
    Linux的Howto文档全是文本的,没有图片的,绝,是好处吗?我看不见得。
    Internet RFC 全是文本的,想弄个图片,要用ASCII码来表示,不伦不类,象个太监。
    全他妈的是那些UNIX疯子起的骚,企图用字符来表示所有的事情,可惜东西做得不好,还整天在这里卖弄,歇了吧。

    那请问你做出什么惊天动地的高级货色了?

  2. Subversion1.6 号称用DocBook来做文档,你去看看他们转换的PDF文档中的图片,通篇文档不到10个图片,图片效果却惨不忍睹,http://svnbook.red-bean.com/nightly/en/svn-book.pdf

  3. “DocBook文档是纯文本格式的文档,可以类似代码管理一样进行文档的版本控制。”

    操蛋嘛,你的文档中就没有图片吗?技术文档中的图片占很大的篇幅的。你倒是用纯文本格式将图片保存起来给我看看。

    很明显的一个规律,那些用DocBook撰写的文档里面一般很少有图片的,顶多也是几个icon。

    Linux的Howto文档全是文本的,没有图片的,绝,是好处吗?我看不见得。

    Internet RFC 全是文本的,想弄个图片,要用ASCII码来表示,不伦不类,象个太监。

    全他妈的是那些UNIX疯子起的骚,企图用字符来表示所有的事情,可惜东西做得不好,还整天在这里卖弄,歇了吧。

  4. @Len
    在docbook 5.0里,docbook编译环境的搭建要简单很多。
    xml标记过多确实比较烦,不过习惯以后,似乎也不是大问题。在vim里,可以使用xmledit插件来自动封闭标签。

    我看了一下reStructureText,文法比较简单,功能也很完善,对于轻量级文档比较合适。
    不过对于书籍、论文,以及多人合作的项目文档,还是用docbook比较好。
    另外,reStructureText似乎目前只能生成HTML格式文档,不过相信把它转成其它文档格式倒也不是难事。

  5. Docbook最早我也被它吸引过,它有许多文中所述的优点,但是使用上有点儿不便。

    1、处理工具集配置上比较麻烦,文档样式定义文件啦,xml处理工具啦,完整的话需要一大堆设置。

    2、因为是基于xml格式,可以说这是对计算机友好,对人不一定友好。一大堆标记要写,还要注意封闭标签,虽然借助于vim,可以减轻这部分的工作。

    对于轻量级的文档,我觉得reStructureText或许也是一种好的选择。

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注