目录
想要了解Docbook是啥之前,需要知道一下其出现的大概背景,这样才能更好的理解为何会有docbook,以及其到底是啥。
随着计算机发展,有很多专业的书籍,技术文章等,需要发布。
这句话需要解释一下:
此处所说的书籍book和文章article,主要指的是和计算机相关的
当然后面也会提到,docbook的应用,不仅仅局限于发布计算机相关的书籍和文章。
即,其他专业,方向的书籍和文章等,也都可以通过docbook发布。
此处的发布,主要包括两种,一种是在线Online的,一种是离线的Offline的。
在线的,多指的是文章通过HTML等网页形式,可以在线浏览。
离线的,也可以是将HTML网页下载下来留作本地阅读,更多的时候指的是,发布为PDF,CHM等格式,方便本地打开对应的文件,阅读该书籍或文章。
而对于各种书籍和文章的发布,由于没有统一的系统支持,导致想要发布多种格式,多人同时编辑同一份文档等情况的时候,之前的直接编辑生成相应文档的方法,就显得力不从心了。
所以才会有Docbook这种东西出现。其统一规划了(尤其是计算机类的)书籍所需要的“单词”,以及规定了“单词”之间的关系,
作为文档发布者,按照其规定,写好相应的源码
之后,有其他第三方(多数是开源的,免费的)工具,实现格式的定义,再转换为多种格式。
而在写源码期间,由于是直接写的xml或sgml等文件,属于文本类的文件,所以可以很方便的实现版本的控制,由此实现了Docbok的优点
根据Docook官网的解释,Docbook是一种schema。
schema,中文一般翻译为模式,但是如此解释,还是很抽象,很难理解。
关于Schema | |
---|---|
|
此处,可以简单的将Docbook理解为,类似于某种语言,比如英语。
英语,包括了对应的单词,词汇,以及对应的语法,规定了单词和词汇之间的关系,如何使用它们才是正确的。
对应的Docbook,也规定了一堆基本的单词和相应的语法。
Docbook中的单词,被称为元素(elment),比如最常见的book,chapter,section等。
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 节 “什么是Docbook”中虽然用文字解释了什么是Docbook,但是还是不够直观。
所以,此处专门通过截图来给不熟悉的人具体解释解释,Docbook长啥样,以及什么是一种输入,多种输出。
上述的图 1 “截图举例:Docbook的XML源码”,可以通过工具,将其转换为多种输出格式。
我目前暂时只实现了其中的7种格式:
下面分别简单介绍一下每种格式:
单一HTML网页
包含了所有的内容
图 1 “截图举例:Docbook的XML源码”所生成的HTML网页的效果:
多个HTML页面
每个章(甚至小节)都是一个单个的HTML网页
图 1 “截图举例:Docbook的XML源码”所生成的HTMLs网页的效果:
PDF文档
图 1 “截图举例:Docbook的XML源码”所生成的PDF的效果:
docbook对应的是htmlhelp类型
生成的是微软的chm帮助文件
图 1 “截图举例:Docbook的XML源码”所生成的CHM的效果:
纯文本格式
是用工具从HTML网页转换出来的
图 1 “截图举例:Docbook的XML源码”所生成的TXT的效果:
RTF文档,和word兼容
可以用微软的word软件打开
图 1 “截图举例:Docbook的XML源码”所生成的RTF的效果:
Webhelp格式
图 1 “截图举例:Docbook的XML源码”所生成的WEBHELP的效果:
其他docbook还可以生成其他格式,比如website,slide,roundtrip,manpage,xhtml,epub,javadoc,eclipse help等,此处暂时没有去弄而已。
通过上述截图的介绍,相信即使不熟悉的人,也大概知道docbook是个什么东西了。