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>