]> git.proxmox.com Git - ceph.git/blob - ceph/src/boost/tools/boostbook/xsl/navbar.xsl
add subtree-ish sources for 12.0.3
[ceph.git] / ceph / src / boost / tools / boostbook / xsl / navbar.xsl
1 <?xml version="1.0" encoding="utf-8"?>
2 <!--
3 Copyright (c) 2002 Douglas Gregor <doug.gregor -at- gmail.com>
4
5 Distributed under the Boost Software License, Version 1.0.
6 (See accompanying file LICENSE_1_0.txt or copy at
7 http://www.boost.org/LICENSE_1_0.txt)
8 -->
9 <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
10 version="1.0">
11
12 <!-- Already included in the main style sheet -->
13 <!-- <xsl:import href="relative-href.xsl"/> -->
14
15 <!--
16 boost.defaults:
17 *none - only use explicitly set parameters
18 Boost - use standard boost settings, can be overridden
19 -->
20 <xsl:param name = "boost.defaults" select = "'none'"/>
21
22 <!--
23 how to render the Home | Libraries | ... | More contents
24 *none - do not display ("standalone" mode)
25 horizontal - display in old-Boost style format (default for Boost)
26 vertical - like the new Getting Started layout
27 -->
28 <xsl:param name = "nav.layout">
29 <xsl:choose>
30 <xsl:when test = "$boost.defaults='Boost'">horizontal</xsl:when>
31 <xsl:otherwise>none</xsl:otherwise>
32 </xsl:choose>
33 </xsl:param>
34 <!--
35 header border layout
36 Boost - place the old-Boost border around the header
37 Fullbleed - Simple CSS based full bleed header image
38 *none - do not place a border around the header
39 -->
40 <xsl:param name = "nav.border" select = "'none'" />
41
42 <!--
43 nav.flow:
44 none - do not display navigation at the header
45 DocBook - display the navigation after the header
46 *Spirit - display "mini" navigation on the right
47 -->
48 <xsl:param name = "nav.flow" select = "'Spirit'"/>
49
50 <!-- location of the various Boost elements -->
51
52 <xsl:param name = "boost.root" select = "'../..'"/>
53 <xsl:param name = "boost.website" select = "'http://www.boost.org'"/>
54 <!-- Logo image location, leave empty for no logo -->
55 <xsl:param name = "boost.image.src">
56 <xsl:if test = "$boost.defaults = 'Boost'">
57 <xsl:value-of select = "concat($boost.root, '/boost.png')"/>
58 </xsl:if>
59 </xsl:param>
60 <xsl:param name = "boost.image.alt">
61 <xsl:if test = "$boost.defaults = 'Boost'">
62 <xsl:value-of select = "'Boost C++ Libraries'"/>
63 </xsl:if>
64 </xsl:param>
65 <xsl:param name = "boost.image.w">
66 <xsl:if test = "$boost.defaults = 'Boost'">
67 <xsl:value-of select = "277"/>
68 </xsl:if>
69 </xsl:param>
70 <xsl:param name = "boost.image.h">
71 <xsl:if test = "$boost.defaults = 'Boost'">
72 <xsl:value-of select = "86"/>
73 </xsl:if>
74 </xsl:param>
75 <xsl:param name = "boost.libraries">
76 <xsl:if test = "$boost.defaults = 'Boost'">
77 <xsl:value-of select = "concat($boost.root, '/libs/libraries.htm')"/>
78 </xsl:if>
79 </xsl:param>
80
81 <!-- header -->
82
83 <xsl:template name = "header.navigation">
84 <xsl:param name = "prev" select = "/foo"/>
85 <xsl:param name = "next" select = "/foo"/>
86 <xsl:param name = "nav.context"/>
87
88 <xsl:variable name = "home" select = "/*[1]"/>
89 <xsl:variable name = "up" select = "parent::*"/>
90
91 <xsl:choose>
92 <xsl:when test = "$nav.border = 'Fullbleed'">
93 <xsl:if test = "boolean(normalize-space($boost.image.src))">
94 <div class="header-fullbleed">
95 <img alt="{$boost.image.alt}" width="{$boost.image.w}" height="{$boost.image.h}">
96 <xsl:attribute name="src">
97 <xsl:call-template name="href.target.relative">
98 <xsl:with-param name="target" select="$boost.image.src"/>
99 </xsl:call-template>
100 </xsl:attribute>
101 </img>
102 </div>
103 </xsl:if>
104 </xsl:when>
105 <xsl:when test = "boolean(normalize-space($boost.image.src)) or $nav.layout != 'none'">
106 <table cellpadding = "2" width = "100%"><tr>
107 <xsl:if test = "$nav.border = 'Boost'">
108 <xsl:attribute name = "class">boost-head</xsl:attribute>
109 </xsl:if>
110
111 <td valign = "top">
112 <xsl:if test = "$nav.border = 'Boost'">
113 <xsl:attribute name = "style">background-color: white; width: 50%;</xsl:attribute>
114 </xsl:if>
115 <xsl:if test = "boolean(normalize-space($boost.image.src))">
116 <img alt="{$boost.image.alt}" width="{$boost.image.w}" height="{$boost.image.h}">
117 <xsl:attribute name="src">
118 <xsl:call-template name="href.target.relative">
119 <xsl:with-param name="target" select="$boost.image.src"/>
120 </xsl:call-template>
121 </xsl:attribute>
122 </img>
123 </xsl:if>
124 </td><xsl:choose>
125 <xsl:when test = "$nav.layout = 'horizontal'">
126 <xsl:call-template name = "header.navdata-horiz"/>
127 </xsl:when><xsl:when test = "$nav.layout = 'vertical'">
128 <xsl:call-template name = "header.navdata-vert"/>
129 </xsl:when>
130 </xsl:choose>
131 </tr></table>
132 <hr/>
133 </xsl:when>
134 </xsl:choose>
135 <xsl:choose>
136 <xsl:when test = "$nav.flow = 'DocBook'">
137 <table width = "100%" class = "navheader">
138 <xsl:call-template name = "navbar.docbook-homeinfo">
139 <xsl:with-param name = "prev" select = "$prev"/>
140 <xsl:with-param name = "next" select = "$next"/>
141 <xsl:with-param name = "nav.context" select = "$nav.context"/>
142 </xsl:call-template>
143 <xsl:call-template name = "navbar.docbook-prevnext">
144 <xsl:with-param name = "prev" select = "$prev"/>
145 <xsl:with-param name = "next" select = "$next"/>
146 <xsl:with-param name = "nav.context" select = "$nav.context"/>
147 </xsl:call-template>
148 </table>
149 </xsl:when><xsl:when test = "$nav.flow = 'Spirit'">
150 <xsl:call-template name = "navbar.spirit">
151 <xsl:with-param name = "prev" select = "$prev"/>
152 <xsl:with-param name = "next" select = "$next"/>
153 <xsl:with-param name = "nav.context" select = "$nav.context"/>
154 </xsl:call-template>
155 </xsl:when>
156 </xsl:choose>
157 </xsl:template>
158
159 <xsl:template name = "header.navdata-horiz">
160 <xsl:variable name="home_link">
161 <xsl:call-template name="href.target.relative">
162 <xsl:with-param name="target" select="concat( $boost.root, '/index.html' )"/>
163 </xsl:call-template>
164 </xsl:variable>
165 <xsl:variable name="libraries_link">
166 <xsl:if test = "boolean($boost.libraries)">
167 <xsl:call-template name="href.target.relative">
168 <xsl:with-param name="target" select="$boost.libraries"/>
169 </xsl:call-template>
170 </xsl:if>
171 </xsl:variable>
172 <xsl:variable name="people_link">
173 <xsl:call-template name="href.target.relative">
174 <xsl:with-param name="target" select="concat( $boost.website, '/users/people.html' )"/>
175 </xsl:call-template>
176 </xsl:variable>
177 <xsl:variable name="faq_link">
178 <xsl:call-template name="href.target.relative">
179 <xsl:with-param name="target" select="concat( $boost.website, '/users/faq.html' )"/>
180 </xsl:call-template>
181 </xsl:variable>
182 <xsl:variable name="more_link">
183 <xsl:call-template name="href.target.relative">
184 <xsl:with-param name="target" select="concat( $boost.root, '/more/index.htm' )"/>
185 </xsl:call-template>
186 </xsl:variable>
187
188 <xsl:choose>
189 <xsl:when test = "$nav.border = 'Boost'">
190 <td align = "center" class = "boost-headtd"><a href = "{$home_link}" class = "boost-headelem">Home</a></td>
191 <xsl:if test = "boolean($libraries_link)">
192 <td align = "center" class = "boost-headtd"><a href = "{$libraries_link}" class = "boost-headelem">Libraries</a></td>
193 </xsl:if>
194 <td align = "center" class = "boost-headtd"><a href = "{$people_link}" class = "boost-headelem">People</a></td>
195 <td align = "center" class = "boost-headtd"><a href = "{$faq_link}" class = "boost-headelem">FAQ</a></td>
196 <td align = "center" class = "boost-headtd"><a href = "{$more_link}" class = "boost-headelem">More</a></td>
197 </xsl:when><xsl:otherwise>
198 <td align = "center"><a href = "{$home_link}">Home</a></td>
199 <td align = "center"><a href = "{$libraries_link}">Libraries</a></td>
200 <td align = "center"><a href = "{$people_link}">People</a></td>
201 <td align = "center"><a href = "{$faq_link}">FAQ</a></td>
202 <td align = "center"><a href = "{$more_link}">More</a></td>
203 </xsl:otherwise>
204 </xsl:choose>
205 </xsl:template>
206
207 <xsl:template name = "header.navdata-vert">
208 <xsl:variable name="home_link">
209 <xsl:call-template name="href.target.relative">
210 <xsl:with-param name="target" select="concat( $boost.root, '/index.html' )"/>
211 </xsl:call-template>
212 </xsl:variable>
213 <xsl:variable name="libraries_link">
214 <xsl:call-template name="href.target.relative">
215 <xsl:with-param name="target" select="$boost.libraries"/>
216 </xsl:call-template>
217 </xsl:variable>
218 <xsl:variable name="people_link">
219 <xsl:call-template name="href.target.relative">
220 <xsl:with-param name="target" select="concat( $boost.website, '/users/people.html' )"/>
221 </xsl:call-template>
222 </xsl:variable>
223 <xsl:variable name="faq_link">
224 <xsl:call-template name="href.target.relative">
225 <xsl:with-param name="target" select="concat( $boost.website, '/users/faq.html' )"/>
226 </xsl:call-template>
227 </xsl:variable>
228 <xsl:variable name="more_link">
229 <xsl:call-template name="href.target.relative">
230 <xsl:with-param name="target" select="concat( $boost.root, '/more/index.htm' )"/>
231 </xsl:call-template>
232 </xsl:variable>
233
234 <td><div>
235 <xsl:if test = "$nav.border != 'Boost'">
236 <xsl:attribute name = "class">boost-toc</xsl:attribute>
237 </xsl:if>
238 <div><a href = "{$home_link}">Home</a></div>
239 <div><a href = "{$libraries_link}">Libraries</a></div>
240 <div><a href = "{$people_link}">People</a></div>
241 <div><a href = "{$faq_link}">FAQ</a></div>
242 <div><a href = "{$more_link}">More</a></div>
243 </div></td>
244 </xsl:template>
245
246
247 <!-- footer -->
248
249 <xsl:template name = "footer.navigation">
250 <xsl:param name = "prev" select = "/foo"/>
251 <xsl:param name = "next" select = "/foo"/>
252 <xsl:param name = "nav.context"/>
253
254 <hr/>
255 <xsl:choose>
256 <xsl:when test = "$nav.flow = 'DocBook'">
257 <table width = "100%" class = "navheader">
258 <xsl:call-template name = "navbar.docbook-prevnext">
259 <xsl:with-param name = "prev" select = "$prev"/>
260 <xsl:with-param name = "next" select = "$next"/>
261 <xsl:with-param name = "nav.context" select = "$nav.context"/>
262 </xsl:call-template>
263 <xsl:call-template name = "navbar.docbook-homeinfo">
264 <xsl:with-param name = "prev" select = "$prev"/>
265 <xsl:with-param name = "next" select = "$next"/>
266 <xsl:with-param name = "nav.context" select = "$nav.context"/>
267 </xsl:call-template>
268 </table>
269 </xsl:when><xsl:when test = "$nav.flow = 'Spirit'">
270 <xsl:call-template name = "navbar.spirit">
271 <xsl:with-param name = "prev" select = "$prev"/>
272 <xsl:with-param name = "next" select = "$next"/>
273 <xsl:with-param name = "nav.context" select = "$nav.context"/>
274 </xsl:call-template>
275 </xsl:when>
276 </xsl:choose>
277 </xsl:template>
278
279 <!-- navbar -->
280
281 <xsl:template name = "navbar.docbook-homeinfo">
282 <xsl:param name = "prev" select = "/foo"/>
283 <xsl:param name = "next" select = "/foo"/>
284 <xsl:param name = "nav.context"/>
285
286 <xsl:variable name = "home" select = "/*[1]"/>
287 <tr>
288 <td align = "left" width = "40%">
289 <xsl:if test = "$navig.showtitles != 0"> <!-- prev:name -->
290 <xsl:apply-templates select = "$prev" mode = "object.title.markup"/>
291 </xsl:if>
292 </td><td align = "center" width = "20%">
293 <!-- home -->
294 <xsl:if test = "$home != . or $nav.context = 'toc'">
295 <a accesskey = "h">
296 <xsl:attribute name = "href"><xsl:call-template name = "href.target">
297 <xsl:with-param name = "object" select = "$home"/>
298 </xsl:call-template></xsl:attribute>
299 <xsl:call-template name = "navig.content">
300 <xsl:with-param name = "direction" select = "'home'"/>
301 </xsl:call-template>
302 </a>
303 <xsl:if test = "$chunk.tocs.and.lots != 0 and $nav.context != 'toc'">
304 <xsl:text>|</xsl:text>
305 </xsl:if>
306 </xsl:if>
307 <xsl:if test = "$chunk.tocs.and.lots != 0 and $nav.context != 'toc'"><a accesskey = "t">
308 <xsl:attribute name = "href">
309 <xsl:apply-templates select = "/*[1]" mode = "recursive-chunk-filename"/>
310 <xsl:text>-toc</xsl:text>
311 <xsl:value-of select = "$html.ext"/>
312 </xsl:attribute>
313 <xsl:call-template name = "gentext">
314 <xsl:with-param name = "key" select = "'nav-toc'"/>
315 </xsl:call-template>
316 </a></xsl:if>
317 </td><td align = "right" width = "40%">
318 <xsl:if test = "$navig.showtitles != 0"> <!-- next:name -->
319 <xsl:apply-templates select = "$next" mode = "object.title.markup"/>
320 </xsl:if>
321 </td>
322 </tr>
323 </xsl:template>
324
325 <xsl:template name = "navbar.docbook-prevnext">
326 <xsl:param name = "prev" select = "/foo"/>
327 <xsl:param name = "next" select = "/foo"/>
328 <xsl:param name = "nav.context"/>
329
330 <xsl:variable name = "up" select = "parent::*"/>
331 <tr>
332 <td align = "left" width = "40%">
333 <xsl:if test = "count($prev)>0"><a accesskey = "p"> <!-- prev -->
334 <xsl:attribute name = "href"><xsl:call-template name = "href.target">
335 <xsl:with-param name = "object" select = "$prev"/>
336 </xsl:call-template></xsl:attribute>
337 <xsl:call-template name = "navig.content">
338 <xsl:with-param name = "direction" select = "'prev'"/>
339 </xsl:call-template>
340 </a></xsl:if>
341 </td><td align = "center" width = "20%">
342 <xsl:if test = "count($up)>0"><a accesskey = "u"> <!-- up -->
343 <xsl:attribute name = "href"><xsl:call-template name = "href.target">
344 <xsl:with-param name = "object" select = "$up"/>
345 </xsl:call-template></xsl:attribute>
346 <xsl:call-template name = "navig.content">
347 <xsl:with-param name = "direction" select = "'up'"/>
348 </xsl:call-template>
349 </a></xsl:if>
350 </td><td align = "right" width = "40%">
351 <xsl:if test = "count($next)>0"><a accesskey = "n"> <!-- next -->
352 <xsl:attribute name = "href"><xsl:call-template name = "href.target">
353 <xsl:with-param name = "object" select = "$next"/>
354 </xsl:call-template></xsl:attribute>
355 <xsl:call-template name = "navig.content">
356 <xsl:with-param name = "direction" select = "'next'"/>
357 </xsl:call-template>
358 </a></xsl:if>
359 </td>
360 </tr>
361 </xsl:template>
362
363 <xsl:template name = "navbar.spirit">
364 <xsl:param name = "prev" select = "/foo"/>
365 <xsl:param name = "next" select = "/foo"/>
366 <xsl:param name = "nav.context"/>
367
368 <xsl:variable name = "home" select = "/*[1]"/>
369 <xsl:variable name = "up" select = "parent::*"/>
370
371 <div class = "spirit-nav">
372 <!-- prev -->
373 <xsl:if test = "count($prev)>0"><a accesskey = "p">
374 <xsl:attribute name = "href"><xsl:call-template name = "href.target">
375 <xsl:with-param name = "object" select = "$prev"/>
376 </xsl:call-template></xsl:attribute>
377 <xsl:call-template name = "navig.content">
378 <xsl:with-param name = "direction" select = "'prev'"/>
379 </xsl:call-template>
380 </a></xsl:if>
381 <!-- up -->
382 <xsl:if test = "count($up)>0"><a accesskey = "u">
383 <xsl:attribute name = "href"><xsl:call-template name = "href.target">
384 <xsl:with-param name = "object" select = "$up"/>
385 </xsl:call-template></xsl:attribute>
386 <xsl:call-template name = "navig.content">
387 <xsl:with-param name = "direction" select = "'up'"/>
388 </xsl:call-template>
389 </a></xsl:if>
390 <!-- home -->
391 <xsl:if test = "generate-id($home) != generate-id(.) or $nav.context = 'toc'">
392 <a accesskey = "h">
393 <xsl:attribute name = "href"><xsl:call-template name = "href.target">
394 <xsl:with-param name = "object" select = "$home"/>
395 </xsl:call-template></xsl:attribute>
396 <xsl:call-template name = "navig.content">
397 <xsl:with-param name = "direction" select = "'home'"/>
398 </xsl:call-template>
399 </a>
400 <xsl:if test = "$chunk.tocs.and.lots != 0 and $nav.context != 'toc'">
401 <xsl:text>|</xsl:text>
402 </xsl:if>
403 </xsl:if>
404 <xsl:if test = "$chunk.tocs.and.lots != 0 and $nav.context != 'toc'"><a accesskey = "t">
405 <xsl:attribute name = "href">
406 <xsl:apply-templates select = "/*[1]" mode = "recursive-chunk-filename"/>
407 <xsl:text>-toc</xsl:text>
408 <xsl:value-of select = "$html.ext"/>
409 </xsl:attribute>
410 <xsl:call-template name = "gentext">
411 <xsl:with-param name = "key" select = "'nav-toc'"/>
412 </xsl:call-template>
413 </a></xsl:if>
414 <!-- next -->
415 <xsl:if test = "count($next)>0"><a accesskey = "n">
416 <xsl:attribute name = "href"><xsl:call-template name = "href.target">
417 <xsl:with-param name = "object" select = "$next"/>
418 </xsl:call-template></xsl:attribute>
419 <xsl:call-template name = "navig.content">
420 <xsl:with-param name = "direction" select = "'next'"/>
421 </xsl:call-template>
422 </a></xsl:if>
423 </div>
424 </xsl:template>
425 </xsl:stylesheet>