不管是工作还是日常生活里都免不了要写文档,尤其是工作中,开发要写文档,做个调研要写文档,各种日志周报也都是文档。用什么写文档,一直是很令我纠结的问题,私底下也要花好多心思。
对于有规定的文件格式或者模板的,它们一般都是 MS Office 格式,中国的大部分公司应该都是这样,这没什么好纠结的,直接用 MS Office 或者兼容 MS Office 格式的第三方软件,比如 OpenOffice.org、IBM Lotus Symphony 以及 Windows 下的 WPS。我一般用 Lotus Symphony 或者开虚拟机用 WPS,Lotus Symphony 这个软件写写文档还是可以的,就是用 Java 写的,有点慢有点吃内存。
而其他的文档,尤其是开发过程中的文档,用 MS Word 来搞是不太合适的,不容易管理,多人协作时样式容易变得混乱,文档编辑软件较大(相对于纯文本而言),编辑和查看都在同一个环境下可能会导致传递过程中文档被更改等等。而且我总觉得 MS Word 格式的开发文档有点山寨,这应该算是个人的偏见吧……
对我来讲,对于文档工具大致有这么几个需求:
- 可以用文本编辑器编辑:编辑环境小巧,而且文本文件很方便作 diff,在 svn 中也比较方便。
- 编辑和查看在不同的环境下:换句话说就是要有源文件和生成文件,源文件用于编辑,生成文件用于阅读(主要是给他人阅读),最好是可以生成不容易编辑的文件,比如 pdf(便携性好,不同环境下样式基本统一),比如 html(浏览器即可打开,易于交换,可以用来构建文档的站点)。
- 编辑中不用太过关注样式:编辑的时候最好能尽可能地关注于内容本身,样式可以通过外部定义之类的方式来指定(模板)。
我一直在寻觅合适的文档书写工具,不过现在还没有找到特别顺手的。最开始是直接编辑 html 文件,事先定义一套 css,然后按照一定的规则写 html 代码,写着写着老感觉一点也不优雅,想要简单一点的方式。后来某次上 wiki 的时候灵光一闪,决定用 wiki 来写东西,于是本机部署了一个 mediawiki,也就是维基百科用的程序,这个用来编辑和阅读倒是还不错,但文档生成方面不太爽。仔细考虑了一番之后,决定还是上 latex,可以直接生成排版良好的 pdf,而且现在 xetex 对中文支持得很好,不过这个东西太过强大,后果就是学习曲线实在是有点那啥,我用了几个月到现在,还是经常卡住,要翻翻文档或者上网搜索一番才能知道某个东西要怎么样写。
毫无疑问 latex 是写文档的一个优秀的解决方案,但由于水平太差影响到了我的书写流畅性和连贯性,所以我最近又开始琢磨着换套方案。目前有两个备选方案,markdown 和 txt2tags,这两个本质是一样的,将满足一定格式的文件转化为 html 或者其他格式的文件。markdown 是用 perl 的,不过有许多其他常用语言的版本,PHP 下还对其进行了扩展;而 txt2tags 是用 python 的,它支持转换的文件格式更多,常见的如 html、latex、DocBook、Man page、多种 wiki 的格式等等,所以对我来说是一个很理想的选择。
现在正在啃 txt2tags 和 markdown 的文档,我还是比较偏向于 txt2tags,特性更多,项目也更活跃,先在工作中用一段时间,没什么不良的体验那么就又可以换一套文档方案了。哦我真是喜新厌旧……