Docbook intr

32
利用DocBook(XML)来写作! 就我所知道的那么一滴 李 建盛 二零零九年七月十二日 1.0

description

一份关于如何使用Docbook的介绍。

Transcript of Docbook intr

Page 1: Docbook intr

利用DocBook(XML)来写作!

就我所知道的那么一滴

李 建盛

二零零九年七月十二日

1.0

Page 2: Docbook intr

章程

2 / 32

介绍什么是DocBook?准备环境开始写作关于DocBook元素、DocBook XSL的一些实例资源列表+Questions?

Page 3: Docbook intr

Introduction

3 / 32

从概念、历史、特征等来述说,目的使大家有一个笼统的认识.

Introduction

Page 4: Docbook intr

什么是DocBook?

Introduction 4 / 32

• 一套用SGML或XML来书写结构化文档的系统!• 主要目的是对计算机技术相关文档和书籍的支持,当然

也包含一些其它的领域。• 除出版物之外也对web页面有很好的支持,甚至是演示

文稿。• 背后有很多、很强大的free/opensource工具的支持。• 有很多用户和开发者的支持!

Page 5: Docbook intr

历史

Introduction 5 / 32

• 由HaL Computer Systems and O'Reilly & Associates在1991年联合公布和开发

• 稍后的发展由许多公司共同开发:如SUN,HP,DEC等.• 目前由OASIS1在维护,版本为5.0

Page 6: Docbook intr

谁在使用/开发/支持DocBook?

Introduction 6 / 32

那些商业公司在如何使用,我们不得而知。以下是较知名的社区:

• Linux Documentation Project• GNOME Documentation Project• RedHat• SuSE• http://docs.kde.org• .......• .......• 也许有一天会加上"RedFlag"这个响亮的名字!

Page 7: Docbook intr

DocBook 的优点

Introduction 7 / 32

• 拥有非常棒 社区用户和开发者们• 容易定制和扩展现有的样式定义• 有很多优秀的开源和自由软件工具的支持• 多种格式的输出,包括:

• HTML• HTML Help• Java Help• man pages• MIF (Adobe FrameMaker)• PDF• PostScript• RTF (Microsoft)• TeX

Page 8: Docbook intr

DocBook 的优点 (Continued)

Introduction 8 / 32

• Text• XHTML• XSL Formatting Objects (FO)

Page 9: Docbook intr

环境准备

9 / 32

工欲善其事,必先利其器!

环境准备

Page 10: Docbook intr

XML编辑器

环境准备 10 / 32

Emacs with psgml Emacs加上 psgml2模式

vim with macros Vim3和 macros4加速。。。

Bluefish,gedit+publishplugin,kedit.......

图形的下 的文本工具

明显与所想即所得的距离 所谓之所见即所得,XMLmind XMLEditor

Page 11: Docbook intr

DocBook DTD

环境准备 11 / 32

到DTD的维护网站5下载相应的版本,当然这是每个发行版中必备的,我们的服务器产品和桌面产品默认都带了dtd文件。LSB标准的路径是/usr/share/sgml/docbook/

5 http://www.oasis-open.org/docbook/xml/5.0b5/docbook-5.0b5.tar.gz

Page 12: Docbook intr

DocBook XML XSL

环境准备 12 / 32

由Norman Walsh所维护有两种形式

• XSL• DSSSL到[email protected]上下载.请参考我下载的文件

Page 13: Docbook intr

XSL Stylesheets

环境准备 13 / 32

• XSLT 可以将 DocBook XML 转换为下列格式:• HTML• HTML Help (for Windows Help)• Java Help• XHTML• XSL Formatting Objects (FO)

• 额外的工具可以将FO文件转换为PDF, PostScript等

Page 14: Docbook intr

DSSSL

环境准备 14 / 32

Document Style Semantics and Specification Language的缩写

• DSSSL 可以将DocBook SGML 转换为下列格式的文档:• HTML• MIF• RTF• TeX

Page 15: Docbook intr

XSLT processor - libxslt/xsltproc

环境准备 15 / 32

• http://xmlsoft.org/XSLT/• C 实现.• 由来自RedHat的Daniel Veillard开发, 隶属于GNOME

Project• 由下列命令实现:

• xsltproc - XSLT processor• xmllint - XML 有效性和格式检验程序

• 非常 快• 依赖libxml2 和 libxslt用法:

xsltproc -o outputfile stylesheet inputfile

Page 16: Docbook intr

XSLT processor - Saxon

环境准备 16 / 32

• http://saxon.sourceforge.net/• Java 实现• 由Michael Kay开发• 支持许多XSLT实验性的特性.

java com.icl.saxon.StyleSheet inputfile stylesheet

Page 17: Docbook intr

XSLT processor - Xalan

环境准备 17 / 32

• http://xml.apache.org/• Java实现,也有C++的版本。• Apache基金会所开发。• 广泛应用于开源社区.

java org.apache.xml.xalan.xslt.Process -IN inputfile -XSL stylesheet -OUT outfile

Page 18: Docbook intr

XSL-FO processor

环境准备 18 / 32

apache FOP

• http://xmlgraphics.apache.org/fop/• Java实现.• Apache基金会所开发。• 0.95版本后对中文支持很好.

fop -fo filename.fo -pdf filename.pdf

Page 19: Docbook intr

xsl运行图

环境准备 19 / 32

Page 20: Docbook intr

原理简介

环境准备 20 / 32

• 众所周知,XML能够很好表达结构化的数据。但是其无法表达它的表达形式。

• 那么将外观表现交给扩展样式表语言XSL来处理,得到格式化的对象

• 这个Formatting Object仍然是XML文件,但是多了许多和表现有关的属性。

• 然后FO再按照某种格式的文档输出,如PDF、PS可打印,web页面、RTF,htmlhelp,javahelp,manpage等等

Page 21: Docbook intr

让我们开始愉快的写作之旅吧!

21 / 32

我们简要的分别写一个书和文章的例子,来体验DocBook。

让我们开始愉快的写作之旅吧!

Page 22: Docbook intr

让我们开始愉快的写作之旅吧! 22 / 32

简单的书的样例:examplebook.xml

<?xml version="1.0"?><book> <bookinfo> <title>23小时学会红旗linux操作系统</title> </bookinfo> <chapter> <title>第一章</title> <sect1> <title>第一节</title> <para>这是内容.</para> </sect1> <sect1>...</sect1> </chapter> <chapter>...</chapter>

Page 23: Docbook intr

书 (Continued)

让我们开始愉快的写作之旅吧! 23 / 32

<chapter>...</chapter> <chapter>...</chapter> <appendix>...</appendix> <appendix>...</appendix></book>

基本的书的元素就已成形,请看pdf或html输出。

Page 24: Docbook intr

文章

让我们开始愉快的写作之旅吧! 24 / 32

[<?xml version="1.0"?><article> <articleinfo> <title>文章样例</title> </articleinfo> <para>摘要性的介绍文字。</para> <sect1> <title>第一章</title> <para>这里添加内容</para> <sect2> <title>第一章的章节分支1</title> <para>你好!你是垃圾! </para> </sect2> <sect2>...</sect2>

Page 25: Docbook intr

文章 (Continued)

让我们开始愉快的写作之旅吧! 25 / 32

<sect2>...</sect2> </sect1> <sect1>...</sect1> <sect1>...</sect1> <sect1>...</sect1></article>

Page 26: Docbook intr

如何编译

让我们开始愉快的写作之旅吧! 26 / 32

最简单的形式莫过于直接像上述那样直接执行命令即可请看实例xml-format.sh但是如果是多人合作了呢? “Makefile” 是最好的办法,

Page 27: Docbook intr

DocBook元素和其XSL语言的实例

27 / 32

以解决孙国栋的问题为主

DocBook元素和其XSL语言的实例

Page 28: Docbook intr

DobBook元素

DocBook元素和其XSL语言的实例 28 / 32

主要以我已经写就的文档为参考

• 目录、索引、引用等• 等宽字体的支持• 图片和表格• 插入代码等•

Page 29: Docbook intr

除XML以外的利用DocBook写作的形式

29 / 32

除XML以外的利用DocBook写作的形式

Page 30: Docbook intr

SGML + OpenJade

除XML以外的利用DocBook写作的形式 30 / 32

请参考中文资料DocBook 助你完成传世之作6

6 http://www.worldhello.net/doc/docbook_howto/

Page 31: Docbook intr

参考资料

31 / 32

我从以下站点获得许多帮助

• http://www.ibm.com/developerworks/linux/library/x-reuseinfo1/index.html

• http://blog.sina.com.cn/s/blog_3ef2a82a0100davi.html###

推荐读物和链接:

• DocBook社区7

• 一篇讲解非常详细的演示文稿8

• DocBook XSL: The Complete Guide - 4th Edition9

• Publican官方站点10

Page 32: Docbook intr

Q&A

32 / 32

Any questions?