![]() | TLDP 将会转换您的文档 | |
---|---|---|
本节介绍如何将文档从 DocBook 转换为其他格式。如果您不需要为自己的网站转换文档,或者不需要校对内容,请跳过本节。 如果您想为了校对目的转换文档,请使用 XML to HTML 在线转换器。您需要将 XML 文件上传到网站。然后只需将 URL 放入表格并点击提交按钮。您的文档将被神奇地转换为美观(且易于阅读)的 HTML 文档。支持外部文件。您可以使用绝对或相对 URI。 另一个易于使用的软件包是 xmlto。它是 xsltproc 的前端。它可以作为 RedHat、Debian (等) 软件包提供,也可以从 http://cyberelk.net/tim/xmlto/ 下载。您可以使用它来转换文档,方法是:
您在提交给 LDP 之前永远不需要转换文档。LDP 志愿者有一个系统,可以将您的 DocBook 文件转换为 HTML、PDF 和纯文本格式。已经警告过您了。 |
还在看?太棒了!转换是一个相当基本的要求,可以将您编写的内容从混乱的标签汤变成可读的内容。本节将帮助您设置系统并准备好将最新的文档转换为其他格式。如果您想在向世界发布文档之前查看文档,这将非常有用。
目前有两种转换文档的方法:文档样式语义和规范语言 (DSSSL);以及 XML 样式表 (XSLT)。虽然 LDP 网站使用 DSSSL 转换文档,但如果您愿意,也可以使用 XSLT。您只需要选择其中一种方法。有关 DSSSL 的更多信息,请阅读:B.4.1 节,有关 XSLT 的更多信息,请阅读:B.4.3 节。
使用 DSSSL 转换文档有三个基本要求
LDP 使用文档样式语义和规范语言的两个版本,将文档从原始 DocBook 文件转换为其他格式(然后发布到 Web 上)。LDP 版本的样式表需要 Norman Walsh 版本——这基本上意味着如果您使用 DSSSL,则 Norman Walsh 版本可以被认为是系统设置的要求。
Norman Walsh DSSSL http://docbook.sourceforge.net/projects/dsssl/. 文档样式语义和规范语言告诉 Jade(见 B.4.1.2 节)如何将 DocBook 文档渲染为打印或在线形式。DSSSL 将标题标签转换为 <h1> HTML 标签,或者转换为 14 磅 Times Roman 粗体(例如,对于 RTF)。DSSSL 的文档位于同一站点。请注意,修改 DSSSL 不会修改 DocBook 本身。它只是更改渲染文本的外观。LDP 使用修改后的 DSSSL(见下文)。
LDP DSSSL http://www.tldp.org/authors/tools/ldp.dsl. LDP DSSSL 需要 Norman Walsh 版本(见上文),但它是一个略微修改过的 DSSSL,以提供诸如目录之类的功能。
Jade 处理器有两个版本:James Clark 的原始版本;以及一个大致相同的程序的开源版本 OpenJade。您只需要这些程序中的一个。它应该在 DTD 和 DSSSL 被“安装”之后安装。
DSSSL 转换工具
ftp://ftp.jclark.com/pub/jade/
目前,该软件包的最新版本是jade-1.2.1.tar.gz.
Jade 是 SGML 和 XML 的前端处理器。它使用 DSSSL 和 DocBook DTD 执行从 SGML 和 XML 到目标格式的验证和渲染。
http://openjade.sourceforge.net/
由 DSSSL 社区编写的 Jade 的扩展。某些应用程序需要 jade,但正在更新以支持任一软件包。
一旦您的系统配置完成(请参阅上一节),您应该能够开始使用 jade 将文件从 XML 转换为 XHTML。
要创建单独的 HTML 文件,请将 jade 指向正确的 DSL(样式表)。以下示例使用 LDP 样式表。
bash$ jade -t xml -i html \ -d /usr/local/sgml/dsssl/docbook/html/ldp.dsl#html \ HOWTO.xml |
如果您想生成单文件 HTML 页面,请添加-V nochunks参数。您可以通过在命令末尾附加以下内容来指定最终 HTML 文件的名称 > output.html.
bash$ jade -t xml -i html -V nochunks \ -d /usr/local/sgml/dsssl/stylesheets/ldp.dsl#html \ HOWTO.sgml > output.html |
![]() | “不是函数名称”错误 | |
---|---|---|
如果您收到有关“is not a function name”(不是函数名称)的错误,您将需要添加一个指向xml.dcl的指针。它必须紧接在指向 XML 文档的指针之前列出。请尝试以下位置之一/usr/lib/sgml/declaration/xml.dcl,或者/usr/share/sgml/declaration/xml.dcl。如果该文件不在这两个位置中的任何一个,请使用 locate 查找该文件。修改后的命令将如下所示
|
如果您想创建打印友好的文件而不是 HTML 文件,只需更改您正在使用的样式表。在上面的文件名中,请注意末尾的“html/ldp.dsl”。将其更改为“print/docbook.dsl”,或者如果您想要 XHTML 输出而不是 HTML,请将文件名更改为“xhtml/docbook.dsl”。
如果您希望 HTML 文件使用特定的 CSS 样式表,您将需要编辑ldp.dsl。紧随;; $verbatim-display$ 重新定义的结束添加以下行
(define %stylesheet-type% ;; The type of the stylesheet to use "text/css") (define %stylesheet% ;; Name of the css stylesheet to use, use value #f if you don't want to ;; use css stylesheets "base.css") |
替换base.css为您想要使用的 CSS 文件的名称。
docbook-utils 提供了诸如 db2html、db2pdf 和 db2ps 之类的命令,这些命令基于 jw 脚本,jw 脚本是 Jade 的前端。这些工具简化了文档的日常管理并添加了方便的功能。
该软件包最初由 RedHat 创建,可从 http://sources.redhat.com/docbook-tools/ 获取,可以安装在大多数系统上。
示例 B-6. 创建 HTML 输出的示例
验证文档后,只需发出命令 db2html mydoc.xml 即可创建 (一个或多个) HTML 文件。您也可以使用 docbook-utils 作为验证工具。请记住:当发生错误时,始终首先解决第一个问题。当您修复第一个错误时,其余问题可能会得到解决。
如果您收到有关函数名称的错误,请阅读 。
您可以定义自己的其他 DSL 指令,其中可以包含指向个性化 CSS 文件的指针。示例 DSL 和 CSS 文件在附录 A 中提供。
示例 DSL 文件将创建一个目录,并使所有 HTML 文件都以以下前缀开头intro2linux-并以以下后缀结尾.html。%stylesheet%变量指向应该由您的 HTML 文件调用的 CSS 文件。
要使用特定的 DSL 样式表,应使用以下命令
db2html-d mystyle.dsl mydoc.xml
您可以在此处比较结果:http://tille.xalasys.com/training/unix/ 是一本使用标准工具格式化的书;http://tille.xalasys.com/training/tldp/ 是一本使用个性化 DSL 和 CSS 文件的书。使用了柔和的色调和特效,例如在按钮中,以达到最佳效果。
DSSSL 和 Jade/OpenJade 还有其他替代方案。
当使用 DocBook XML 时,LDP 提供了一系列 XSL[1] 样式表,用于将文档处理为 HTML。这些样式表使用 XML 工具集创建输出文件,这些文件类似于使用 ldp.dsl 的 SGML 工具生成的输出文件。
使用之间的主要区别在于ldp.dsl和 XSL 样式表在于处理生成多个文件的方式,例如为每个章节、节和附录创建单独的文件。对于 SGML 工具(例如 jade 或 openjade),工具本身负责生成单独的文件。因此,只需要一个文件,ldp.dsl作为标准 DocBook DSSSL 样式表的自定义层是必需的。
使用 DocBook XSL 样式表,多个文件的生成由样式表控制。如果您想生成单个文件,则调用一个样式表。如果您想生成多个文件,则调用不同的样式表。因此,LDP XSL 样式表发行版由四个文件组成
tldp-html.xsl- 用于生成单个文件的样式表。
tldp-html-chunk.xsl[2] - 用于基于章节、节和附录元素生成多个文件的样式表。
tldp-html-common.xsl- 包含实际 XSLT 转换的样式表。它被其他两个 HTML 样式表调用,并且从不直接调用。
tldp-print.xsl- 用于生成 XSL 格式化对象以进行打印输出的样式表。
您可以在 http://my.core.com/~dhorton/docbook/tldp-xsl/ 找到文件的最新副本。该软件包包括安装说明,这些说明在 http://my.core.com/~dhorton/docbook/tldp-xsl/doc/tldp-xsl-howto.html 中重复。安装说明的简短版本如下:从网站下载并解压最新的软件包。从htmlTLDP-XSL 的目录并将它们放在htmlNorman Walsh 样式表的目录中。从 TLDP-XSL 中获取文件fo目录并将其放在 Norman Walshfo目录中。
安装这些文件后,您可以使用 xsltproc 从 XML 文档生成 HTML 文件。要将 XML 文件转换为单页 HTML 文档,请使用以下命令
bash$ xsltproc -o HOWTO.html /usr/local/sgml/stylesheets/tldp-html.xsl HOWTO.xml |
要生成一组链接的 HTML 页面,每个章节, sect1或附录,请使用以下命令
bash$ xsltproc /usr/share/sgml/stylesheets/tldp-html-chunk.xsl HOWTO.xml |
请注意,您永远不会直接调用样式表tldp-html-common.xsl。它被其他两个样式表调用。
[1] | 实际上,“XSL”由三个组件组成:XSLT 转换语言、XPath 表达式语言(由 XSLT 使用)和用于描述页面的 XSL 格式化对象 (FO)。样式表实际上是用 XSLT 编写的,并生成 HTML 或(用于打印输出)FO。然后,FO 文件通过 FO 处理器运行,以创建实际的打印(PDF 或 PostScript)输出。有关更多信息,请参阅 W3C 网站。 |
[2] | 在 XSL 术语中,生成多个文件的过程称为“分块”。 |