Docbook 方面的资料被认为是少, 而且写得很差.
曾经下cygwin试过一把, 安装DTD, 安装openjade, openSH, ISO Entities... 也曾经试出来了, 感觉很累, 过程不那么顺畅, 编译速度也很慢.
今天终于决定用这个写文档, 不管怎么样, 用这个试一把. 重新配置了一个方案, 跟cygwin无关, 也不用openjade, 用据说是最快的xslt实现, xsltproc.
网上说下载下面的三个软件包:
iconv-1.9.1.win32.zip
libxml2-2.6.7.win32.zip
libxslt-1.1.4.win32.zip
网上的东西不能轻信, 尽管文章写得信誓旦旦, 很多东西经不起你实际操作的考验. 今天碰到的事情也是一样.
这三个版本的包显然是还没有稳定下来, 可执行程序xsltproc.exe被放到了utilty目录下, 其它的一堆小程序名字开头都有 test. 勉强把DLL都凑到.exe所在的目录, 并把zlib抓下来(这三个包的组合运行起来需要zlib), 运行时却有一个异常, 在装了开发环境的机器上弹出微软的一个调试对话框, 做不下去了.
到下面的网站上下载了最新的包:
65dcaa9ab60d0237ffd7059d033f3ffe *iconv-1.9.1.win32.zip
2b88b414cf92cdd29afdd55277474249 *libxml2-2.6.23.win32.zip
9cce6bb1d205d38c0d18432f002c88e2 *libxslt-1.1.15.win32.zip
前面的部分是MD5 校验和.
解压, 不需要zlib, 不需要把文件COPY来COPY去, 在它的bin目录下, 可以运行
xsltproc --help
了.
因为前面已经装过 DocBook的DTD, ISO Entities, DSSSL, XSLT等等一套东西, 所以 直接拿来就可以用来
第一个测试是:
"">
Sample DocBook Document
I'm putting a few pages in XML on my website and linking to them from here to see if and how Google adds them to its index. Each has a hopefully unique phrase to make it easier to search for: lunar stapler shortstop. This has a DOCTYPE declaration to show that it's a DocBook document. It also has a ulink element:
xmlgoog4a.xml
中华人民共和国
程序运行起来很慢, 估计是因为指定了外部URL作为 DTD定义的缘故, 每次都去下载一遍那个DTD文件.
PUBLIC后面的那个标识符必需一字不差, 大小写也要严格符合. 因为没有指定语言属性, 默认出来的HTML是 Table Of Contents, 不是"目录".
指定lang="cn", lang="zh"都报错说没有这种locale, 原来是 "zh_cn", 这下xsltproc自动生成的HTML结构元素象 "table of contents"就会自动被本地化成"目录"这样的东西了.
效果一般, 有目录, 有链接, 方便地引入图片, 项目列表, 这些基本的元素都齐备了, 就是还不知道怎么实现好一些的效果, 它对emphasis的处理是斜体字, 太难看. 如果懂得HTML, 你会觉得心里很痒痒. 有一种想直接用HTML来写文档的冲动. 那样搞出来的效果几乎是随从所欲. 但是, DocBook毕竟有所谓"所想即所得", 或者说让文档作者把注意写集中在内容和结构而不是外观显示效果上. 诸如此类的各种好处.
忍了, 先忍了, 转不成PDF, 转不好RTF, HTML不够美观, 先用起来.
下载一个VIM的插件, dbhelper, 简单地定义了一些映射, 却极大地简化了DocBook的书写. 只有一个小的Bug:
第79行的
imap ,img
中的format=""和>之间少了一个 /, 造成TAG之间不能正确配对.
另一个很关键的地方是把
"">
中的外部URL换成本地的 dtd location
"file:///C:/cygwin/docbook/dtd/xml/4.4/docbookx.dtd">
可以加速处理.
阅读(1226) | 评论(0) | 转发(0) |