2007年6月10日星期日

DocBook试用

    今天试着用了一下Docbook这个东西。在网上也找到了一个国内的不知道谁写的介绍、使用入门之类的东西,还是国内互联网的特色,全部网站几乎都是在使用这一个版本的文章。好像是这篇文章有点旧了,我在对Docbook没有什么概念的时候看得有点没头绪。我把自己总结的一点东西写下来,免得自己忘了。
    实际上自己用Docbook写文档的时候要写的之后那个和你的文章内容有关的xml文件就行了。其余要了解的就是标题用什么样的标记,段落用什么样的标记就行了,这个可以看参考,没有必要全部知道。在解析你的xml文件的时候程序会根据你的指示去找那个定义格式的xsl文件。在你的文章内容的基础上套用那个格式,生成你指定的html或pdf或其它格式的文件。
    其中,xsl文件能在sf.net上下到,这个地址。好像还有个www.docbook.org的网站,但是我这里上不了,不知道是网站的原因还是GFW。
    我用的是xml的那个。
    比如写出文章是这样的:
    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE article PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN"
               "
http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
    <article>
        <title>My Article</title>
            <sect1>
            <title>My Section</title>
            <para>This is my first article.</para>
            </sect1>
    </article>
这是个XML文件,要变成html的或者pdf的时候就要先解析这个xml文件。变成不同的格式用不同的工具:
html的可以用xsltproc,共有四个文件:libexslt.dll;libxml2.dll;libxslt.dll;xsltproc.exe。也有其他的xml解析器,我没有用过。
编译的时候用命令行:
    xsltproc.exe --output xxx.html docbook5-xsl-1.72.0\html\docbook.xsl xxx.xml
就能在当前目录生成格式化的html文件。
xml文件中的<article> <title>等标记都是有参考可查的,都在sf.net的那个地址里面。
如果是生成pdf文件,可以用fop,同样是上面那个xml文件,用命令行:
    fop.bat -xsl D:\cpp\docbook5-xsl-1.72.0\docbook5-xsl-1.72.0\fo\docbook.xsl -xml D:\cpp\libxslt-1.1.19.win32\libxslt-1.1.19.win32\bin\book.xml -pdf mybook.pdf
就能生成mybook.pdf文件
这个是java的,要安装jre
 
还没弄明白上面xml文件中的DOCTYPE节点有什么用途,用xsl就能定义格式,还要dtd干吗?反正注释掉一样能用,warning更少
还有就是上面两种方式对中文文档都不行,再找找资料。

没有评论: