发布

使用xsltproc将它发布为 Html

  1. xsltproc /usr/share/xml/docbook/xsl-stylesheets-1.73.2/html/html.xsl docbook.xml

1

xsl-stylesheets目录,里面包含可以发布的格式。该路径可能会因系统的不同而改变

2

发布为 Html 格式所需要的 xsl 文件

3

发布为单独的 html 页面。如果需要分页,使用chunk.xsl

这是最简单的发布。有的时候,我们需要进行一些控制,例如使用 CSS、设定输出目录等,可以在命令中加入参数:

  1. xsltproc --output ../html/ \
  2. --stringparam html.stylesheet docbook.css \
  3. /usr/share/xml/docbook/xsl-stylesheets-1.73.2/html/html.xsl \
  4. docbook.xml

1

设定输出目录

2

使用 CSS 样式表

3

使用 XSL 样式表

这个命令有点长,我们可以把相关参数写入参数样式表param.xsl,使用命令xsltproc param.xsl docbook.xml发布

下面是一个参数样式表的例子,复制保存:

例 27.1. DocBook 参数样式表

  1. <?xml version='1.0'?>
  2. <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
  3. version="1.0">
  4. <!--调用样式表-->
  5. <xsl:import href="/usr/share/xml/docbook/xsl-stylesheets-1.73.2/html/chunk.xsl"/>
  6. <xsl:param name="chunker.output.encoding" select="'utf-8'"/>
  7. <!--标准信息所使用的语言-->
  8. <xsl:param name="l10n.gentext.language" select="'zh_cn'"/>
  9. <!--指定样式表-->
  10. <xsl:param name="html.stylesheet" select="'docbook.css'"/>
  11. <!--对于警告类信息是否使用图形 0 1-->
  12. <xsl:param name="admon.graphics" select="1"/>
  13. <!--生成的 HTML 文件存放的起始目录-->
  14. <!--如果没有在 Makefile 或命令中指定,取消这里的注释
  15. <xsl:param name="base.dir" select="'../html/'"/>
  16. -->
  17. <!--生成的 HTML 文件内容是否进行缩排 yes no-->
  18. <xsl:param name="chunker.output.indent" select="'yes'"/>
  19. <!--给节编号 0 1-->
  20. <xsl:param name="section.autolabel" select="0"/>
  21. <!--节的编号是否包含章的编号 0 1-->
  22. <xsl:param name="section.label.includes.component.label" select="1"/>
  23. <!--表格边框的属性是否使用预设 CSS 来指定-->
  24. <xsl:param name="table.borders.with.css" select="0"/>
  25. <!--参考书目是否进行编号-->
  26. <xsl:param name="bibliography.numbered" select="1"></xsl:param>
  27. <!--目录深度-->
  28. <xsl:param name="toc.max.depth" select="2"/>
  29. <!--sect#页面上显示目录-->
  30. <xsl:param name="generate.section.toc.level" select="0"/>
  31. <!--sect#可以生成目录条目-->
  32. <xsl:param name="toc.section.depth" select="2"/>
  33. <!--目录中收录哪些内容-->
  34. <!--包括 toc,title,figure,table,example,equation -->
  35. <!-- nop 为空 -->
  36. <xsl:param name="generate.toc">
  37. appendix toc
  38. article/appendix nop
  39. article toc,title
  40. book toc,title,example
  41. chapter toc,title
  42. part toc,title
  43. preface toc,title
  44. qandadiv toc
  45. qandaset toc
  46. reference toc,title
  47. sect1 toc
  48. sect2 toc
  49. sect3 toc
  50. sect4 toc
  51. sect5 toc
  52. section toc
  53. set toc,title
  54. </xsl:param>
  55. <!--在源码中插入 <?linebreak?> 标记,生成 Html 时替换为<br> -->
  56. <xsl:template match="processing-instruction('linebreak')">
  57. <br/>
  58. </xsl:template>
  59. </xsl:stylesheet>

将偷懒进行到底,使用下面 Makefile,在工作目录下键入make就可以了[57]

  1. OBJECT = all
  2. SOURCE = docbook.xml
  3. PARAM = param.xsl
  4. ARG = --output html/
  5. COMPILER = xsltproc
  6. $(OBJECT):$(SOURCE) $(PARAM)
  7. $(COMPILER) $(ARG) $(PARAM) $(SOURCE)
  8. clean:
  9. rm -rf ../html/*.html

1

这里一定要用 TAB,而不能用空格字符

2

同上

[57] 在 Emacs 中 M-x compile 效果更好,如果有错误还能够直接定位