Upload
li-jiansheng
View
382
Download
0
Embed Size (px)
DESCRIPTION
一份关于如何使用Docbook的介绍。
Citation preview
利用DocBook(XML)来写作!
就我所知道的那么一滴
李 建盛
二零零九年七月十二日
1.0
章程
2 / 32
介绍什么是DocBook?准备环境开始写作关于DocBook元素、DocBook XSL的一些实例资源列表+Questions?
Introduction
3 / 32
从概念、历史、特征等来述说,目的使大家有一个笼统的认识.
Introduction
什么是DocBook?
Introduction 4 / 32
• 一套用SGML或XML来书写结构化文档的系统!• 主要目的是对计算机技术相关文档和书籍的支持,当然
也包含一些其它的领域。• 除出版物之外也对web页面有很好的支持,甚至是演示
文稿。• 背后有很多、很强大的free/opensource工具的支持。• 有很多用户和开发者的支持!
历史
Introduction 5 / 32
• 由HaL Computer Systems and O'Reilly & Associates在1991年联合公布和开发
• 稍后的发展由许多公司共同开发:如SUN,HP,DEC等.• 目前由OASIS1在维护,版本为5.0
谁在使用/开发/支持DocBook?
Introduction 6 / 32
那些商业公司在如何使用,我们不得而知。以下是较知名的社区:
• Linux Documentation Project• GNOME Documentation Project• RedHat• SuSE• http://docs.kde.org• .......• .......• 也许有一天会加上"RedFlag"这个响亮的名字!
DocBook 的优点
Introduction 7 / 32
• 拥有非常棒 社区用户和开发者们• 容易定制和扩展现有的样式定义• 有很多优秀的开源和自由软件工具的支持• 多种格式的输出,包括:
• HTML• HTML Help• Java Help• man pages• MIF (Adobe FrameMaker)• PDF• PostScript• RTF (Microsoft)• TeX
DocBook 的优点 (Continued)
Introduction 8 / 32
• Text• XHTML• XSL Formatting Objects (FO)
环境准备
9 / 32
工欲善其事,必先利其器!
环境准备
XML编辑器
环境准备 10 / 32
Emacs with psgml Emacs加上 psgml2模式
vim with macros Vim3和 macros4加速。。。
Bluefish,gedit+publishplugin,kedit.......
图形的下 的文本工具
明显与所想即所得的距离 所谓之所见即所得,XMLmind XMLEditor
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
XSL Stylesheets
环境准备 13 / 32
• XSLT 可以将 DocBook XML 转换为下列格式:• HTML• HTML Help (for Windows Help)• Java Help• XHTML• XSL Formatting Objects (FO)
• 额外的工具可以将FO文件转换为PDF, PostScript等
DSSSL
环境准备 14 / 32
Document Style Semantics and Specification Language的缩写
• DSSSL 可以将DocBook SGML 转换为下列格式的文档:• HTML• MIF• RTF• TeX
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
XSLT processor - Saxon
环境准备 16 / 32
• http://saxon.sourceforge.net/• Java 实现• 由Michael Kay开发• 支持许多XSLT实验性的特性.
java com.icl.saxon.StyleSheet inputfile stylesheet
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
XSL-FO processor
环境准备 18 / 32
apache FOP
• http://xmlgraphics.apache.org/fop/• Java实现.• Apache基金会所开发。• 0.95版本后对中文支持很好.
fop -fo filename.fo -pdf filename.pdf
xsl运行图
环境准备 19 / 32
原理简介
环境准备 20 / 32
• 众所周知,XML能够很好表达结构化的数据。但是其无法表达它的表达形式。
• 那么将外观表现交给扩展样式表语言XSL来处理,得到格式化的对象
• 这个Formatting Object仍然是XML文件,但是多了许多和表现有关的属性。
• 然后FO再按照某种格式的文档输出,如PDF、PS可打印,web页面、RTF,htmlhelp,javahelp,manpage等等
让我们开始愉快的写作之旅吧!
21 / 32
我们简要的分别写一个书和文章的例子,来体验DocBook。
让我们开始愉快的写作之旅吧!
书
让我们开始愉快的写作之旅吧! 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>
书 (Continued)
让我们开始愉快的写作之旅吧! 23 / 32
<chapter>...</chapter> <chapter>...</chapter> <appendix>...</appendix> <appendix>...</appendix></book>
基本的书的元素就已成形,请看pdf或html输出。
文章
让我们开始愉快的写作之旅吧! 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>
文章 (Continued)
让我们开始愉快的写作之旅吧! 25 / 32
<sect2>...</sect2> </sect1> <sect1>...</sect1> <sect1>...</sect1> <sect1>...</sect1></article>
如何编译
让我们开始愉快的写作之旅吧! 26 / 32
最简单的形式莫过于直接像上述那样直接执行命令即可请看实例xml-format.sh但是如果是多人合作了呢? “Makefile” 是最好的办法,
DocBook元素和其XSL语言的实例
27 / 32
以解决孙国栋的问题为主
DocBook元素和其XSL语言的实例
DobBook元素
DocBook元素和其XSL语言的实例 28 / 32
主要以我已经写就的文档为参考
• 目录、索引、引用等• 等宽字体的支持• 图片和表格• 插入代码等•
除XML以外的利用DocBook写作的形式
29 / 32
除XML以外的利用DocBook写作的形式
SGML + OpenJade
除XML以外的利用DocBook写作的形式 30 / 32
请参考中文资料DocBook 助你完成传世之作6
6 http://www.worldhello.net/doc/docbook_howto/
参考资料
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
Q&A
32 / 32
Any questions?