发布
优质
小牛编辑
139浏览
2023-12-01
使用xsltproc将它发布为 Html
xsltproc /usr/share/xml/docbook/xsl-stylesheets-1.73.2/html/html.xsl docbook.xml
xsl-stylesheets目录,里面包含可以发布的格式。该路径可能会因系统的不同而改变 | |
发布为 Html 格式所需要的 xsl 文件 | |
发布为单独的 html 页面。如果需要分页,使用chunk.xsl |
这是最简单的发布。有的时候,我们需要进行一些控制,例如使用 CSS、设定输出目录等,可以在命令中加入参数:
xsltproc --output ../html/\ --stringparam html.stylesheet docbook.css \ /usr/share/xml/docbook/xsl-stylesheets-1.73.2/html/html.xsl \ docbook.xml
设定输出目录 | |
使用 CSS 样式表 | |
使用 XSL 样式表 |
这个命令有点长,我们可以把相关参数写入参数样式表param.xsl
,使用命令xsltproc param.xsl docbook.xml发布
下面是一个参数样式表的例子,复制保存:
例 27.1. DocBook 参数样式表
<?xml version='1.0'?> <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"> <!--调用样式表--> <xsl:import href="/usr/share/xml/docbook/xsl-stylesheets-1.73.2/html/chunk.xsl"/> <xsl:param name="chunker.output.encoding" select="'utf-8'"/> <!--标准信息所使用的语言--> <xsl:param name="l10n.gentext.language" select="'zh_cn'"/> <!--指定样式表--> <xsl:param name="html.stylesheet" select="'docbook.css'"/> <!--对于警告类信息是否使用图形 0 1--> <xsl:param name="admon.graphics" select="1"/> <!--生成的 HTML 文件存放的起始目录--> <!--如果没有在 Makefile 或命令中指定,取消这里的注释 <xsl:param name="base.dir" select="'../html/'"/> --> <!--生成的 HTML 文件内容是否进行缩排 yes no--> <xsl:param name="chunker.output.indent" select="'yes'"/> <!--给节编号 0 1--> <xsl:param name="section.autolabel" select="0"/> <!--节的编号是否包含章的编号 0 1--> <xsl:param name="section.label.includes.component.label" select="1"/> <!--表格边框的属性是否使用预设 CSS 来指定--> <xsl:param name="table.borders.with.css" select="0"/> <!--参考书目是否进行编号--> <xsl:param name="bibliography.numbered" select="1"></xsl:param> <!--目录深度--> <xsl:param name="toc.max.depth" select="2"/> <!--sect#页面上显示目录--> <xsl:param name="generate.section.toc.level" select="0"/> <!--sect#可以生成目录条目--> <xsl:param name="toc.section.depth" select="2"/> <!--目录中收录哪些内容--> <!--包括 toc,title,figure,table,example,equation --> <!-- nop 为空 --> <xsl:param name="generate.toc"> appendix toc article/appendix nop article toc,title booktoc,title,example chapter toc,title parttoc,title preface toc,title qandadiv toc qandaset toc reference toc,title sect1 toc sect2 toc sect3 toc sect4 toc sect5 toc section toc set toc,title </xsl:param> <!--在源码中插入 <?linebreak?> 标记,生成 Html 时替换为<br> --> <xsl:template match="processing-instruction('linebreak')"> <br/> </xsl:template> </xsl:stylesheet>
将偷懒进行到底,使用下面 Makefile
,在工作目录下键入make就可以了[57]
OBJECT = all SOURCE = docbook.xml PARAM = param.xsl ARG = --output html/ COMPILER = xsltproc $(OBJECT):$(SOURCE) $(PARAM) $(COMPILER) $(ARG) $(PARAM) $(SOURCE) clean: rm -rf ../html/*.html
这里一定要用 TAB,而不能用空格字符 | |
同上 |
[57] 在 Emacs 中 M-x compile 效果更好,如果有错误还能够直接定位