2 <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
 
   5 <xsl:param name="filename-prefix" select="''"/>
 
   6 <xsl:param name="depends-file" select="''"/>
 
   7 <xsl:param name="output-root" select="''"/>
 
   8 <!-- Additional dependencies for target website -->
 
   9 <xsl:param name="add-website-depends" select="''"/>
 
  10 <!-- Remove output root dir instead removing each html output file.
 
  11      Useful for removing subdirs and none html files: images, css etc. -->
 
  12 <xsl:param name="remove-output-root" select="0"/>
 
  14 <xsl:output method="text"/>
 
  16 <xsl:template match="autolayout">
 
  17   <xsl:text>website: </xsl:text>
 
  18   <xsl:value-of select="$add-website-depends"/>
 
  19   <xsl:text> </xsl:text>
 
  20   <xsl:apply-templates select="toc" mode="all"/>
 
  21   <xsl:apply-templates select="notoc" mode="all"/>
 
  22   <xsl:text>

</xsl:text>
 
  23   <xsl:apply-templates select="toc"/>
 
  24   <xsl:apply-templates select="notoc"/>
 
  25   <xsl:text>
</xsl:text>
 
  26   <xsl:text>distclean: clean
 
  27 	-rm -f </xsl:text>
 
  28   <xsl:text>autolayout.xml website.database.xml </xsl:text>
 
  29   <xsl:text> </xsl:text>
 
  30   <xsl:value-of select="$depends-file"/>
 
  31   <xsl:text>

</xsl:text>
 
  32   <xsl:text>clean:
</xsl:text>
 
  34     <xsl:when test="$remove-output-root and not($output-root='')">
 
  35       <xsl:text>	-rm -rf </xsl:text>
 
  36       <xsl:call-template name="output-root"/>
 
  39       <xsl:text>	-rm -f </xsl:text>
 
  40       <xsl:apply-templates select="toc" mode="all"/>
 
  41       <xsl:apply-templates select="notoc" mode="all"/>
 
  44   <xsl:text>

</xsl:text>
 
  47 <xsl:template match="toc">
 
  49   <xsl:apply-templates select="." mode="calculate-dir"/>
 
  51   <xsl:call-template name="output-root"/>
 
  52   <xsl:value-of select="@dir"/>
 
  53   <xsl:value-of select="$filename-prefix"/>
 
  54   <xsl:value-of select="@filename"/>
 
  55   <xsl:text>: </xsl:text>
 
  56   <xsl:value-of select="@page"/>
 
  57   <xsl:text>
</xsl:text>
 
  58   <xsl:apply-templates select=".//tocentry"/>
 
  61 <xsl:template match="tocentry|notoc">
 
  63   <xsl:apply-templates select="." mode="calculate-dir"/>
 
  65   <xsl:if test="@filename">
 
  66     <xsl:call-template name="output-root"/>
 
  67     <xsl:value-of select="@dir"/>
 
  68     <xsl:value-of select="$filename-prefix"/>
 
  69     <xsl:value-of select="@filename"/>
 
  70     <xsl:text>: </xsl:text>
 
  71     <xsl:value-of select="@page"/>
 
  72     <xsl:text>
</xsl:text>
 
  76 <xsl:template match="toc" mode="all">
 
  77   <xsl:apply-templates select=".//tocentry" mode="all"/>
 
  79   <xsl:apply-templates select="." mode="calculate-dir"/>
 
  81   <xsl:call-template name="output-root"/>
 
  82   <xsl:value-of select="@dir"/>
 
  83   <xsl:value-of select="$filename-prefix"/>
 
  84   <xsl:value-of select="@filename"/>
 
  85   <xsl:text> </xsl:text>
 
  88 <xsl:template match="tocentry|notoc" mode="all">
 
  90   <xsl:apply-templates select="." mode="calculate-dir"/>
 
  92   <xsl:if test="@filename">
 
  93     <xsl:call-template name="output-root"/>
 
  94     <xsl:value-of select="@dir"/>
 
  95     <xsl:value-of select="$filename-prefix"/>
 
  96     <xsl:value-of select="@filename"/>
 
  97     <xsl:text> </xsl:text>
 
 101 <xsl:template match="*" mode="calculate-dir">
 
 103     <xsl:when test="starts-with(@dir, '/')">
 
 104       <!-- if the directory on this begins with a "/", we're done... -->
 
 105       <xsl:value-of select="substring-after(@dir, '/')"/>
 
 107       <xsl:if test="@dir != '/'">
 
 108         <xsl:text>/</xsl:text>
 
 113     <xsl:when test="parent::*">
 
 114       <!-- if there's a parent, try it -->
 
 115       <xsl:apply-templates select="parent::*" mode="calculate-dir"/>
 
 117         <xsl:value-of select="@dir"/>
 
 119         <xsl:text>/</xsl:text>
 
 126         <xsl:value-of select="@dir"/>
 
 128         <xsl:text>/</xsl:text>
 
 135 <xsl:template name="output-root">
 
 136   <xsl:if test="$output-root != ''">
 
 137     <xsl:value-of select="$output-root"/>
 
 138     <xsl:text>/</xsl:text>