DocBook
来自 维基百科
- DocBook 是一种用于技术文档的语义标记语言。它最初旨在编写与计算机硬件和软件相关的技术文档,但它也可以用于任何其他类型的文档。
- 作为一种语义语言,DocBook 使其用户能够以与呈现无关的形式创建文档内容,从而捕获内容的逻辑结构;然后,可以将该内容以多种格式发布,包括 HTML、XHTML、EPUB、PDF、man 页面、Web 帮助和 HTML 帮助,而无需用户对源进行任何更改。换句话说,当文档以 DocBook 格式编写时,它很容易移植到其他格式,而无需重写。
安装
用法
验证 XML 文件
要验证 XML 文件,请使用
$ xmllint --valid --noout /path/to/file.xml
如果文件是正确的 XML,这将不会生成任何输出。
转换为 XHTML
单个文件
要转换为 XHTML 文件(单个文件),请使用
$ xsltproc /usr/share/xml/docbook/$(pacman -Q docbook-xsl | cut -d ' ' -f 2 | cut -d '-' -f 1)/xhtml/docbook.xsl /path/to/file.xml > output.html
分段
要转换为分段的 XHTML 文件(每个部分在自己的文件中),请使用
$ xsltproc /usr/share/xml/docbook/$(pacman -Q docbook-xsl | cut -d ' ' -f 2 | cut -d '-' -f 1)/xhtml/chunk.xsl /path/to/file.xml
自动化
将以下内容添加到您的 shell 配置(例如 .bashrc
)
alias doc2html1="xsltproc /usr/share/xml/docbook/xhtml/docbook.xsl" alias doc2multihtml="xsltproc /usr/share/xml/docbook/xhtml/chunk.xsl" alias docvalidate="xmllint --valid --noout"
故障排除
编译错误
如果您已经安装了上面的软件包,但开始看到如下编译错误
GEN appdata-validate.1 I/O error : Attempt to load network entity https://docbook.sourceforge.net/release/xsl/current/manpages/docbook.xsl warning: failed to load external entity "https://docbook.sourceforge.net/release/xsl/current/manpages/docbook.xsl" cannot parse https://docbook.sourceforge.net/release/xsl/current/manpages/docbook.xsl
重新安装 DocBook,如果某些东西损坏了目录文件,这将运行 xmlcatalog
并重建 /etc/xml/catalog
,这可能会解决这些编译错误。
技巧与窍门
注释
注释在 XML 文件中有些问题。一种可能性是使用不存在的处理指令,例如
<?ignore comment line 1: can be a valid xml line comment line 2: can be a valid xml line ?>
有关此问题的更多信息,请参见 [1]。