jkj Sun Feb 11 06:20:33 2001 EDT
Added files:
/phpdoc chunk-filename.xsl
Modified files:
/phpdoc html.xsl.in
Log:
- filenames are now based on id attribute in the same way as in DSSSL stylesheets
Index: phpdoc/html.xsl.in
diff -u phpdoc/html.xsl.in:1.1 phpdoc/html.xsl.in:1.2
--- phpdoc/html.xsl.in:1.1 Thu Feb 8 04:45:29 2001
+++ phpdoc/html.xsl.in Sun Feb 11 06:20:33 2001
@@ -2,16 +2,18 @@
HTML specific stylesheet
- $Id: html.xsl.in,v 1.1 2001/02/08 12:45:29 jkj Exp $
+ $Id: html.xsl.in,v 1.2 2001/02/11 14:20:33 jkj Exp $
-->
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
version="1.0">
<xsl:import href="@DOCBOOKXSL_HTML@"/>
+<xsl:import href="chunk-filename.xsl"/>
<xsl:output method="html" encoding="@ENCODING@"/>
<xsl:param name="base.dir" select="'html/'"/>
+<xsl:param name="use.id.as.filename" select="1"/>
</xsl:stylesheet>
Index: phpdoc/chunk-filename.xsl
+++ phpdoc/chunk-filename.xsl
<!--
This templates takes filename from id attribute if present.
In the future, something like this will be standard part
of stylesheets.
$Id: chunk-filename.xsl,v 1.1 2001/02/11 14:20:33 jkj Exp $
-->
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
version="1.0">
<xsl:param name="use.id.as.filename" select="1"/>
<xsl:template match="*" mode="chunk-filename">
<xsl:param name="recursive" select="false()"/>
<!-- returns the filename of a chunk -->
<xsl:variable name="ischunk"><xsl:call-template name="chunk"/></xsl:variable>
<xsl:variable name="filename">
<xsl:call-template name="dbhtml-filename"/>
</xsl:variable>
<xsl:variable name="dir">
<xsl:call-template name="dbhtml-dir"/>
</xsl:variable>
<xsl:choose>
<xsl:when test="$ischunk='0'">
<!-- if called on something that isn't a chunk, walk up... -->
<xsl:choose>
<xsl:when test="count(parent::*)>0">
<xsl:apply-templates mode="chunk-filename" select="parent::*">
<xsl:with-param name="recursive" select="$recursive"/>
</xsl:apply-templates>
</xsl:when>
<!-- unless there is no up, in which case return "" -->
<xsl:otherwise></xsl:otherwise>
</xsl:choose>
</xsl:when>
<xsl:when test="not($recursive) and $filename != ''">
<!-- if this chunk has an explicit name, use it -->
<xsl:if test="$dir != ''">
<xsl:value-of select="$dir"/>
<xsl:text>/</xsl:text>
</xsl:if>
<xsl:value-of select="$filename"/>
</xsl:when>
<xsl:when test="not($recursive) and @id != '' and $use.id.as.filename=1">
<!-- if this chunk has an explicit name in id attribute, use it -->
<xsl:if test="$dir != ''">
<xsl:value-of select="$dir"/>
<xsl:text>/</xsl:text>
</xsl:if>
<xsl:value-of select="@id"/>
<xsl:value-of select="$html.ext"/>
</xsl:when>
<xsl:when test="name(.)='set'">
<xsl:value-of select="$root.filename"/>
<xsl:if test="not($recursive)">
<xsl:value-of select="$html.ext"/>
</xsl:if>
</xsl:when>
<xsl:when test="name(.)='book'">
<xsl:choose>
<xsl:when test="count(parent::*)>0">
<xsl:text>bk</xsl:text>
<xsl:number level="any" format="01"/>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="$root.filename"/>
</xsl:otherwise>
</xsl:choose>
<xsl:if test="not($recursive)">
<xsl:value-of select="$html.ext"/>
</xsl:if>
</xsl:when>
<xsl:when test="name(.)='article'">
<xsl:choose>
<xsl:when test="/set">
<!-- in a set, make sure we inherit the right book info... -->
<xsl:apply-templates mode="chunk-filename" select="parent::*">
<xsl:with-param name="recursive" select="true()"/>
</xsl:apply-templates>
</xsl:when>
<xsl:when test="count(parent::*)>0">
<!-- if we aren't the root, name them numerically ... -->
<xsl:text>ar</xsl:text>
<xsl:number level="any" format="01" from="book"/>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="$root.filename"/>
</xsl:otherwise>
</xsl:choose>
<xsl:if test="not($recursive)">
<xsl:value-of select="$html.ext"/>
</xsl:if>
</xsl:when>
<xsl:when test="name(.)='preface'">
<xsl:if test="/set">
<xsl:apply-templates mode="chunk-filename" select="parent::*">
<xsl:with-param name="recursive" select="true()"/>
</xsl:apply-templates>
</xsl:if>
<xsl:text>pr</xsl:text>
<xsl:number level="any" format="01" from="book"/>
<xsl:if test="not($recursive)">
<xsl:value-of select="$html.ext"/>
</xsl:if>
</xsl:when>
<xsl:when test="name(.)='chapter'">
<xsl:if test="/set">
<xsl:apply-templates mode="chunk-filename" select="parent::*">
<xsl:with-param name="recursive" select="true()"/>
</xsl:apply-templates>
</xsl:if>
<xsl:text>ch</xsl:text>
<xsl:number level="any" format="01" from="book"/>
<xsl:if test="not($recursive)">
<xsl:value-of select="$html.ext"/>
</xsl:if>
</xsl:when>
<xsl:when test="name(.)='appendix'">
<xsl:if test="/set">
<xsl:apply-templates mode="chunk-filename" select="parent::*">
<xsl:with-param name="recursive" select="true()"/>
</xsl:apply-templates>
</xsl:if>
<xsl:text>ap</xsl:text>
<xsl:number level="any" format="a" from="book"/>
<xsl:if test="not($recursive)">
<xsl:value-of select="$html.ext"/>
</xsl:if>
</xsl:when>
<xsl:when test="name(.)='part'">
<xsl:if test="/set">
<xsl:apply-templates mode="chunk-filename" select="parent::*">
<xsl:with-param name="recursive" select="true()"/>
</xsl:apply-templates>
</xsl:if>
<xsl:text>pt</xsl:text>
<xsl:number level="any" format="01" from="book"/>
<xsl:if test="not($recursive)">
<xsl:value-of select="$html.ext"/>
</xsl:if>
</xsl:when>
<xsl:when test="name(.)='reference'">
<xsl:if test="/set">
<xsl:apply-templates mode="chunk-filename" select="parent::*">
<xsl:with-param name="recursive" select="true()"/>
</xsl:apply-templates>
</xsl:if>
<xsl:text>rn</xsl:text>
<xsl:number level="any" format="01" from="book"/>
<xsl:if test="not($recursive)">
<xsl:value-of select="$html.ext"/>
</xsl:if>
</xsl:when>
<xsl:when test="name(.)='refentry'">
<xsl:if test="parent::reference">
<xsl:apply-templates mode="chunk-filename" select="parent::*">
<xsl:with-param name="recursive" select="true()"/>
</xsl:apply-templates>
</xsl:if>
<xsl:text>re</xsl:text>
<xsl:number level="any" format="01" from="book"/>
<xsl:if test="not($recursive)">
<xsl:value-of select="$html.ext"/>
</xsl:if>
</xsl:when>
<xsl:when test="name(.)='colophon'">
<xsl:if test="/set">
<xsl:apply-templates mode="chunk-filename" select="parent::*">
<xsl:with-param name="recursive" select="true()"/>
</xsl:apply-templates>
</xsl:if>
<xsl:text>co</xsl:text>
<xsl:number level="any" format="01" from="book"/>
<xsl:if test="not($recursive)">
<xsl:value-of select="$html.ext"/>
</xsl:if>
</xsl:when>
<xsl:when test="name(.)='sect1' or name(.)='section'">
<xsl:apply-templates mode="chunk-filename" select="parent::*">
<xsl:with-param name="recursive" select="true()"/>
</xsl:apply-templates>
<xsl:text>s</xsl:text>
<xsl:number level="any" format="01" from="preface|chapter|appendix"/>
<xsl:if test="not($recursive)">
<xsl:value-of select="$html.ext"/>
</xsl:if>
</xsl:when>
<xsl:when test="name(.)='bibliography'">
<xsl:if test="/set">
<xsl:apply-templates mode="chunk-filename" select="parent::*">
<xsl:with-param name="recursive" select="true()"/>
</xsl:apply-templates>
</xsl:if>
<xsl:text>bi</xsl:text>
<xsl:number level="any" format="01" from="book"/>
<xsl:if test="not($recursive)">
<xsl:value-of select="$html.ext"/>
</xsl:if>
</xsl:when>
<xsl:when test="name(.)='glossary'">
<xsl:if test="/set">
<xsl:apply-templates mode="chunk-filename" select="parent::*">
<xsl:with-param name="recursive" select="true()"/>
</xsl:apply-templates>
</xsl:if>
<xsl:text>go</xsl:text>
<xsl:number level="any" format="01" from="book"/>
<xsl:if test="not($recursive)">
<xsl:value-of select="$html.ext"/>
</xsl:if>
</xsl:when>
<xsl:when test="name(.)='index'">
<xsl:if test="/set">
<xsl:apply-templates mode="chunk-filename" select="parent::*">
<xsl:with-param name="recursive" select="true()"/>
</xsl:apply-templates>
</xsl:if>
<xsl:text>ix</xsl:text>
<xsl:number level="any" format="01" from="book"/>
<xsl:if test="not($recursive)">
<xsl:value-of select="$html.ext"/>
</xsl:if>
</xsl:when>
<xsl:when test="name(.)='setindex'">
<xsl:text>si</xsl:text>
<xsl:number level="any" format="01" from="set"/>
<xsl:if test="not($recursive)">
<xsl:value-of select="$html.ext"/>
</xsl:if>
</xsl:when>
<xsl:otherwise>
<xsl:text>chunk-filename-error-</xsl:text>
<xsl:value-of select="name(.)"/>
<xsl:number level="any" format="01" from="set"/>
<xsl:if test="not($recursive)">
<xsl:value-of select="$html.ext"/>
</xsl:if>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
</xsl:stylesheet>