source: stylesheets/lfs-xsl/docbook-xsl-1.78.1/htmlhelp/profile-htmlhelp-common.xsl@ f6e9c180

7.6-systemd 7.7-systemd 7.8-systemd 7.9-systemd
Last change on this file since f6e9c180 was b1a51ac1, checked in by Krejzi <krejzi@…>, 11 years ago

Import new branch

git-svn-id: http://svn.linuxfromscratch.org/LFS/branches/systemd/BOOK@10389 4aa44e1e-78dd-0310-a6d2-fbcd4c07a689

  • Property mode set to 100644
File size: 38.5 KB
Line 
1<?xml version="1.0" encoding="US-ASCII"?>
2<!--This file was created automatically by xsl2profile-->
3<!--from the DocBook XSL stylesheets.-->
4<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" xmlns:exsl="http://exslt.org/common" xmlns:set="http://exslt.org/sets" xmlns:h="urn:x-hex" xmlns:ng="http://docbook.org/docbook-ng" xmlns:db="http://docbook.org/ns/docbook" xmlns:exslt="http://exslt.org/common" exslt:dummy="dummy" ng:dummy="dummy" db:dummy="dummy" extension-element-prefixes="exslt" version="1.0" exclude-result-prefixes="doc exsl set h db ng exslt">
5
6<!-- ********************************************************************
7 $Id: htmlhelp-common.xsl 9151 2011-11-12 00:16:19Z bobstayton $
8 ******************************************************************** -->
9
10<!-- ==================================================================== -->
11<!-- Customizations of standard HTML stylesheet parameters -->
12
13<!-- no navigation on pages by default, HTML Help provides its own navigation controls -->
14<xsl:param name="suppress.navigation" select="1"/>
15
16<!-- no separate HTML page with index, index is built inside CHM index pane -->
17<xsl:param name="generate.index" select="0"/>
18
19<!-- ==================================================================== -->
20
21<xsl:param name="htmlhelp.generate.index" select="//indexterm[1]|//db:indexterm[1]|//ng:indexterm[1]"/>
22
23<!-- Set up HTML Help flag -->
24<xsl:variable name="htmlhelp.output" select="1"/>
25
26<!-- ==================================================================== -->
27
28<xslo:include xmlns:xslo="http://www.w3.org/1999/XSL/Transform" href="../profiling/profile-mode.xsl"/><xslo:variable xmlns:xslo="http://www.w3.org/1999/XSL/Transform" name="profiled-content"><xslo:choose><xslo:when test="*/self::ng:* or */self::db:*"><xslo:message>Note: namesp. cut : stripped namespace before processing</xslo:message><xslo:variable name="stripped-content"><xslo:apply-templates select="/" mode="stripNS"/></xslo:variable><xslo:message>Note: namesp. cut : processing stripped document</xslo:message><xslo:apply-templates select="exslt:node-set($stripped-content)" mode="profile"/></xslo:when><xslo:otherwise><xslo:apply-templates select="/" mode="profile"/></xslo:otherwise></xslo:choose></xslo:variable><xslo:variable xmlns:xslo="http://www.w3.org/1999/XSL/Transform" name="profiled-nodes" select="exslt:node-set($profiled-content)"/><xsl:template match="/">
29
30 <!-- * Get a title for current doc so that we let the user -->
31 <!-- * know what document we are processing at this point. -->
32 <xsl:variable name="doc.title">
33 <xsl:call-template name="get.doc.title"/>
34 </xsl:variable>
35 <xsl:choose>
36 <!-- Hack! If someone hands us a DocBook V5.x or DocBook NG document,
37 toss the namespace and continue. Use the docbook5 namespaced
38 stylesheets for DocBook5 if you don't want to use this feature.-->
39 <xsl:when test="false()"/>
40 <xsl:otherwise>
41 <xsl:if test="$htmlhelp.only != 1">
42 <xsl:choose>
43 <xsl:when test="$rootid != ''">
44 <xsl:choose>
45 <xsl:when test="count($profiled-nodes//*[@id=$rootid or @xml:id=$rootid]) = 0">
46 <xsl:message terminate="yes">
47 <xsl:text>ID '</xsl:text>
48 <xsl:value-of select="$rootid"/>
49 <xsl:text>' not found in document.</xsl:text>
50 </xsl:message>
51 </xsl:when>
52 <xsl:otherwise>
53 <xsl:message>Formatting from <xsl:value-of select="$rootid"/></xsl:message>
54 <xsl:apply-templates select="$profiled-nodes//*[@id=$rootid or @xml:id=$rootid]" mode="process.root"/>
55 </xsl:otherwise>
56 </xsl:choose>
57 </xsl:when>
58 <xsl:otherwise>
59 <xsl:if test="$collect.xref.targets = 'yes' or $collect.xref.targets = 'only'">
60 <xsl:apply-templates select="$profiled-nodes" mode="collect.targets"/>
61 </xsl:if>
62 <xsl:if test="$collect.xref.targets != 'only'">
63 <xsl:apply-templates select="$profiled-nodes" mode="process.root"/>
64 </xsl:if>
65 </xsl:otherwise>
66 </xsl:choose>
67 </xsl:if>
68
69
70 <xsl:if test="$collect.xref.targets != 'only'">
71 <xsl:call-template name="hhp"/>
72 <xsl:call-template name="hhc"/>
73 <xsl:if test="($rootid = '' and //processing-instruction('dbhh')) or ($rootid != '' and $profiled-nodes//*[@id=$rootid or @xml:id=$rootid]//processing-instruction('dbhh'))">
74 <xsl:call-template name="hh-map"/>
75 <xsl:call-template name="hh-alias"/>
76 </xsl:if>
77 <xsl:if test="$htmlhelp.generate.index">
78 <xsl:call-template name="hhk"/>
79 </xsl:if>
80 </xsl:if>
81</xsl:otherwise>
82</xsl:choose>
83</xsl:template>
84
85<!-- ==================================================================== -->
86
87<xsl:template name="hhp">
88 <xsl:call-template name="write.text.chunk">
89 <xsl:with-param name="filename">
90 <xsl:if test="$manifest.in.base.dir != 0">
91 <xsl:value-of select="$chunk.base.dir"/>
92 </xsl:if>
93 <xsl:value-of select="$htmlhelp.hhp"/>
94 </xsl:with-param>
95 <xsl:with-param name="method" select="'text'"/>
96 <xsl:with-param name="content">
97 <xsl:call-template name="hhp-main"/>
98 </xsl:with-param>
99 <xsl:with-param name="encoding" select="$htmlhelp.encoding"/>
100 <xsl:with-param name="quiet" select="$chunk.quietly"/>
101 </xsl:call-template>
102</xsl:template>
103
104<!-- ==================================================================== -->
105<xsl:template name="hhp-main">
106
107 <xsl:variable name="raw.help.title">
108 <xsl:choose>
109 <xsl:when test="$htmlhelp.title = ''">
110 <xsl:choose>
111 <xsl:when test="$rootid != ''">
112 <xsl:apply-templates select="$profiled-nodes//*[@id=$rootid or @xml:id=$rootid]" mode="title.markup"/>
113 </xsl:when>
114 <xsl:otherwise>
115 <xsl:apply-templates select="$profiled-nodes/*" mode="title.markup"/>
116 </xsl:otherwise>
117 </xsl:choose>
118 </xsl:when>
119 <xsl:otherwise>
120 <xsl:value-of select="$htmlhelp.title"/>
121 </xsl:otherwise>
122 </xsl:choose>
123 </xsl:variable>
124
125 <xsl:variable name="help.title" select="normalize-space($raw.help.title)"/>
126
127<xsl:variable name="default.topic">
128 <xsl:choose>
129 <xsl:when test="$htmlhelp.default.topic != ''">
130 <xsl:value-of select="$htmlhelp.default.topic"/>
131 </xsl:when>
132 <xsl:otherwise>
133 <xsl:call-template name="make-relative-filename">
134 <xsl:with-param name="base.dir">
135 <xsl:if test="$manifest.in.base.dir = 0">
136 <xsl:value-of select="$chunk.base.dir"/>
137 </xsl:if>
138 </xsl:with-param>
139 <xsl:with-param name="base.name">
140 <xsl:choose>
141 <xsl:when test="$rootid != ''">
142 <xsl:apply-templates select="$profiled-nodes//*[@id=$rootid or @xml:id=$rootid]" mode="chunk-filename"/>
143 </xsl:when>
144 <xsl:otherwise>
145 <xsl:apply-templates select="$profiled-nodes" mode="chunk-filename"/>
146 </xsl:otherwise>
147 </xsl:choose>
148 </xsl:with-param>
149 </xsl:call-template>
150 </xsl:otherwise>
151 </xsl:choose>
152</xsl:variable>
153<xsl:variable name="xnavigation">
154 <xsl:text>0x</xsl:text>
155 <xsl:call-template name="toHex">
156 <xsl:with-param name="n" select="9504 + $htmlhelp.show.menu * 65536 + $htmlhelp.show.advanced.search * 131072 + $htmlhelp.show.favorities * 4096 + (1 - $htmlhelp.show.toolbar.text) * 64 + $htmlhelp.remember.window.position * 262144"/>
157 </xsl:call-template>
158</xsl:variable>
159<xsl:variable name="xbuttons">
160 <xsl:text>0x</xsl:text>
161 <xsl:call-template name="toHex">
162 <xsl:with-param name="n" select="0 + $htmlhelp.button.hideshow * 2 + $htmlhelp.button.back * 4 + $htmlhelp.button.forward * 8 + $htmlhelp.button.stop * 16 + $htmlhelp.button.refresh * 32 + $htmlhelp.button.home * 64 + $htmlhelp.button.options * 4096 + $htmlhelp.button.print * 8192 + $htmlhelp.button.locate * 2048 + $htmlhelp.button.jump1 * 262144 + $htmlhelp.button.jump2 * 524288 + $htmlhelp.button.next * 2097152 + $htmlhelp.button.prev * 4194304 + $htmlhelp.button.zoom * 1048576"/>
163 </xsl:call-template>
164</xsl:variable>
165<xsl:text>[OPTIONS]
166</xsl:text>
167<xsl:if test="$htmlhelp.generate.index">
168<xsl:text>Auto Index=Yes
169</xsl:text></xsl:if>
170<xsl:if test="$htmlhelp.hhc.binary != 0">
171<xsl:text>Binary TOC=Yes
172</xsl:text></xsl:if>
173<xsl:text>Compatibility=1.1 or later
174Compiled file=</xsl:text><xsl:value-of select="$htmlhelp.chm"/><xsl:text>
175Contents file=</xsl:text><xsl:value-of select="$htmlhelp.hhc"/><xsl:text>
176</xsl:text>
177<xsl:if test="$htmlhelp.hhp.window != ''">
178<xsl:text>Default Window=</xsl:text><xsl:value-of select="$htmlhelp.hhp.window"/><xsl:text>
179</xsl:text></xsl:if>
180<xsl:text>Default topic=</xsl:text><xsl:value-of select="$default.topic"/>
181<xsl:text>
182Display compile progress=</xsl:text>
183 <xsl:choose>
184 <xsl:when test="$htmlhelp.display.progress != 1">
185 <xsl:text>No</xsl:text>
186 </xsl:when>
187 <xsl:otherwise>
188 <xsl:text>Yes</xsl:text>
189 </xsl:otherwise>
190 </xsl:choose>
191<xsl:text>
192Full-text search=Yes
193</xsl:text>
194<xsl:if test="$htmlhelp.generate.index">
195<xsl:text>Index file=</xsl:text><xsl:value-of select="$htmlhelp.hhk"/><xsl:text>
196</xsl:text></xsl:if>
197<xsl:text>Language=</xsl:text>
198<xsl:for-each select="*"> <!-- Change context from / to root element -->
199 <xsl:call-template name="gentext.template">
200 <xsl:with-param name="context" select="'htmlhelp'"/>
201 <xsl:with-param name="name" select="'langcode'"/>
202 </xsl:call-template>
203</xsl:for-each>
204<xsl:text>
205Title=</xsl:text>
206 <xsl:value-of select="$help.title"/>
207<xsl:text>
208Enhanced decompilation=</xsl:text>
209 <xsl:choose>
210 <xsl:when test="$htmlhelp.enhanced.decompilation != 0">
211 <xsl:text>Yes</xsl:text>
212 </xsl:when>
213 <xsl:otherwise>
214 <xsl:text>No</xsl:text>
215 </xsl:otherwise>
216 </xsl:choose>
217
218<xsl:if test="$htmlhelp.hhp.window != ''">
219 <xsl:text>
220
221[WINDOWS]
222</xsl:text>
223<xsl:value-of select="$htmlhelp.hhp.window"/>
224<xsl:text>="</xsl:text>
225<xsl:value-of select="$help.title"/>
226<xsl:text>","</xsl:text><xsl:value-of select="$htmlhelp.hhc"/>
227<xsl:text>",</xsl:text>
228<xsl:if test="$htmlhelp.generate.index">
229 <xsl:text>"</xsl:text>
230 <xsl:value-of select="$htmlhelp.hhk"/>
231 <xsl:text>"</xsl:text>
232</xsl:if>
233<xsl:text>,"</xsl:text>
234<xsl:value-of select="$default.topic"/>
235<xsl:text>",</xsl:text>
236<xsl:text>"</xsl:text>
237<xsl:choose>
238 <xsl:when test="$htmlhelp.button.home != 0">
239 <xsl:value-of select="$htmlhelp.button.home.url"/>
240 </xsl:when>
241 <xsl:otherwise>
242 <xsl:value-of select="$default.topic"/>
243 </xsl:otherwise>
244</xsl:choose>
245<xsl:text>"</xsl:text>
246<xsl:text>,</xsl:text>
247<xsl:if test="$htmlhelp.button.jump1 != 0">
248 <xsl:text>"</xsl:text>
249 <xsl:value-of select="$htmlhelp.button.jump1.url"/>
250 <xsl:text>"</xsl:text>
251</xsl:if>
252<xsl:text>,</xsl:text>
253<xsl:if test="$htmlhelp.button.jump1 != 0">
254 <xsl:text>"</xsl:text>
255 <xsl:value-of select="$htmlhelp.button.jump1.title"/>
256 <xsl:text>"</xsl:text>
257</xsl:if>
258<xsl:text>,</xsl:text>
259<xsl:if test="$htmlhelp.button.jump2 != 0">
260 <xsl:text>"</xsl:text>
261 <xsl:value-of select="$htmlhelp.button.jump2.url"/>
262 <xsl:text>"</xsl:text>
263</xsl:if>
264<xsl:text>,</xsl:text>
265<xsl:if test="$htmlhelp.button.jump2 != 0">
266 <xsl:text>"</xsl:text>
267 <xsl:value-of select="$htmlhelp.button.jump2.title"/>
268 <xsl:text>"</xsl:text>
269</xsl:if>
270<xsl:text>,</xsl:text>
271<xsl:value-of select="$xnavigation"/>
272<xsl:text>,</xsl:text><xsl:value-of select="$htmlhelp.hhc.width"/><xsl:text>,</xsl:text>
273<xsl:value-of select="$xbuttons"/>
274<xsl:text>,</xsl:text><xsl:value-of select="$htmlhelp.window.geometry"/><xsl:text>,,,,,,,0
275</xsl:text>
276</xsl:if>
277
278<!--
279 Needs more investigation to generate propetly all fields
280<xsl:text>search="</xsl:text>
281<xsl:value-of select="normalize-space(//title[1])"/>
282<xsl:text>","toc.hhc","index.hhk","</xsl:text>
283<xsl:value-of select="$root.filename"/>
284<xsl:text>.html","</xsl:text>
285<xsl:value-of select="$root.filename"/>
286<xsl:text>.html",,,,,</xsl:text>
287<xsl:value-of select="$xnavigation"/>
288<xsl:text>,</xsl:text>
289<xsl:value-of select="$htmlhelp.hhc.width"/>
290<xsl:text>,</xsl:text>
291<xsl:value-of select="$xbuttons"/>
292<xsl:text>,</xsl:text>
293<xsl:value-of select="$htmlhelp.window.geometry"/>
294<xsl:text>,,,,,2,,0
295</xsl:text>
296-->
297
298<xsl:if test="$htmlhelp.hhp.windows">
299 <xsl:value-of select="$htmlhelp.hhp.windows"/>
300</xsl:if>
301<xsl:text>
302
303[FILES]
304</xsl:text>
305
306<xsl:choose>
307 <xsl:when test="$rootid != ''">
308 <xsl:apply-templates select="$profiled-nodes//*[@id=$rootid or @xml:id=$rootid]" mode="enumerate-files"/>
309 </xsl:when>
310 <xsl:otherwise>
311 <xsl:apply-templates select="$profiled-nodes" mode="enumerate-files"/>
312 </xsl:otherwise>
313</xsl:choose>
314
315<xsl:if test="$htmlhelp.enumerate.images">
316 <xsl:variable name="imagelist">
317 <xsl:choose>
318 <xsl:when test="$rootid != ''">
319 <xsl:apply-templates select="$profiled-nodes//*[@id=$rootid or @xml:id=$rootid]" mode="enumerate-images"/>
320 </xsl:when>
321 <xsl:otherwise>
322 <xsl:apply-templates select="$profiled-nodes" mode="enumerate-images"/>
323 </xsl:otherwise>
324 </xsl:choose>
325 </xsl:variable>
326 <xsl:choose>
327 <xsl:when test="$exsl.node.set.available != 0 and function-available('set:distinct')">
328 <xsl:for-each select="set:distinct(exsl:node-set($imagelist)/filename)">
329 <xsl:value-of select="."/>
330 <xsl:text>
331</xsl:text>
332 </xsl:for-each>
333 </xsl:when>
334 <xsl:otherwise>
335 <xsl:value-of select="$imagelist"/>
336 </xsl:otherwise>
337 </xsl:choose>
338</xsl:if>
339
340<xsl:if test="($htmlhelp.force.map.and.alias != 0) or ($rootid = '' and //processing-instruction('dbhh')) or ($rootid != '' and $profiled-nodes//*[@id=$rootid or @xml:id=$rootid]//processing-instruction('dbhh'))">
341 <xsl:text>
342[ALIAS]
343#include </xsl:text><xsl:value-of select="$htmlhelp.alias.file"/><xsl:text>
344
345[MAP]
346#include </xsl:text><xsl:value-of select="$htmlhelp.map.file"/><xsl:text>
347</xsl:text>
348</xsl:if>
349
350<xsl:value-of select="$htmlhelp.hhp.tail"/>
351</xsl:template>
352
353<!-- ==================================================================== -->
354
355<xsl:template match="graphic|inlinegraphic[@format!='linespecific']" mode="enumerate-images">
356 <xsl:call-template name="write.filename.enumerate-images">
357 <xsl:with-param name="filename">
358 <xsl:call-template name="mediaobject.filename.enumerate-images">
359 <xsl:with-param name="object" select="."/>
360 </xsl:call-template>
361 </xsl:with-param>
362 </xsl:call-template>
363</xsl:template>
364
365<xsl:template match="mediaobject|inlinemediaobject" mode="enumerate-images">
366 <xsl:call-template name="select.mediaobject.enumerate-images"/>
367</xsl:template>
368
369<xsl:template name="select.mediaobject.enumerate-images">
370 <xsl:param name="olist" select="imageobject|imageobjectco |videoobject|audioobject|textobject"/>
371 <xsl:param name="count">1</xsl:param>
372
373 <xsl:if test="$count &lt;= count($olist)">
374 <xsl:variable name="object" select="$olist[position()=$count]"/>
375
376 <xsl:variable name="useobject">
377 <xsl:choose>
378 <!-- The phrase is never used -->
379 <xsl:when test="name($object)='textobject' and $object/phrase">
380 <xsl:text>0</xsl:text>
381 </xsl:when>
382 <!-- The first textobject is a reasonable fallback (but not for image in HH) -->
383 <xsl:when test="name($object)='textobject'">
384 <xsl:text>0</xsl:text>
385 </xsl:when>
386 <!-- If there's only one object, use it -->
387 <xsl:when test="$count = 1 and count($olist) = 1">
388 <xsl:text>1</xsl:text>
389 </xsl:when>
390 <!-- Otherwise, see if this one is a useable graphic -->
391 <xsl:otherwise>
392 <xsl:choose>
393 <!-- peek inside imageobjectco to simplify the test -->
394 <xsl:when test="local-name($object) = 'imageobjectco'">
395 <xsl:call-template name="is.acceptable.mediaobject">
396 <xsl:with-param name="object" select="$object/imageobject"/>
397 </xsl:call-template>
398 </xsl:when>
399 <xsl:otherwise>
400 <xsl:call-template name="is.acceptable.mediaobject">
401 <xsl:with-param name="object" select="$object"/>
402 </xsl:call-template>
403 </xsl:otherwise>
404 </xsl:choose>
405 </xsl:otherwise>
406 </xsl:choose>
407 </xsl:variable>
408
409 <xsl:choose>
410 <xsl:when test="$useobject='1' and $object[not(*/@format='linespecific')]">
411 <xsl:call-template name="write.filename.enumerate-images">
412 <xsl:with-param name="filename">
413 <xsl:call-template name="mediaobject.filename.enumerate-images">
414 <xsl:with-param name="object" select="$object"/>
415 </xsl:call-template>
416 </xsl:with-param>
417 </xsl:call-template>
418 </xsl:when>
419 <xsl:otherwise>
420 <xsl:call-template name="select.mediaobject.enumerate-images">
421 <xsl:with-param name="olist" select="$olist"/>
422 <xsl:with-param name="count" select="$count + 1"/>
423 </xsl:call-template>
424 </xsl:otherwise>
425 </xsl:choose>
426 </xsl:if>
427</xsl:template>
428
429<xsl:template name="mediaobject.filename.enumerate-images">
430 <xsl:param name="object"/>
431
432 <xsl:variable name="urifilename">
433 <xsl:call-template name="mediaobject.filename">
434 <xsl:with-param name="object" select="$object"/>
435 </xsl:call-template>
436 </xsl:variable>
437
438 <xsl:variable name="filename">
439 <xsl:choose>
440 <xsl:when test="starts-with($urifilename, 'file:/')">
441 <xsl:value-of select="substring-after($urifilename, 'file:/')"/>
442 </xsl:when>
443 <xsl:otherwise>
444 <xsl:value-of select="$urifilename"/>
445 </xsl:otherwise>
446 </xsl:choose>
447 </xsl:variable>
448
449 <xsl:value-of select="translate($filename, '/', '\')"/>
450
451</xsl:template>
452
453<xsl:template match="text()" mode="enumerate-images">
454</xsl:template>
455
456<xsl:template name="write.filename.enumerate-images">
457 <xsl:param name="filename"/>
458 <xsl:choose>
459 <xsl:when test="function-available('exsl:node-set') and function-available('set:distinct')">
460 <filename><xsl:value-of select="$filename"/></filename>
461 </xsl:when>
462 <xsl:otherwise>
463 <xsl:value-of select="$filename"/>
464 <xsl:text>
465</xsl:text>
466 </xsl:otherwise>
467 </xsl:choose>
468</xsl:template>
469
470<!-- ==================================================================== -->
471
472<!-- HHC and HHK files are processed by compiler line by line
473 and therefore are very sensitive to whitespaces (linefeeds for sure). -->
474
475<xsl:template name="hhc">
476 <xsl:call-template name="write.chunk">
477 <xsl:with-param name="filename">
478 <xsl:if test="$manifest.in.base.dir != 0">
479 <xsl:value-of select="$chunk.base.dir"/>
480 </xsl:if>
481 <xsl:value-of select="$htmlhelp.hhc"/>
482 </xsl:with-param>
483 <xsl:with-param name="indent" select="'no'"/>
484 <xsl:with-param name="content">
485 <xsl:call-template name="hhc-main"/>
486 </xsl:with-param>
487 <xsl:with-param name="encoding" select="$htmlhelp.encoding"/>
488 <xsl:with-param name="quiet" select="$chunk.quietly"/>
489 </xsl:call-template>
490</xsl:template>
491
492<xsl:template name="hhc-main">
493<HTML><xsl:text>
494</xsl:text>
495 <HEAD/><xsl:text>
496</xsl:text>
497 <BODY><xsl:text>
498</xsl:text>
499 <xsl:if test="$htmlhelp.hhc.folders.instead.books != 0">
500 <OBJECT type="text/site properties"><xsl:text>
501</xsl:text>
502 <param name="ImageType" value="Folder"/><xsl:text>
503</xsl:text>
504 </OBJECT><xsl:text>
505</xsl:text>
506 </xsl:if>
507 <xsl:variable name="content">
508 <xsl:choose>
509 <xsl:when test="$rootid != ''">
510 <xsl:apply-templates select="$profiled-nodes//*[@id=$rootid or @xml:id=$rootid]" mode="hhc"/>
511 </xsl:when>
512 <xsl:otherwise>
513 <xsl:apply-templates select="$profiled-nodes" mode="hhc"/>
514 </xsl:otherwise>
515 </xsl:choose>
516 </xsl:variable>
517
518 <xsl:choose>
519 <xsl:when test="$htmlhelp.hhc.show.root != 0">
520 <UL><xsl:text>
521</xsl:text>
522 <xsl:copy-of select="$content"/>
523 </UL><xsl:text>
524</xsl:text>
525 </xsl:when>
526 <xsl:otherwise>
527 <xsl:copy-of select="$content"/>
528 </xsl:otherwise>
529 </xsl:choose>
530
531 </BODY>
532</HTML>
533</xsl:template>
534
535<xsl:template name="hhc.entry">
536 <xsl:param name="title">
537 <xsl:if test="$htmlhelp.autolabel=1">
538 <xsl:variable name="label.markup">
539 <xsl:apply-templates select="." mode="label.markup"/>
540 </xsl:variable>
541 <xsl:if test="normalize-space($label.markup)">
542 <xsl:value-of select="concat($label.markup,$autotoc.label.separator)"/>
543 </xsl:if>
544 </xsl:if>
545 <xsl:apply-templates select="." mode="title.markup"/>
546 </xsl:param>
547
548 <LI><OBJECT type="text/sitemap"><xsl:text>
549</xsl:text>
550 <param name="Name">
551 <xsl:attribute name="value">
552 <xsl:value-of select="normalize-space($title)"/>
553 </xsl:attribute>
554 </param><xsl:text>
555</xsl:text>
556 <param name="Local">
557 <xsl:attribute name="value">
558 <xsl:call-template name="href.target.with.base.dir"/>
559 </xsl:attribute>
560 </param>
561 </OBJECT></LI><xsl:text>
562</xsl:text>
563</xsl:template>
564
565<xsl:template match="set" mode="hhc">
566 <xsl:if test="$htmlhelp.hhc.show.root != 0">
567 <xsl:call-template name="hhc.entry"/>
568 </xsl:if>
569 <xsl:if test="book">
570 <xsl:variable name="toc.params">
571 <xsl:call-template name="find.path.params">
572 <xsl:with-param name="table" select="normalize-space($generate.toc)"/>
573 </xsl:call-template>
574 </xsl:variable>
575 <UL>
576 <xsl:if test="contains($toc.params, 'toc') and $htmlhelp.hhc.show.root = 0">
577 <LI><OBJECT type="text/sitemap"><xsl:text>
578</xsl:text>
579 <param name="Name">
580 <xsl:attribute name="value">
581 <xsl:call-template name="gentext">
582 <xsl:with-param name="key" select="'TableofContents'"/>
583 </xsl:call-template>
584 </xsl:attribute>
585 </param><xsl:text>
586</xsl:text>
587 <param name="Local">
588 <xsl:attribute name="value">
589 <xsl:choose>
590 <xsl:when test="$chunk.tocs.and.lots != 0">
591 <xsl:apply-templates select="." mode="recursive-chunk-filename">
592 <xsl:with-param name="recursive" select="true()"/>
593 </xsl:apply-templates>
594 <xsl:text>-toc</xsl:text>
595 <xsl:value-of select="$html.ext"/>
596 </xsl:when>
597 <xsl:otherwise>
598 <xsl:call-template name="href.target.with.base.dir"/>
599 </xsl:otherwise>
600 </xsl:choose>
601 </xsl:attribute>
602 </param>
603 </OBJECT></LI><xsl:text>
604</xsl:text>
605 </xsl:if>
606 <xsl:apply-templates select="book" mode="hhc"/>
607 </UL><xsl:text>
608</xsl:text>
609 </xsl:if>
610</xsl:template>
611
612<xsl:template match="book" mode="hhc">
613 <xsl:if test="$htmlhelp.hhc.show.root != 0 or parent::*">
614 <xsl:call-template name="hhc.entry"/>
615 </xsl:if>
616 <xsl:if test="part|reference|preface|chapter|appendix|bibliography|article|colophon|glossary">
617 <xsl:variable name="toc.params">
618 <xsl:call-template name="find.path.params">
619 <xsl:with-param name="table" select="normalize-space($generate.toc)"/>
620 </xsl:call-template>
621 </xsl:variable>
622 <UL>
623 <xsl:if test="contains($toc.params, 'toc') and $htmlhelp.hhc.show.root = 0 and not(parent::*)">
624 <LI><OBJECT type="text/sitemap"><xsl:text>
625</xsl:text>
626 <param name="Name">
627 <xsl:attribute name="value">
628 <xsl:call-template name="gentext">
629 <xsl:with-param name="key" select="'TableofContents'"/>
630 </xsl:call-template>
631 </xsl:attribute>
632 </param><xsl:text>
633</xsl:text>
634 <param name="Local">
635 <xsl:attribute name="value">
636 <xsl:choose>
637 <xsl:when test="$chunk.tocs.and.lots != 0">
638 <xsl:apply-templates select="." mode="recursive-chunk-filename">
639 <xsl:with-param name="recursive" select="true()"/>
640 </xsl:apply-templates>
641 <xsl:text>-toc</xsl:text>
642 <xsl:value-of select="$html.ext"/>
643 </xsl:when>
644 <xsl:otherwise>
645 <xsl:call-template name="href.target.with.base.dir"/>
646 </xsl:otherwise>
647 </xsl:choose>
648 </xsl:attribute>
649 </param>
650 </OBJECT></LI><xsl:text>
651</xsl:text>
652 </xsl:if>
653 <xsl:apply-templates select="part|reference|preface|chapter|bibliography|appendix|article|colophon|glossary" mode="hhc"/>
654 </UL><xsl:text>
655</xsl:text>
656 </xsl:if>
657</xsl:template>
658
659<xsl:template match="part|reference|preface|chapter|bibliography|appendix|article|glossary" mode="hhc">
660 <xsl:if test="$htmlhelp.hhc.show.root != 0 or parent::*">
661 <xsl:call-template name="hhc.entry"/>
662 </xsl:if>
663 <xsl:if test="article|reference|preface|chapter|appendix|refentry|section|sect1|bibliodiv">
664 <UL><xsl:text>
665</xsl:text>
666 <xsl:apply-templates select="article|reference|preface|chapter|appendix|refentry|section|sect1|bibliodiv" mode="hhc"/>
667 </UL>
668 </xsl:if>
669</xsl:template>
670
671<xsl:template match="section" mode="hhc">
672 <xsl:if test="$htmlhelp.hhc.show.root != 0 or parent::*">
673 <xsl:call-template name="hhc.entry"/>
674 </xsl:if>
675 <xsl:if test="section[count(ancestor::section) &lt; $htmlhelp.hhc.section.depth]|refentry">
676 <UL><xsl:text>
677</xsl:text>
678 <xsl:apply-templates select="section|refentry" mode="hhc"/>
679 </UL>
680 </xsl:if>
681</xsl:template>
682
683<xsl:template match="sect1" mode="hhc">
684 <xsl:if test="$htmlhelp.hhc.show.root != 0 or parent::*">
685 <xsl:call-template name="hhc.entry"/>
686 </xsl:if>
687 <xsl:if test="sect2[$htmlhelp.hhc.section.depth &gt; 1]|refentry">
688 <UL><xsl:text>
689</xsl:text>
690 <xsl:apply-templates select="sect2|refentry" mode="hhc"/>
691 </UL>
692 </xsl:if>
693</xsl:template>
694
695<xsl:template match="sect2" mode="hhc">
696 <xsl:if test="$htmlhelp.hhc.show.root != 0 or parent::*">
697 <xsl:call-template name="hhc.entry"/>
698 </xsl:if>
699 <xsl:if test="sect3[$htmlhelp.hhc.section.depth &gt; 2]|refentry">
700 <UL><xsl:text>
701</xsl:text>
702 <xsl:apply-templates select="sect3|refentry" mode="hhc"/>
703 </UL>
704 </xsl:if>
705</xsl:template>
706
707<xsl:template match="sect3" mode="hhc">
708 <xsl:if test="$htmlhelp.hhc.show.root != 0 or parent::*">
709 <xsl:call-template name="hhc.entry"/>
710 </xsl:if>
711 <xsl:if test="sect4[$htmlhelp.hhc.section.depth &gt; 3]|refentry">
712 <UL><xsl:text>
713</xsl:text>
714 <xsl:apply-templates select="sect4|refentry" mode="hhc"/>
715 </UL>
716 </xsl:if>
717</xsl:template>
718
719<xsl:template match="sect4" mode="hhc">
720 <xsl:if test="$htmlhelp.hhc.show.root != 0 or parent::*">
721 <xsl:call-template name="hhc.entry"/>
722 </xsl:if>
723 <xsl:if test="sect5[$htmlhelp.hhc.section.depth &gt; 4]|refentry">
724 <UL><xsl:text>
725</xsl:text>
726 <xsl:apply-templates select="sect5|refentry" mode="hhc"/>
727 </UL>
728 </xsl:if>
729</xsl:template>
730
731<xsl:template match="sect5|refentry|colophon|bibliodiv" mode="hhc">
732 <xsl:if test="$htmlhelp.hhc.show.root != 0 or parent::*">
733 <xsl:call-template name="hhc.entry"/>
734 </xsl:if>
735 <xsl:if test="refentry">
736 <UL><xsl:text>
737</xsl:text>
738 <xsl:apply-templates select="refentry" mode="hhc"/>
739 </UL>
740 </xsl:if>
741</xsl:template>
742
743<!-- ==================================================================== -->
744
745<xsl:template match="indexterm">
746 <xsl:choose>
747 <xsl:when test="$htmlhelp.use.hhk = 0">
748
749 <xsl:variable name="primary" select="normalize-space(primary)"/>
750 <xsl:variable name="secondary" select="normalize-space(secondary)"/>
751 <xsl:variable name="tertiary" select="normalize-space(tertiary)"/>
752
753 <xsl:variable name="text">
754 <xsl:value-of select="$primary"/>
755 <xsl:if test="secondary">
756 <xsl:text>, </xsl:text>
757 <xsl:value-of select="$secondary"/>
758 </xsl:if>
759 <xsl:if test="tertiary">
760 <xsl:text>, </xsl:text>
761 <xsl:value-of select="$tertiary"/>
762 </xsl:if>
763 </xsl:variable>
764
765 <xsl:if test="secondary">
766 <xsl:if test="not(//indexterm[normalize-space(primary)=$primary and not(secondary)])">
767 <xsl:call-template name="write.indexterm">
768 <xsl:with-param name="text" select="$primary"/>
769 </xsl:call-template>
770 </xsl:if>
771 </xsl:if>
772
773 <xsl:if test="tertiary">
774 <xsl:if test="not(//indexterm[normalize-space(primary)=$primary and normalize-space(secondary)=$secondary and not(tertiary)])">
775 <xsl:call-template name="write.indexterm">
776 <xsl:with-param name="text" select="concat($primary, ', ', $secondary)"/>
777 </xsl:call-template>
778 </xsl:if>
779 </xsl:if>
780
781 <xsl:call-template name="write.indexterm">
782 <xsl:with-param name="text" select="$text"/>
783 </xsl:call-template>
784
785 </xsl:when>
786 <xsl:otherwise>
787 <a>
788 <xsl:attribute name="name">
789 <xsl:call-template name="object.id"/>
790 </xsl:attribute>
791 </a>
792 </xsl:otherwise>
793
794 </xsl:choose>
795</xsl:template>
796
797<xsl:template name="write.indexterm">
798 <xsl:param name="text"/>
799 <OBJECT type="application/x-oleobject" classid="clsid:1e2a7bd0-dab9-11d0-b93a-00c04fc99f9e">
800 <param name="Keyword" value="{$text}"/>
801 </OBJECT>
802</xsl:template>
803
804<!-- ==================================================================== -->
805
806<xsl:template name="hhk">
807 <xsl:call-template name="write.chunk">
808 <xsl:with-param name="filename">
809 <xsl:if test="$manifest.in.base.dir != 0">
810 <xsl:value-of select="$chunk.base.dir"/>
811 </xsl:if>
812 <xsl:value-of select="$htmlhelp.hhk"/>
813 </xsl:with-param>
814 <xsl:with-param name="indent" select="'no'"/>
815 <xsl:with-param name="content"><xsl:text disable-output-escaping="yes">&lt;!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"&gt;
816&lt;HTML&gt;
817&lt;HEAD&gt;
818&lt;meta name="GENERATOR" content="Microsoft&amp;reg; HTML Help Workshop 4.1"&gt;
819&lt;!-- Sitemap 1.0 --&gt;
820&lt;/HEAD&gt;&lt;BODY&gt;
821&lt;OBJECT type="text/site properties"&gt;
822&lt;/OBJECT&gt;
823&lt;UL&gt;
824</xsl:text>
825<xsl:if test="($htmlhelp.use.hhk != 0) and $htmlhelp.generate.index">
826 <xsl:choose>
827 <xsl:when test="$rootid != ''">
828 <xsl:apply-templates select="$profiled-nodes//*[@id=$rootid or @xml:id=$rootid]" mode="hhk"/>
829 </xsl:when>
830 <xsl:otherwise>
831 <xsl:apply-templates select="$profiled-nodes" mode="hhk"/>
832 </xsl:otherwise>
833 </xsl:choose>
834</xsl:if>
835<xsl:text disable-output-escaping="yes">&lt;/UL&gt;
836&lt;/BODY&gt;&lt;/HTML&gt;
837</xsl:text></xsl:with-param>
838 <xsl:with-param name="encoding" select="$htmlhelp.encoding"/>
839 <xsl:with-param name="quiet" select="$chunk.quietly"/>
840 </xsl:call-template>
841</xsl:template>
842
843<xsl:template match="indexterm[@class='endofrange']" mode="hhk"/>
844
845<xsl:template match="indexterm" mode="hhk">
846 <xsl:variable name="primary" select="normalize-space(primary)"/>
847 <xsl:variable name="secondary" select="normalize-space(secondary)"/>
848 <xsl:variable name="tertiary" select="normalize-space(tertiary)"/>
849
850 <xsl:call-template name="write.indexterm.hhk">
851 <xsl:with-param name="text" select="$primary"/>
852 <xsl:with-param name="seealso" select="seealso"/>
853 </xsl:call-template>
854
855 <xsl:if test="secondary">
856 <xsl:if test="not(//indexterm[normalize-space(primary)=$primary and not(secondary)])">
857 <xsl:call-template name="write.indexterm.hhk">
858 <!-- We must create fake entry when there is secondary without primary -->
859 <xsl:with-param name="text" select="$primary"/>
860 <xsl:with-param name="seealso" select="$primary"/>
861 </xsl:call-template>
862 </xsl:if>
863 <UL>
864 <xsl:call-template name="write.indexterm.hhk">
865 <xsl:with-param name="text" select="$secondary"/>
866 <xsl:with-param name="seealso" select="secondary/seealso"/>
867 </xsl:call-template>
868 <xsl:if test="tertiary">
869 <UL><xsl:text>
870</xsl:text>
871 <xsl:call-template name="write.indexterm.hhk">
872 <xsl:with-param name="text" select="$tertiary"/>
873 <xsl:with-param name="seealso" select="tertiary/seealso"/>
874 </xsl:call-template>
875 </UL>
876 </xsl:if>
877 </UL>
878 </xsl:if>
879
880</xsl:template>
881
882<xsl:template name="write.indexterm.hhk">
883 <xsl:param name="text"/>
884 <xsl:param name="seealso"/>
885
886 <LI> <OBJECT type="text/sitemap"><xsl:text>
887</xsl:text>
888 <param name="Name">
889 <xsl:attribute name="value">
890 <xsl:value-of select="$text"/>
891 </xsl:attribute>
892 </param><xsl:text>
893</xsl:text>
894
895 <xsl:if test="not(seealso)">
896 <xsl:variable name="href">
897 <xsl:call-template name="href.target.with.base.dir"/>
898 </xsl:variable>
899 <xsl:variable name="title">
900 <xsl:call-template name="nearest.title">
901 <xsl:with-param name="object" select=".."/>
902 </xsl:call-template>
903 </xsl:variable>
904
905 <param name="Name">
906 <xsl:attribute name="value">
907 <xsl:value-of select="$title"/>
908 </xsl:attribute>
909 </param><xsl:text>
910</xsl:text>
911 <param name="Local">
912 <xsl:attribute name="value">
913 <xsl:value-of select="$href"/>
914 </xsl:attribute>
915 </param><xsl:text>
916</xsl:text>
917 </xsl:if>
918
919 <xsl:if test="seealso">
920 <param name="See Also">
921 <xsl:attribute name="value">
922 <xsl:value-of select="$seealso"/>
923 </xsl:attribute>
924 </param><xsl:text>
925</xsl:text>
926 </xsl:if>
927 </OBJECT></LI>
928</xsl:template>
929
930<xsl:template match="text()" mode="hhk"/>
931
932<xsl:template name="nearest.title">
933 <xsl:param name="object"/>
934 <xsl:apply-templates select="$object/ancestor-or-self::*[title][1]" mode="title.markup"/>
935</xsl:template>
936
937<!-- ==================================================================== -->
938
939<xsl:template name="hh-map">
940 <xsl:call-template name="write.text.chunk">
941 <xsl:with-param name="filename">
942 <xsl:if test="$manifest.in.base.dir != 0">
943 <xsl:value-of select="$chunk.base.dir"/>
944 </xsl:if>
945 <xsl:value-of select="$htmlhelp.map.file"/>
946 </xsl:with-param>
947 <xsl:with-param name="method" select="'text'"/>
948 <xsl:with-param name="content">
949 <xsl:choose>
950 <xsl:when test="$rootid != ''">
951 <xsl:apply-templates select="$profiled-nodes//*[@id=$rootid or @xml:id=$rootid]" mode="hh-map"/>
952 </xsl:when>
953 <xsl:otherwise>
954 <xsl:apply-templates select="$profiled-nodes" mode="hh-map"/>
955 </xsl:otherwise>
956 </xsl:choose>
957 </xsl:with-param>
958 <xsl:with-param name="encoding" select="$htmlhelp.encoding"/>
959 <xsl:with-param name="quiet" select="$chunk.quietly"/>
960 </xsl:call-template>
961</xsl:template>
962
963<xsl:template match="processing-instruction('dbhh')" mode="hh-map">
964 <xsl:variable name="topicname">
965 <xsl:call-template name="pi-attribute">
966 <xsl:with-param name="pis" select="."/>
967 <xsl:with-param name="attribute" select="'topicname'"/>
968 </xsl:call-template>
969 </xsl:variable>
970 <xsl:variable name="topicid">
971 <xsl:call-template name="pi-attribute">
972 <xsl:with-param name="pis" select="."/>
973 <xsl:with-param name="attribute" select="'topicid'"/>
974 </xsl:call-template>
975 </xsl:variable>
976 <xsl:text>#define </xsl:text>
977 <xsl:value-of select="$topicname"/>
978 <xsl:text> </xsl:text>
979 <xsl:value-of select="$topicid"/>
980 <xsl:text>
981</xsl:text>
982</xsl:template>
983
984<xsl:template match="text()" mode="hh-map"/>
985
986<!-- ==================================================================== -->
987
988<xsl:template name="hh-alias">
989 <xsl:call-template name="write.text.chunk">
990 <xsl:with-param name="filename">
991 <xsl:if test="$manifest.in.base.dir != 0">
992 <xsl:value-of select="$chunk.base.dir"/>
993 </xsl:if>
994 <xsl:value-of select="$htmlhelp.alias.file"/>
995 </xsl:with-param>
996 <xsl:with-param name="method" select="'text'"/>
997 <xsl:with-param name="content">
998 <xsl:choose>
999 <xsl:when test="$rootid != ''">
1000 <xsl:apply-templates select="$profiled-nodes//*[@id=$rootid or @xml:id=$rootid]" mode="hh-alias"/>
1001 </xsl:when>
1002 <xsl:otherwise>
1003 <xsl:apply-templates select="$profiled-nodes" mode="hh-alias"/>
1004 </xsl:otherwise>
1005 </xsl:choose>
1006 </xsl:with-param>
1007 <xsl:with-param name="encoding" select="$htmlhelp.encoding"/>
1008 <xsl:with-param name="quiet" select="$chunk.quietly"/>
1009 </xsl:call-template>
1010</xsl:template>
1011
1012<xsl:template match="processing-instruction('dbhh')" mode="hh-alias">
1013 <xsl:variable name="topicname">
1014 <xsl:call-template name="pi-attribute">
1015 <xsl:with-param name="pis" select="."/>
1016 <xsl:with-param name="attribute" select="'topicname'"/>
1017 </xsl:call-template>
1018 </xsl:variable>
1019 <xsl:variable name="href">
1020 <xsl:call-template name="href.target.with.base.dir">
1021 <xsl:with-param name="object" select=".."/>
1022 </xsl:call-template>
1023 </xsl:variable>
1024 <xsl:value-of select="$topicname"/>
1025 <xsl:text>=</xsl:text>
1026 <!-- Some versions of HH doesn't like fragment identifires, but some does. -->
1027 <!-- <xsl:value-of select="substring-before(concat($href, '#'), '#')"/> -->
1028 <xsl:value-of select="$href"/>
1029 <xsl:text>
1030</xsl:text>
1031</xsl:template>
1032
1033<xsl:template match="text()" mode="hh-alias"/>
1034
1035<!-- ==================================================================== -->
1036<!-- This code can be used to convert any number to hexadecimal format -->
1037
1038 <h:hex>
1039 <d>0</d>
1040 <d>1</d>
1041 <d>2</d>
1042 <d>3</d>
1043 <d>4</d>
1044 <d>5</d>
1045 <d>6</d>
1046 <d>7</d>
1047 <d>8</d>
1048 <d>9</d>
1049 <d>A</d>
1050 <d>B</d>
1051 <d>C</d>
1052 <d>D</d>
1053 <d>E</d>
1054 <d>F</d>
1055 </h:hex>
1056
1057 <xsl:template name="toHex">
1058 <xsl:param name="n" select="0"/>
1059 <xsl:param name="digit" select="$n mod 16"/>
1060 <xsl:param name="rest" select="floor($n div 16)"/>
1061 <xsl:if test="$rest &gt; 0">
1062 <xsl:call-template name="toHex">
1063 <xsl:with-param name="n" select="$rest"/>
1064 </xsl:call-template>
1065 </xsl:if>
1066 <xsl:value-of select="document('')//h:hex/d[$digit+1]"/>
1067 </xsl:template>
1068
1069<!-- ==================================================================== -->
1070<!-- Modification to standard HTML stylesheets -->
1071
1072<!-- There are links from ToC pane to bibliodivs, so there must be anchor -->
1073<xsl:template match="bibliodiv/title">
1074 <h3 class="{name(.)}">
1075 <xsl:call-template name="anchor">
1076 <xsl:with-param name="node" select=".."/>
1077 <xsl:with-param name="conditional" select="0"/>
1078 </xsl:call-template>
1079 <xsl:apply-templates/>
1080 </h3>
1081</xsl:template>
1082
1083</xsl:stylesheet>
Note: See TracBrowser for help on using the repository browser.