Docbook介绍

目录

1. 什么是Docbook
1.1. Docbook出现的背景
1.2. Docbook是什么
1.2.1. 截图说明Docbook的:一种(xml)格式输入,多种(html,htmls,chm,pdf,txt,rtf等等)格式输出
1.2.1.1. Docbook的一种输入:xml源码(文件)
1.2.1.2. Docbook的多种输出:HTML,HTMLs,PDF,CHM,RTF,TXT,WEBHELP等格式
2. 我为何选择Docbook

1. 什么是Docbook

1.1. Docbook出现的背景

想要了解Docbook是啥之前,需要知道一下其出现的大概背景,这样才能更好的理解为何会有docbook,以及其到底是啥。

随着计算机发展,有很多专业的书籍,技术文章等,需要发布。

这句话需要解释一下:

  • 专业的书籍,技术文章

    此处所说的书籍book和文章article,主要指的是和计算机相关的

    当然后面也会提到,docbook的应用,不仅仅局限于发布计算机相关的书籍和文章。

    即,其他专业,方向的书籍和文章等,也都可以通过docbook发布。

  • 发布

    此处的发布,主要包括两种,一种是在线Online的,一种是离线的Offline的。

    在线的,多指的是文章通过HTML等网页形式,可以在线浏览。

    离线的,也可以是将HTML网页下载下来留作本地阅读,更多的时候指的是,发布为PDF,CHM等格式,方便本地打开对应的文件,阅读该书籍或文章。

而对于各种书籍和文章的发布,由于没有统一的系统支持,导致想要发布多种格式,多人同时编辑同一份文档等情况的时候,之前的直接编辑生成相应文档的方法,就显得力不从心了。

所以才会有Docbook这种东西出现。其统一规划了(尤其是计算机类的)书籍所需要的“单词”,以及规定了“单词”之间的关系,

作为文档发布者,按照其规定,写好相应的源码

之后,有其他第三方(多数是开源的,免费的)工具,实现格式的定义,再转换为多种格式。

而在写源码期间,由于是直接写的xml或sgml等文件,属于文本类的文件,所以可以很方便的实现版本的控制,由此实现了Docbok的优点

1.2. Docbook是什么

根据Docook官网的解释,Docbook是一种schema。

schema,中文一般翻译为模式,但是如此解释,还是很抽象,很难理解。

[提示] 关于Schema

此处,可以简单的将Docbook理解为,类似于某种语言,比如英语。

英语,包括了对应的单词,词汇,以及对应的语法,规定了单词和词汇之间的关系,如何使用它们才是正确的。

对应的Docbook,也规定了一堆基本的单词和相应的语法

  1. Docbook中的单词 == 元素(Element)

    Docbook中的单词,被称为元素(elment),比如最常见的book,chapter,section等。

  2. Docbook的中语法 == 用其他语言(Relax NG/SGML/XML DTDs/W3C XML Schema)来解释

    Docbook中各个元素之间的关系,是Docbook规定好的。

    此所谓的规定,就是用某种方法,解释出来,并且要解释的清楚易懂。

    而直接用文字去描述的话,比如book下面可以嵌套多个chapter,chapter下面可以有多个section等,

    首先真容易把Docbook的人累死,因为单纯用文字描述清楚如此复杂的关系,真的需要太多文字的解释。

    其次,用纯文字描述,语义上不是足够明确。

    而计算机领域内,有对应的,专门用于描述,类似于Docbook中的各个“单词”之间的关系的语言。

    而Docbook就是采用他们,来解释清楚,Docbook中有哪些元素,以及这些元素之间的关系又是啥样的。

    目前已经实现了的,包括Relax NG,SGML,XML DTDs,W3C XML Schema

    通过如此描述,可以简介而精确的描述出Docbook的内容,即有哪些元素和元素之间的关系。

    [提示] 到底这些描述语言,比如DTD,XML Schema等,都是啥样子的

    关于到底这些描述语言,都长的啥样子的,都是如何工作的,可以去看:DTD vs XML Schema

    看完后,就可以大概的了解到,这些描述语言,是怎么回事了。

    而对于具体的更多的描述语言的细节,作为Docbook使用者来说,我们可以不必太关心。

    我们需要关心的是,docbook中有哪些元素,以及他们之间的关系。然后如何去正确的使用它们。

所以,简单总结可以理解为:

Docbook是一种模式,其规定了包括哪些元素以及这些元素之间的关系。

而包含的元素以及元素之间的关系,是用对应的Schema Language去描述的。

目前已经Docbook实现了的Schema Language有:Relax NG,SGML,XML DTDs,W3C XML Schema

Docbook(虽然不仅仅只支持这些,但是)更加适用于计算机(软件和硬件)相关的书籍和文章。

Docbook的<=4.5的版本,很多都是用SGML语言书写Docbook源码的,现在已不再推荐。

Docbook最新版本是5.0。推荐使用XML语言书写Docbook的源码。

1.2.1. 截图说明Docbook的:一种(xml)格式输入,多种(html,htmls,chm,pdf,txt,rtf等等)格式输出

第 1 节 “什么是Docbook”中虽然用文字解释了什么是Docbook,但是还是不够直观。

所以,此处专门通过截图来给不熟悉的人具体解释解释,Docbook长啥样,以及什么是一种输入,多种输出。

1.2.1.1. Docbook的一种输入:xml源码(文件)

Docbook的xml源码,就是常见的xml文件。

比如图 1 “截图举例:Docbook的XML源码”中的这段Docbook的xml源码,就是很常见的xml文件而已。

图 1. 截图举例:Docbook的XML源码

截图举例:Docbook的XML源码
截图举例:Docbook的XML源码

1.2.1.2. Docbook的多种输出:HTML,HTMLs,PDF,CHM,RTF,TXT,WEBHELP等格式

上述的图 1 “截图举例:Docbook的XML源码”,可以通过工具,将其转换为多种输出格式。

我目前暂时只实现了其中的7种格式:

图 2. 截图举例:Docbook的可以生成多种格式

截图举例:Docbook的可以生成多种格式

下面分别简单介绍一下每种格式:

其他docbook还可以生成其他格式,比如website,slide,roundtrip,manpage,xhtml,epub,javadoc,eclipse help等,此处暂时没有去弄而已。

通过上述截图的介绍,相信即使不熟悉的人,也大概知道docbook是个什么东西了。