使用DocBook来编写日常/项目文档
我一直很痛恨写文档——注意,是文档,不是代码注释。倒不是因为我懒惰,而是因为有很大一个问题是,我不得不跟各种工具打交道。你知道的,我一向痛恨IDE侵入太强的工具,比如Word, 比如任何一款HTML编辑器。他们实际上都不是用来写文档的,某种意义上说,是用来排版的。在我写大段文档的时候,一边想,一边写,一边还要考虑排版,考虑在某处应该加粗,某处倾斜,某处应该加一个Notion, 某处又包含了一个样例。除非在心血来潮的情况下,否则我是绝不愿意排版的。Word排版头痛而又麻烦,候老先生花了10年才玩转,而我毕竟不是写文稿为生。
Word处理这一类的事情相当蹩脚——以我一个普通的文档作者,做完的文档我自己都不愿意看,并非是文字,而是自己排版出来的实在太糟糕。当涉及到计算机写作必要的example的时候,比如说,一段代码,代码中某处加入类似于1),2),3)的标记,然后下面写上此处标记的含义,用Word来做这个简直掉进深渊。
更为难受的是,我不知道怎么使用Word来多人共同写作,比如你写第一章,我写第二章。用Word只能你写你的,我写我的,然后Copy&Paste, 合并到一起……
版本管理系统对Word格式文件完全无法发挥作用,什么diff, compare, changeLog都不管用。
打开Word文件费时费力。
如上种种,是我这些年来文档编写对Word积累的一些恶气,直到发现DocBook(http://www.docbook.org), 这些恶气才得以发泄。简单地说,DocBook定义了一组方便文档写作(主要是计算机文档)的xml标签,比如book, chapter, section, example, programmelisting等等,然后定义了很多XSL来对这些文档进行转换,输出为不同格式的文件。目前,我使用的DocBook-XSL,能够输出为html, htmlhelp, xml-fo等格式,完全不需要了解任何排版知识,只需要编写纯粹的xml文档,就可以输出为格式优美专业的文档。就我所见,Spring, Hibernate, Tapestry等耳熟能详的开源项目都用它来组织文档。
我没有时间完整的了解所有的标签,实际上也用不着。站点http://pyrecord.freezope.org/docbook/docbook/index.html 我常去,多谢作者的工作。
现在我正专心的在EditPlus中写项目需要的文档,没有大堆的格式按钮,不用操心文件的格式,不用操心排版,我终于找到了写文档的感觉。