DocBook

来自 ArchWiki

来自 维基百科

DocBook 是一种用于技术文档的语义标记语言。它最初旨在编写与计算机硬件和软件相关的技术文档,但它也可以用于任何其他类型的文档。
作为一种语义语言,DocBook 使其用户能够以与呈现无关的形式创建文档内容,从而捕获内容的逻辑结构;然后,可以将该内容以多种格式发布,包括 HTML、XHTML、EPUB、PDF、man 页面、Web 帮助和 HTML 帮助,而无需用户对源进行任何更改。换句话说,当文档以 DocBook 格式编写时,它很容易移植到其他格式,而无需重写。

安装

安装 docbook-xmldocbook-xsl

用法

验证 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

自动化

此文章或章节正在考虑移除。

原因: 章节受个人偏见影响,别名是主观的,在这里除了提供更长命令的简写外,没有提供任何其他内容,这不需要记录。(在 Talk:DocBook 中讨论)

将以下内容添加到您的 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]

参见