source: trunk/adm/guides/navigation02_html.xsl @ 27

Last change on this file since 27 was 27, checked in by pinsard, 15 years ago

new User's guide production

File size: 8.3 KB
Line 
1<?xml version="1.0" encoding="iso-8859-15"?>
2<xsl:stylesheet 
3xmlns:xsl="http://www.w3.org/1999/XSL/Transform" 
4version="1.0">
5<!--
6
7MODULE
8======
9
10production of navigation
11
12FILES
13=====
14
15/usr/home/fplod/incas/ncstat/ncstat_ws/adm/guides/navigation02_html.xsl sur aedon.locean-ipsl.upmc.fr
16
17TODO
18====
19
20search (see doxygen output)
21
22EVOLUTIONS
23==========
24
25$Id$
26
27- fplod 2009-04-22T14:52:55Z aedon.locean-ipsl.upmc.fr (Darwin)
28
29  * avoid multiple "current" id in the same HTML file
30
31- fplod 2009-04-22T13:29:15Z aedon.locean-ipsl.upmc.fr (Darwin)
32
33  * liste des sect1 si noeud courant = appendix
34  * liste des sect1 si noeud courant = appendx/sect1
35  * identification du appendix courant si sect1
36
37- fplod 2009-04-22T13:18:37Z aedon.locean-ipsl.upmc.fr (Darwin)
38
39  * liste des chapitres si noeud courant = appendix
40
41- fplod 2009-04-22T08:44:58Z aedon.locean-ipsl.upmc.fr (Darwin)
42
43  * identification du chapitre courant si sect1
44  * liste des sect2 si noeud courant = sect1
45  * liste des chapitres si noeud courant = sect2
46  * identification du chapitre courant si sect2
47  * identification de la sect1 courante si sect2
48
49- fplod 2009-04-21T11:09:50Z aedon.locean-ipsl.upmc.fr (Darwin)
50
51  * creation inspired by
52    http://www.alistapart.com/articles/slidingdoors
53    and
54    http://www.alistapart.com/d/slidingdoors/v1/v1.html
55-->
56
57<xsl:template name="navigation02_html">
58<xsl:param name="node" select="."/>
59
60<!--
61<xsl:message>
62titre noeud: <xsl:value-of select="($node/title)"/>
63titre courant: <xsl:value-of select="(./title)"/>
64id noeud: <xsl:value-of select="($node/@id)"/>
65id courant: <xsl:value-of select="(./@id)"/>
66type courant: <xsl:value-of select="local-name()"/>
67</xsl:message>
68-->
69
70 <xsl:element name="div">
71  <xsl:attribute name="id">header_chapter</xsl:attribute> 
72
73  <!-- ul chapters and appendices -->
74  <xsl:if test="local-name() = 'book'">
75   <xsl:element name="ul">
76    <xsl:for-each select="//chapter|//appendix"> 
77     <xsl:element name="li">
78      <xsl:element name="a">
79       <xsl:attribute name="href">
80       <xsl:value-of select="@id"/>
81       <xsl:text>.html</xsl:text>
82       </xsl:attribute>
83       <xsl:value-of select="title"/>
84      </xsl:element>
85     </xsl:element>
86    </xsl:for-each>
87   </xsl:element>
88  </xsl:if>
89
90  <xsl:if test="local-name() = 'chapter'">
91   <xsl:element name="ul">
92    <xsl:for-each select="//chapter|//appendix">
93     <xsl:element name="li">
94      <xsl:if test="$node/@id = ./@id">
95       <xsl:attribute name="id">current_chapter</xsl:attribute> 
96      </xsl:if>
97      <xsl:element name="a">
98       <xsl:attribute name="href">
99       <xsl:value-of select="@id"/>
100       <xsl:text>.html</xsl:text>
101       </xsl:attribute>
102       <xsl:value-of select="title"/>
103      </xsl:element>
104     </xsl:element>
105    </xsl:for-each> 
106   </xsl:element>
107  </xsl:if>
108  <xsl:if test="local-name() = 'appendix'">
109   <xsl:element name="ul">
110    <xsl:for-each select="//chapter|//appendix">
111     <xsl:element name="li">
112      <xsl:if test="$node/@id = ./@id">
113       <xsl:attribute name="id">current_chapter</xsl:attribute>
114      </xsl:if>
115      <xsl:element name="a">
116       <xsl:attribute name="href">
117       <xsl:value-of select="@id"/>
118       <xsl:text>.html</xsl:text>
119       </xsl:attribute>
120       <xsl:value-of select="title"/>
121      </xsl:element>
122     </xsl:element>
123    </xsl:for-each>
124   </xsl:element>
125  </xsl:if>
126
127  <xsl:if test="local-name() = 'sect1'">
128   <xsl:element name="ul">
129    <xsl:for-each select="ancestor::book/chapter|ancestor::book/appendix">
130     <xsl:element name="li">
131      <xsl:if test="$node/ancestor-or-self::chapter/@id = ./@id">
132       <xsl:attribute name="id">current_chapter</xsl:attribute>
133      </xsl:if>
134      <xsl:if test="$node/ancestor-or-self::appendix/@id = ./@id">
135       <xsl:attribute name="id">current_chapter</xsl:attribute>
136      </xsl:if>
137      <xsl:element name="a">
138       <xsl:attribute name="href">
139       <xsl:value-of select="@id"/>
140       <xsl:text>.html</xsl:text>
141       </xsl:attribute>
142       <xsl:value-of select="title"/>
143      </xsl:element>
144     </xsl:element>
145    </xsl:for-each>
146   </xsl:element>
147  </xsl:if>
148  <xsl:if test="local-name() = 'sect2'">
149   <xsl:element name="ul">
150    <xsl:for-each select="ancestor::book/chapter|ancestor::book/appendix">
151     <xsl:element name="li">
152      <xsl:if test="$node/ancestor-or-self::chapter/@id = ./@id">
153       <xsl:attribute name="id">current_chapter</xsl:attribute>
154      </xsl:if>
155      <xsl:if test="$node/ancestor-or-self::appendix/@id = ./@id">
156       <xsl:attribute name="id">current_chapter</xsl:attribute>
157      </xsl:if>
158      <xsl:element name="a">
159       <xsl:attribute name="href">
160       <xsl:value-of select="@id"/>
161       <xsl:text>.html</xsl:text>
162       </xsl:attribute>
163       <xsl:value-of select="title"/>
164      </xsl:element>
165     </xsl:element>
166    </xsl:for-each>
167   </xsl:element>
168  </xsl:if>
169
170
171 </xsl:element>
172
173 <xsl:element name="div">
174  <xsl:attribute name="id">header_sect1</xsl:attribute> 
175  <xsl:if test="local-name() = 'chapter'">
176   <xsl:element name="ul"> 
177    <xsl:for-each select="./sect1">
178     <xsl:element name="li">
179      <xsl:if test="$node/@id = ./@id">
180       <xsl:attribute name="id">current_sect1</xsl:attribute> 
181      </xsl:if>
182      <xsl:element name="a">
183       <xsl:attribute name="href">
184       <xsl:value-of select="@id"/>
185       <xsl:text>.html</xsl:text>
186       </xsl:attribute>
187       <xsl:value-of select="title"/>
188      </xsl:element>
189     </xsl:element>
190    </xsl:for-each>
191   </xsl:element>
192  </xsl:if>
193  <xsl:if test="local-name() = 'appendix'">
194   <xsl:element name="ul">
195    <xsl:for-each select="./sect1">
196     <xsl:element name="li">
197      <xsl:if test="$node/@id = ./@id">
198       <xsl:attribute name="id">current_sect1</xsl:attribute>
199      </xsl:if>
200      <xsl:element name="a">
201       <xsl:attribute name="href">
202       <xsl:value-of select="@id"/>
203       <xsl:text>.html</xsl:text>
204       </xsl:attribute>
205       <xsl:value-of select="title"/>
206      </xsl:element>
207     </xsl:element>
208    </xsl:for-each>
209   </xsl:element>
210  </xsl:if>
211
212  <xsl:if test="local-name() = 'sect1'">
213   <xsl:element name="ul"> 
214    <xsl:for-each select="ancestor::chapter/sect1|ancestor::appendix/sect1">
215     <xsl:element name="li">
216      <xsl:if test="$node/@id = ./@id">
217       <xsl:attribute name="id">current_sect1</xsl:attribute> 
218      </xsl:if>
219      <xsl:element name="a">
220       <xsl:attribute name="href">
221       <xsl:value-of select="@id"/>
222       <xsl:text>.html</xsl:text>
223       </xsl:attribute>
224       <xsl:value-of select="title"/>
225      </xsl:element>
226      </xsl:element>
227    </xsl:for-each>
228   </xsl:element>
229  </xsl:if>
230  <xsl:if test="local-name() = 'sect2'">
231   <xsl:element name="ul">
232    <xsl:for-each select="ancestor::chapter/sect1">
233     <xsl:element name="li">
234      <xsl:if test="$node/ancestor-or-self::sect1/@id = ./@id">
235       <xsl:attribute name="id">current_sect1</xsl:attribute>
236      </xsl:if>
237      <xsl:element name="a">
238       <xsl:attribute name="href">
239       <xsl:value-of select="@id"/>
240       <xsl:text>.html</xsl:text>
241       </xsl:attribute>
242       <xsl:value-of select="title"/>
243      </xsl:element>
244      </xsl:element>
245    </xsl:for-each>
246   </xsl:element>
247  </xsl:if>
248
249
250 </xsl:element>
251
252 <xsl:element name="div">
253  <xsl:attribute name="id">header_sect2</xsl:attribute> 
254
255  <xsl:if test="local-name() = 'sect2'">
256   <xsl:element name="ul"> 
257    <xsl:for-each select="ancestor::sect1/sect2">
258     <xsl:element name="li">
259      <xsl:if test="$node/@id = ./@id">
260       <xsl:attribute name="id">current_sect2</xsl:attribute> 
261      </xsl:if>
262      <xsl:element name="a">
263       <xsl:attribute name="href">
264       <xsl:value-of select="@id"/>
265       <xsl:text>.html</xsl:text>
266       </xsl:attribute>
267       <xsl:value-of select="title"/>
268      </xsl:element>
269      </xsl:element>
270    </xsl:for-each>
271   </xsl:element>
272  </xsl:if>
273  <xsl:if test="local-name() = 'sect1'">
274   <xsl:element name="ul">
275    <xsl:for-each select="./sect2">
276     <xsl:element name="li">
277      <xsl:if test="$node/ancestor-or-self::sect2/@id = ./@id">
278       <xsl:attribute name="id">current_sect2</xsl:attribute>
279      </xsl:if>
280      <xsl:element name="a">
281       <xsl:attribute name="href">
282       <xsl:value-of select="@id"/>
283       <xsl:text>.html</xsl:text>
284       </xsl:attribute>
285       <xsl:value-of select="title"/>
286      </xsl:element>
287      </xsl:element>
288    </xsl:for-each>
289   </xsl:element>
290  </xsl:if>
291
292 </xsl:element>
293</xsl:template>
294</xsl:stylesheet>
Note: See TracBrowser for help on using the repository browser.