~todd-deshane/openstack-manuals/working

« back to all changes in this revision

Viewing changes to doc/build/docbook-xsl-1.76.1/htmlhelp/htmlhelp-common.xsl

  • Committer: Anne Gentle
  • Date: 2011-04-04 17:54:52 UTC
  • Revision ID: anne@openstack.org-20110404175452-gtth3hfrniqhpp5o
Switching from Ant builds to Maven, still working out kinks but should be functional

Show diffs side-by-side

added added

removed removed

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