Home | Mirror | Search

4. Docbook參數

/usr/share/xml/docbook/stylesheet/nwalsh/xhtml/param.xsl

		
預設HTML格式輸出檔案中的章內小節是沒有自動編號功能的,如果要實現小節自動編號需要設置HTML格式的兩個轉換參數。

section.autolabel參數為1代表章內小節可自動編號,為0表示不會自動編號;

section.label.includes.component.label參數為1表示章內小節編號包含章節編號,為0表示不包含章節編號。

設置這兩個參數可通過命令行方式,也可通過修改XSL轉換檔案方法。下面分別介紹這兩種方法:

通過命令行方式:

$ xsltproc --stringparam  section.autolabel 1 \
           --stringparam  section.label.includes.component.label 1 \
           docbook.xsl  myfile.xml>myfile.htm
修改XSL轉換檔案方式:

DocBook文檔的HTML格式轉換樣式檔案一般位於/usr/share/sgml/docbook/docbook-xsl-1.65.1/html/目錄下。通過查看docbook.xsl檔案可知,在docbook.xsl中引用param.xsl作為參數設置檔案,所有的參數都在這裡設置。我們打開param.xsl檔案,找到以下兩行,再把參數置成1就可以了。

<xsl:param name="section.autolabel" select="1"/>
<xsl:param name="section.label.includes.component.label" select="1"/>
		
		

另一種方法

		
cat my_docbook.xsl
<?xml version='1.0'?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
                version='1.0'>
<xsl:include href="/usr/share/xml/docbook/stylesheet/nwalsh/html/docbook.xsl"/>
<xsl:output method="html"
            encoding="UTF-8"
            indent="no"/>
</xsl:stylesheet>

xsltproc -o docbook.html my_docbook.xsl docbook.xml
		
		

4.1. 字符集

--stringparam chunker.output.encoding UTF-8
			

4.2. 指定多頁輸出時html文檔名

			
我們把docbook文檔轉換成html文檔時,可以轉換成一個大的html文檔,也可以轉換成多頁的html文檔。當轉換成多頁是,預設的檔案是以ch01.html、ch02.html方式命名的,較不直觀。我們可在docbook文檔中添加一個屬性,使它輸出時按我們指定的檔案名輸出。

方法一:
<chapter><?dbhtml filename="first.html" ?>
<title>Introduction</title>
...
			
			
			
方法二:
<chapter id="first">
<title>Introduction</title>
...

xsltproc --stringparam  use.id.as.filename 1 chunk.xsl myfile.xml
			
			

4.3. 指定輸出路徑

			
預設轉換後的文檔是保存在當前目錄的,我們可在xsltproc命令行用-o選項指定轉換後文檔的輸出路徑,另外一種是在docbook中指定。

<book><?dbhtml dir="neo" ?>
<title>Docbook Guide</title>
...
<chapter id="first"><?dbhtml dir="technic" ?>
...
<chapter id="second">
...
<appendix id="three"><?dbhtml dir="read" ?>
...

輸出後的路徑:
jims/index.html
jims/technic/first.html
jims/second.html
jims/read/three.html
			
			

4.4. Filename prefix

			
base.dir parameter value	Description	Example 					chunk filename
base.dir="htmlout/"			Output directory only.					htmlout/chap1.html
base.dir="refbook-"			Filename prefix only.					refbook-chap1.html
base.dir="htmlout/refbook-"	Output directory and filename prefix.	htmlout/refbook-chap1.html
			
			

base.dir parameter

xsltproc --stringparam base.dir /usr/apache/htdocs/ chunk.xsl myfile.xml
			
comments powered by Disqus