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">
6
<!-- ********************************************************************
7
$Id: htmlhelp-common.xsl 8400 2009-04-08 07:44:54Z bobstayton $
8
******************************************************************** -->
10
<!-- ==================================================================== -->
11
<!-- Customizations of standard HTML stylesheet parameters -->
13
<!-- no navigation on pages by default, HTML Help provides its own navigation controls -->
14
<xsl:param name="suppress.navigation" select="1"/>
16
<!-- no separate HTML page with index, index is built inside CHM index pane -->
17
<xsl:param name="generate.index" select="0"/>
19
<!-- ==================================================================== -->
21
<xsl:param name="htmlhelp.generate.index" select="//indexterm[1]|//db:indexterm[1]|//ng:indexterm[1]"/>
23
<!-- Set up HTML Help flag -->
24
<xsl:variable name="htmlhelp.output" select="1"/>
26
<!-- ==================================================================== -->
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="/">
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"/>
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()"/>
41
<xsl:if test="$htmlhelp.only != 1">
43
<xsl:when test="$rootid != ''">
45
<xsl:when test="count($profiled-nodes//*[@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>
53
<xsl:message>Formatting from <xsl:value-of select="$rootid"/></xsl:message>
54
<xsl:apply-templates select="$profiled-nodes//*[@id=$rootid]" mode="process.root"/>
59
<xsl:if test="$collect.xref.targets = 'yes' or $collect.xref.targets = 'only'">
60
<xsl:apply-templates select="$profiled-nodes" mode="collect.targets"/>
62
<xsl:if test="$collect.xref.targets != 'only'">
63
<xsl:apply-templates select="$profiled-nodes" mode="process.root"/>
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]//processing-instruction('dbhh'))">
74
<xsl:call-template name="hh-map"/>
75
<xsl:call-template name="hh-alias"/>
77
<xsl:if test="$htmlhelp.generate.index">
78
<xsl:call-template name="hhk"/>
85
<!-- ==================================================================== -->
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="$base.dir"/>
93
<xsl:value-of select="$htmlhelp.hhp"/>
95
<xsl:with-param name="method" select="'text'"/>
96
<xsl:with-param name="content">
97
<xsl:call-template name="hhp-main"/>
99
<xsl:with-param name="encoding" select="$htmlhelp.encoding"/>
100
<xsl:with-param name="quiet" select="$chunk.quietly"/>
104
<!-- ==================================================================== -->
105
<xsl:template name="hhp-main">
107
<xsl:variable name="raw.help.title">
109
<xsl:when test="$htmlhelp.title = ''">
111
<xsl:when test="$rootid != ''">
112
<xsl:apply-templates select="$profiled-nodes//*[@id=$rootid]" mode="title.markup"/>
115
<xsl:apply-templates select="$profiled-nodes/*" mode="title.markup"/>
120
<xsl:value-of select="$htmlhelp.title"/>
125
<xsl:variable name="help.title" select="normalize-space($raw.help.title)"/>
127
<xsl:variable name="default.topic">
129
<xsl:when test="$htmlhelp.default.topic != ''">
130
<xsl:value-of select="$htmlhelp.default.topic"/>
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="$base.dir"/>
139
<xsl:with-param name="base.name">
141
<xsl:when test="$rootid != ''">
142
<xsl:apply-templates select="$profiled-nodes//*[@id=$rootid]" mode="chunk-filename"/>
145
<xsl:apply-templates select="$profiled-nodes" mode="chunk-filename"/>
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"/>
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"/>
167
<xsl:if test="$htmlhelp.generate.index">
168
<xsl:text>Auto Index=Yes
170
<xsl:if test="$htmlhelp.hhc.binary != 0">
171
<xsl:text>Binary TOC=Yes
173
<xsl:text>Compatibility=1.1 or later
174
Compiled file=</xsl:text><xsl:value-of select="$htmlhelp.chm"/><xsl:text>
175
Contents file=</xsl:text><xsl:value-of select="$htmlhelp.hhc"/><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>
180
<xsl:text>Default topic=</xsl:text><xsl:value-of select="$default.topic"/>
182
Display compile progress=</xsl:text>
184
<xsl:when test="$htmlhelp.display.progress != 1">
185
<xsl:text>No</xsl:text>
188
<xsl:text>Yes</xsl:text>
194
<xsl:if test="$htmlhelp.generate.index">
195
<xsl:text>Index file=</xsl:text><xsl:value-of select="$htmlhelp.hhk"/><xsl:text>
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'"/>
206
<xsl:value-of select="$help.title"/>
208
Enhanced decompilation=</xsl:text>
210
<xsl:when test="$htmlhelp.enhanced.decompilation != 0">
211
<xsl:text>Yes</xsl:text>
214
<xsl:text>No</xsl:text>
218
<xsl:if test="$htmlhelp.hhp.window != ''">
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>
233
<xsl:text>,"</xsl:text>
234
<xsl:value-of select="$default.topic"/>
235
<xsl:text>",</xsl:text>
236
<xsl:text>"</xsl:text>
238
<xsl:when test="$htmlhelp.button.home != 0">
239
<xsl:value-of select="$htmlhelp.button.home.url"/>
242
<xsl:value-of select="$default.topic"/>
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>
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>
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>
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>
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
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"/>
298
<xsl:if test="$htmlhelp.hhp.windows">
299
<xsl:value-of select="$htmlhelp.hhp.windows"/>
307
<xsl:when test="$rootid != ''">
308
<xsl:apply-templates select="$profiled-nodes//*[@id=$rootid]" mode="enumerate-files"/>
311
<xsl:apply-templates select="$profiled-nodes" mode="enumerate-files"/>
315
<xsl:if test="$htmlhelp.enumerate.images">
316
<xsl:variable name="imagelist">
318
<xsl:when test="$rootid != ''">
319
<xsl:apply-templates select="$profiled-nodes//*[@id=$rootid]" mode="enumerate-images"/>
322
<xsl:apply-templates select="$profiled-nodes" mode="enumerate-images"/>
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="."/>
335
<xsl:value-of select="$imagelist"/>
340
<xsl:if test="($htmlhelp.force.map.and.alias != 0) or ($rootid = '' and //processing-instruction('dbhh')) or ($rootid != '' and $profiled-nodes//*[@id=$rootid]//processing-instruction('dbhh'))">
343
#include </xsl:text><xsl:value-of select="$htmlhelp.alias.file"/><xsl:text>
346
#include </xsl:text><xsl:value-of select="$htmlhelp.map.file"/><xsl:text>
350
<xsl:value-of select="$htmlhelp.hhp.tail"/>
353
<!-- ==================================================================== -->
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="."/>
365
<xsl:template match="mediaobject|inlinemediaobject" mode="enumerate-images">
366
<xsl:call-template name="select.mediaobject.enumerate-images"/>
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>
373
<xsl:if test="$count <= count($olist)">
374
<xsl:variable name="object" select="$olist[position()=$count]"/>
376
<xsl:variable name="useobject">
378
<!-- The phrase is never used -->
379
<xsl:when test="name($object)='textobject' and $object/phrase">
380
<xsl:text>0</xsl:text>
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>
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>
390
<!-- Otherwise, see if this one is a useable graphic -->
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"/>
400
<xsl:call-template name="is.acceptable.mediaobject">
401
<xsl:with-param name="object" select="$object"/>
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"/>
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"/>
429
<xsl:template name="mediaobject.filename.enumerate-images">
430
<xsl:param name="object"/>
432
<xsl:variable name="urifilename">
433
<xsl:call-template name="mediaobject.filename">
434
<xsl:with-param name="object" select="$object"/>
438
<xsl:variable name="filename">
440
<xsl:when test="starts-with($urifilename, 'file:/')">
441
<xsl:value-of select="substring-after($urifilename, 'file:/')"/>
444
<xsl:value-of select="$urifilename"/>
449
<xsl:value-of select="translate($filename, '/', '\')"/>
453
<xsl:template match="text()" mode="enumerate-images">
456
<xsl:template name="write.filename.enumerate-images">
457
<xsl:param name="filename"/>
459
<xsl:when test="function-available('exsl:node-set') and function-available('set:distinct')">
460
<filename><xsl:value-of select="$filename"/></filename>
463
<xsl:value-of select="$filename"/>
470
<!-- ==================================================================== -->
472
<!-- HHC and HHK files are processed by compiler line by line
473
and therefore are very sensitive to whitespaces (linefeeds for sure). -->
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="$base.dir"/>
481
<xsl:value-of select="$htmlhelp.hhc"/>
483
<xsl:with-param name="indent" select="'no'"/>
484
<xsl:with-param name="content">
485
<xsl:call-template name="hhc-main"/>
487
<xsl:with-param name="encoding" select="$htmlhelp.encoding"/>
488
<xsl:with-param name="quiet" select="$chunk.quietly"/>
492
<xsl:template name="hhc-main">
499
<xsl:if test="$htmlhelp.hhc.folders.instead.books != 0">
500
<OBJECT type="text/site properties"><xsl:text>
502
<param name="ImageType" value="Folder"/><xsl:text>
507
<xsl:variable name="content">
509
<xsl:when test="$rootid != ''">
510
<xsl:apply-templates select="$profiled-nodes//*[@id=$rootid]" mode="hhc"/>
513
<xsl:apply-templates select="$profiled-nodes" mode="hhc"/>
519
<xsl:when test="$htmlhelp.hhc.show.root != 0">
522
<xsl:copy-of select="$content"/>
527
<xsl:copy-of select="$content"/>
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"/>
541
<xsl:if test="normalize-space($label.markup)">
542
<xsl:value-of select="concat($label.markup,$autotoc.label.separator)"/>
545
<xsl:apply-templates select="." mode="title.markup"/>
548
<LI><OBJECT type="text/sitemap"><xsl:text>
551
<xsl:attribute name="value">
552
<xsl:value-of select="normalize-space($title)"/>
557
<xsl:attribute name="value">
558
<xsl:call-template name="href.target.with.base.dir"/>
561
</OBJECT></LI><xsl:text>
565
<xsl:template match="set" mode="hhc">
566
<xsl:if test="$htmlhelp.hhc.show.root != 0">
567
<xsl:call-template name="hhc.entry"/>
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)"/>
576
<xsl:if test="contains($toc.params, 'toc') and $htmlhelp.hhc.show.root = 0">
577
<LI><OBJECT type="text/sitemap"><xsl:text>
580
<xsl:attribute name="value">
581
<xsl:call-template name="gentext">
582
<xsl:with-param name="key" select="'TableofContents'"/>
588
<xsl:attribute name="value">
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"/>
598
<xsl:call-template name="href.target.with.base.dir"/>
603
</OBJECT></LI><xsl:text>
606
<xsl:apply-templates select="book" mode="hhc"/>
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"/>
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)"/>
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>
627
<xsl:attribute name="value">
628
<xsl:call-template name="gentext">
629
<xsl:with-param name="key" select="'TableofContents'"/>
635
<xsl:attribute name="value">
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"/>
645
<xsl:call-template name="href.target.with.base.dir"/>
650
</OBJECT></LI><xsl:text>
653
<xsl:apply-templates select="part|reference|preface|chapter|bibliography|appendix|article|colophon|glossary" mode="hhc"/>
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"/>
663
<xsl:if test="article|reference|preface|chapter|appendix|refentry|section|sect1|bibliodiv">
666
<xsl:apply-templates select="article|reference|preface|chapter|appendix|refentry|section|sect1|bibliodiv" mode="hhc"/>
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"/>
675
<xsl:if test="section[count(ancestor::section) < $htmlhelp.hhc.section.depth]|refentry">
678
<xsl:apply-templates select="section|refentry" mode="hhc"/>
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"/>
687
<xsl:if test="sect2[$htmlhelp.hhc.section.depth > 1]|refentry">
690
<xsl:apply-templates select="sect2|refentry" mode="hhc"/>
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"/>
699
<xsl:if test="sect3[$htmlhelp.hhc.section.depth > 2]|refentry">
702
<xsl:apply-templates select="sect3|refentry" mode="hhc"/>
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"/>
711
<xsl:if test="sect4[$htmlhelp.hhc.section.depth > 3]|refentry">
714
<xsl:apply-templates select="sect4|refentry" mode="hhc"/>
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"/>
723
<xsl:if test="sect5[$htmlhelp.hhc.section.depth > 4]|refentry">
726
<xsl:apply-templates select="sect5|refentry" mode="hhc"/>
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"/>
735
<xsl:if test="refentry">
738
<xsl:apply-templates select="refentry" mode="hhc"/>
743
<!-- ==================================================================== -->
745
<xsl:template match="indexterm">
747
<xsl:when test="$htmlhelp.use.hhk = 0">
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)"/>
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"/>
759
<xsl:if test="tertiary">
760
<xsl:text>, </xsl:text>
761
<xsl:value-of select="$tertiary"/>
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"/>
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)"/>
781
<xsl:call-template name="write.indexterm">
782
<xsl:with-param name="text" select="$text"/>
788
<xsl:attribute name="name">
789
<xsl:call-template name="object.id"/>
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}"/>
804
<!-- ==================================================================== -->
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="$base.dir"/>
812
<xsl:value-of select="$htmlhelp.hhk"/>
814
<xsl:with-param name="indent" select="'no'"/>
815
<xsl:with-param name="content"><xsl:text disable-output-escaping="yes"><!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
818
<meta name="GENERATOR" content="Microsoft&reg; HTML Help Workshop 4.1">
819
<!-- Sitemap 1.0 -->
820
</HEAD><BODY>
821
<OBJECT type="text/site properties">
825
<xsl:if test="($htmlhelp.use.hhk != 0) and $htmlhelp.generate.index">
827
<xsl:when test="$rootid != ''">
828
<xsl:apply-templates select="$profiled-nodes//*[@id=$rootid]" mode="hhk"/>
831
<xsl:apply-templates select="$profiled-nodes" mode="hhk"/>
835
<xsl:text disable-output-escaping="yes"></UL>
836
</BODY></HTML>
837
</xsl:text></xsl:with-param>
838
<xsl:with-param name="encoding" select="$htmlhelp.encoding"/>
839
<xsl:with-param name="quiet" select="$chunk.quietly"/>
843
<xsl:template match="indexterm[@class='endofrange']" mode="hhk"/>
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)"/>
850
<xsl:call-template name="write.indexterm.hhk">
851
<xsl:with-param name="text" select="$primary"/>
852
<xsl:with-param name="seealso" select="seealso"/>
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"/>
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"/>
868
<xsl:if test="tertiary">
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"/>
882
<xsl:template name="write.indexterm.hhk">
883
<xsl:param name="text"/>
884
<xsl:param name="seealso"/>
886
<LI> <OBJECT type="text/sitemap"><xsl:text>
889
<xsl:attribute name="value">
890
<xsl:value-of select="$text"/>
895
<xsl:if test="not(seealso)">
896
<xsl:variable name="href">
897
<xsl:call-template name="href.target.with.base.dir"/>
899
<xsl:variable name="title">
900
<xsl:call-template name="nearest.title">
901
<xsl:with-param name="object" select=".."/>
906
<xsl:attribute name="value">
907
<xsl:value-of select="$title"/>
912
<xsl:attribute name="value">
913
<xsl:value-of select="$href"/>
919
<xsl:if test="seealso">
920
<param name="See Also">
921
<xsl:attribute name="value">
922
<xsl:value-of select="$seealso"/>
930
<xsl:template match="text()" mode="hhk"/>
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"/>
937
<!-- ==================================================================== -->
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="$base.dir"/>
945
<xsl:value-of select="$htmlhelp.map.file"/>
947
<xsl:with-param name="method" select="'text'"/>
948
<xsl:with-param name="content">
950
<xsl:when test="$rootid != ''">
951
<xsl:apply-templates select="$profiled-nodes//*[@id=$rootid]" mode="hh-map"/>
954
<xsl:apply-templates select="$profiled-nodes" mode="hh-map"/>
958
<xsl:with-param name="encoding" select="$htmlhelp.encoding"/>
959
<xsl:with-param name="quiet" select="$chunk.quietly"/>
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'"/>
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'"/>
976
<xsl:text>#define </xsl:text>
977
<xsl:value-of select="$topicname"/>
978
<xsl:text> </xsl:text>
979
<xsl:value-of select="$topicid"/>
984
<xsl:template match="text()" mode="hh-map"/>
986
<!-- ==================================================================== -->
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="$base.dir"/>
994
<xsl:value-of select="$htmlhelp.alias.file"/>
996
<xsl:with-param name="method" select="'text'"/>
997
<xsl:with-param name="content">
999
<xsl:when test="$rootid != ''">
1000
<xsl:apply-templates select="$profiled-nodes//*[@id=$rootid]" mode="hh-alias"/>
1003
<xsl:apply-templates select="$profiled-nodes" mode="hh-alias"/>
1007
<xsl:with-param name="encoding" select="$htmlhelp.encoding"/>
1008
<xsl:with-param name="quiet" select="$chunk.quietly"/>
1009
</xsl:call-template>
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>
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>
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"/>
1033
<xsl:template match="text()" mode="hh-alias"/>
1035
<!-- ==================================================================== -->
1036
<!-- This code can be used to convert any number to hexadecimal format -->
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 > 0">
1062
<xsl:call-template name="toHex">
1063
<xsl:with-param name="n" select="$rest"/>
1064
</xsl:call-template>
1066
<xsl:value-of select="document('')//h:hex/d[$digit+1]"/>
1069
<!-- ==================================================================== -->
1070
<!-- Modification to standard HTML stylesheets -->
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/>