hhp.xsl revision 42ca33101babe74a1849cdb4565608b617c2d460
eed2a23d9b5986937f1e2b1c120be97744508a72nd<?xml version="1.0"?>
b51bf223f42d43ca6b1b33c95124edcfa5a871a4nd
9963f91528694fb21e93da8584c31f226c6de97akess<!--
eed2a23d9b5986937f1e2b1c120be97744508a72nd Licensed to the Apache Software Foundation (ASF) under one or more
eed2a23d9b5986937f1e2b1c120be97744508a72nd contributor license agreements. See the NOTICE file distributed with
031b91a62d25106ae69d4693475c79618dd5e884fielding this work for additional information regarding copyright ownership.
031b91a62d25106ae69d4693475c79618dd5e884fielding The ASF licenses this file to You under the Apache License, Version 2.0
031b91a62d25106ae69d4693475c79618dd5e884fielding (the "License"); you may not use this file except in compliance with
031b91a62d25106ae69d4693475c79618dd5e884fielding the License. You may obtain a copy of the License at
031b91a62d25106ae69d4693475c79618dd5e884fielding
031b91a62d25106ae69d4693475c79618dd5e884fielding http://www.apache.org/licenses/LICENSE-2.0
eed2a23d9b5986937f1e2b1c120be97744508a72nd
eed2a23d9b5986937f1e2b1c120be97744508a72nd Unless required by applicable law or agreed to in writing, software
eed2a23d9b5986937f1e2b1c120be97744508a72nd distributed under the License is distributed on an "AS IS" BASIS,
eed2a23d9b5986937f1e2b1c120be97744508a72nd WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
eed2a23d9b5986937f1e2b1c120be97744508a72nd See the License for the specific language governing permissions and
eed2a23d9b5986937f1e2b1c120be97744508a72nd limitations under the License.
eed2a23d9b5986937f1e2b1c120be97744508a72nd-->
eed2a23d9b5986937f1e2b1c120be97744508a72nd
eed2a23d9b5986937f1e2b1c120be97744508a72nd<!DOCTYPE xsl:stylesheet [
eed2a23d9b5986937f1e2b1c120be97744508a72nd <!ENTITY lf SYSTEM "/xsl/util/lf.xml">
eed2a23d9b5986937f1e2b1c120be97744508a72nd]>
eed2a23d9b5986937f1e2b1c120be97744508a72nd<xsl:stylesheet version="1.0"
eed2a23d9b5986937f1e2b1c120be97744508a72nd xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
eed2a23d9b5986937f1e2b1c120be97744508a72nd xmlns="">
eed2a23d9b5986937f1e2b1c120be97744508a72nd
54c42060da90b1e584f6af6a349f964d44c6c740nd<!-- the accompanying server version -->
61d237f7e3a54089a7514227d663fac296d7d8f0bnicholes<xsl:param name="httpd.version" select="'generic'" />
54c42060da90b1e584f6af6a349f964d44c6c740nd
54c42060da90b1e584f6af6a349f964d44c6c740nd<!-- create nodeset for referencing later -->
54c42060da90b1e584f6af6a349f964d44c6c740nd<xsl:variable name="htmlhelp.def" select="document('')/xsl:stylesheet
54c42060da90b1e584f6af6a349f964d44c6c740nd /xsl:template[@name='htmlhelp.def']" />
54c42060da90b1e584f6af6a349f964d44c6c740nd
54c42060da90b1e584f6af6a349f964d44c6c740nd<!-- ==================================================================== -->
d4b9d24a20bdf028aa15202f73ac3c0da1626252nd<!-- <sitemap> -->
61d237f7e3a54089a7514227d663fac296d7d8f0bnicholes<!-- Create CHM project file from sitemap -->
61d237f7e3a54089a7514227d663fac296d7d8f0bnicholes<!-- The file is an *.ini format text file -->
61d237f7e3a54089a7514227d663fac296d7d8f0bnicholes<!-- ==================================================================== -->
61d237f7e3a54089a7514227d663fac296d7d8f0bnicholes<xsl:template match="/sitemap">
61d237f7e3a54089a7514227d663fac296d7d8f0bnicholes
61d237f7e3a54089a7514227d663fac296d7d8f0bnicholes<!-- static information -->
61d237f7e3a54089a7514227d663fac296d7d8f0bnicholes<!-- **************************************************************** -->
61d237f7e3a54089a7514227d663fac296d7d8f0bnicholes<xsl:text>[OPTIONS]</xsl:text>&lf;
61d237f7e3a54089a7514227d663fac296d7d8f0bnicholes<xsl:text>Binary TOC=No</xsl:text>&lf;
61d237f7e3a54089a7514227d663fac296d7d8f0bnicholes<xsl:text>Compatibility=1.0</xsl:text>&lf;
61d237f7e3a54089a7514227d663fac296d7d8f0bnicholes
61d237f7e3a54089a7514227d663fac296d7d8f0bnicholes<!-- resulting filename -->
61d237f7e3a54089a7514227d663fac296d7d8f0bnicholes<xsl:text>Compiled file=httpd-docs-</xsl:text>
61d237f7e3a54089a7514227d663fac296d7d8f0bnicholes<xsl:value-of select="$httpd.version" />
61d237f7e3a54089a7514227d663fac296d7d8f0bnicholes<xsl:text>.</xsl:text>
61d237f7e3a54089a7514227d663fac296d7d8f0bnicholes<xsl:value-of select="$doclang" />
61d237f7e3a54089a7514227d663fac296d7d8f0bnicholes<xsl:text>.chm</xsl:text>&lf;
61d237f7e3a54089a7514227d663fac296d7d8f0bnicholes
61d237f7e3a54089a7514227d663fac296d7d8f0bnicholes<xsl:text>Contents file=toc.hhc</xsl:text>&lf;
61d237f7e3a54089a7514227d663fac296d7d8f0bnicholes<xsl:text>Default Window=Main</xsl:text>&lf;
61d237f7e3a54089a7514227d663fac296d7d8f0bnicholes<xsl:text>Default topic=index.html</xsl:text>&lf;
61d237f7e3a54089a7514227d663fac296d7d8f0bnicholes
61d237f7e3a54089a7514227d663fac296d7d8f0bnicholes<!-- compiler related -->
61d237f7e3a54089a7514227d663fac296d7d8f0bnicholes<xsl:text>Display compile progress=Yes</xsl:text>&lf;
61d237f7e3a54089a7514227d663fac296d7d8f0bnicholes<xsl:text>Enhanced decompilation=Yes</xsl:text>&lf;
61d237f7e3a54089a7514227d663fac296d7d8f0bnicholes
61d237f7e3a54089a7514227d663fac296d7d8f0bnicholes<!-- search related -->
61d237f7e3a54089a7514227d663fac296d7d8f0bnicholes<xsl:text>Full-text search=Yes</xsl:text>&lf;
61d237f7e3a54089a7514227d663fac296d7d8f0bnicholes<xsl:text>Language=</xsl:text>
61d237f7e3a54089a7514227d663fac296d7d8f0bnicholes<xsl:value-of select="$hhp-lang" />&lf;
61d237f7e3a54089a7514227d663fac296d7d8f0bnicholes
61d237f7e3a54089a7514227d663fac296d7d8f0bnicholes<!-- title of the help file -->
61d237f7e3a54089a7514227d663fac296d7d8f0bnicholes<xsl:text>Title=</xsl:text>
61d237f7e3a54089a7514227d663fac296d7d8f0bnicholes<xsl:value-of select="normalize-space($message[@id='apachehttpserver'])"/>&lf;&lf;
61d237f7e3a54089a7514227d663fac296d7d8f0bnicholes
61d237f7e3a54089a7514227d663fac296d7d8f0bnicholes<!-- main window definition -->
61d237f7e3a54089a7514227d663fac296d7d8f0bnicholes<xsl:text>[WINDOWS]</xsl:text>&lf;
61d237f7e3a54089a7514227d663fac296d7d8f0bnicholes<xsl:text>Main=</xsl:text>
61d237f7e3a54089a7514227d663fac296d7d8f0bnicholes
61d237f7e3a54089a7514227d663fac296d7d8f0bnicholes<!-- title -->
61d237f7e3a54089a7514227d663fac296d7d8f0bnicholes<xsl:text>"</xsl:text>
61d237f7e3a54089a7514227d663fac296d7d8f0bnicholes<xsl:value-of select="normalize-space($message[@id='apachehttpserver'])"/>
61d237f7e3a54089a7514227d663fac296d7d8f0bnicholes<xsl:text>",</xsl:text>
61d237f7e3a54089a7514227d663fac296d7d8f0bnicholes
61d237f7e3a54089a7514227d663fac296d7d8f0bnicholes<!-- toc file -->
61d237f7e3a54089a7514227d663fac296d7d8f0bnicholes<xsl:text>"toc.hhc",</xsl:text>
61d237f7e3a54089a7514227d663fac296d7d8f0bnicholes
61d237f7e3a54089a7514227d663fac296d7d8f0bnicholes<!-- index file (currently none) -->
61d237f7e3a54089a7514227d663fac296d7d8f0bnicholes<xsl:text>,</xsl:text>
61d237f7e3a54089a7514227d663fac296d7d8f0bnicholes
61d237f7e3a54089a7514227d663fac296d7d8f0bnicholes<!-- default file (startup) -->
61d237f7e3a54089a7514227d663fac296d7d8f0bnicholes<xsl:text>"index.html",</xsl:text>
61d237f7e3a54089a7514227d663fac296d7d8f0bnicholes
61d237f7e3a54089a7514227d663fac296d7d8f0bnicholes<!-- Home button file -->
61d237f7e3a54089a7514227d663fac296d7d8f0bnicholes<xsl:text>"index.html",</xsl:text>
61d237f7e3a54089a7514227d663fac296d7d8f0bnicholes
61d237f7e3a54089a7514227d663fac296d7d8f0bnicholes<!-- Jump 1 url, text -->
61d237f7e3a54089a7514227d663fac296d7d8f0bnicholes<xsl:text>,,</xsl:text>
61d237f7e3a54089a7514227d663fac296d7d8f0bnicholes
61d237f7e3a54089a7514227d663fac296d7d8f0bnicholes<!-- Jump 2 url, text -->
61d237f7e3a54089a7514227d663fac296d7d8f0bnicholes<xsl:text>,,</xsl:text>
61d237f7e3a54089a7514227d663fac296d7d8f0bnicholes
61d237f7e3a54089a7514227d663fac296d7d8f0bnicholes<!-- navigation pane style (0x1e357e) -->
9963f91528694fb21e93da8584c31f226c6de97akess<xsl:call-template name="helper.number2hex">
9963f91528694fb21e93da8584c31f226c6de97akess <xsl:with-param name="number" select="sum($htmlhelp.def/navigation/style
9963f91528694fb21e93da8584c31f226c6de97akess [@selected='yes'])" />
61d237f7e3a54089a7514227d663fac296d7d8f0bnicholes</xsl:call-template>
61d237f7e3a54089a7514227d663fac296d7d8f0bnicholes<xsl:text>,</xsl:text>
b51bf223f42d43ca6b1b33c95124edcfa5a871a4nd
b51bf223f42d43ca6b1b33c95124edcfa5a871a4nd<!-- navigation pane initial width (px) -->
61d237f7e3a54089a7514227d663fac296d7d8f0bnicholes<xsl:text>180,</xsl:text>
61d237f7e3a54089a7514227d663fac296d7d8f0bnicholes
61d237f7e3a54089a7514227d663fac296d7d8f0bnicholes<!-- button mask -->
61d237f7e3a54089a7514227d663fac296d7d8f0bnicholes<xsl:call-template name="helper.number2hex">
61d237f7e3a54089a7514227d663fac296d7d8f0bnicholes <xsl:with-param name="number" select="sum($htmlhelp.def/buttons/button
61d237f7e3a54089a7514227d663fac296d7d8f0bnicholes [@visible='yes'])" />
61d237f7e3a54089a7514227d663fac296d7d8f0bnicholes</xsl:call-template>
61d237f7e3a54089a7514227d663fac296d7d8f0bnicholes<xsl:text>,</xsl:text>
61d237f7e3a54089a7514227d663fac296d7d8f0bnicholes
b51bf223f42d43ca6b1b33c95124edcfa5a871a4nd<!-- Initial Position [Left, Top, Right, Bottom] -->
61d237f7e3a54089a7514227d663fac296d7d8f0bnicholes<xsl:text>[0,0,600,380],</xsl:text>
61d237f7e3a54089a7514227d663fac296d7d8f0bnicholes
61d237f7e3a54089a7514227d663fac296d7d8f0bnicholes<!-- window style -->
61d237f7e3a54089a7514227d663fac296d7d8f0bnicholes<xsl:call-template name="helper.number2hex">
61d237f7e3a54089a7514227d663fac296d7d8f0bnicholes <xsl:with-param name="result" select="'0000'" /> <!-- << 16 -->
61d237f7e3a54089a7514227d663fac296d7d8f0bnicholes <xsl:with-param name="number" select="sum($htmlhelp.def/windowstyle/style
61d237f7e3a54089a7514227d663fac296d7d8f0bnicholes [@selected='yes'])" />
61d237f7e3a54089a7514227d663fac296d7d8f0bnicholes</xsl:call-template>
61d237f7e3a54089a7514227d663fac296d7d8f0bnicholes<xsl:text>,</xsl:text>
61d237f7e3a54089a7514227d663fac296d7d8f0bnicholes
61d237f7e3a54089a7514227d663fac296d7d8f0bnicholes<!-- extended style -->
61d237f7e3a54089a7514227d663fac296d7d8f0bnicholes<xsl:text>,</xsl:text>
61d237f7e3a54089a7514227d663fac296d7d8f0bnicholes
61d237f7e3a54089a7514227d663fac296d7d8f0bnicholes<!-- flag: navigation pane initial closed (=1) -->
61d237f7e3a54089a7514227d663fac296d7d8f0bnicholes<xsl:text>,</xsl:text>
eed2a23d9b5986937f1e2b1c120be97744508a72nd
<!-- unknown, default pane, unknown, unknown -->
<xsl:text>,,,0</xsl:text>&lf;&lf;
<!-- file list -->
<!-- **************************************************************** -->
<xsl:text>[FILES]</xsl:text>&lf;
<!-- not automatically sucked in. (because only @import()ed) -->
<xsl:text>style\css\manual.css</xsl:text>&lf;
<xsl:text>style\css\manual-loose-100pc.css</xsl:text>&lf;
<!-- include project file itself for easier recompiling -->
<xsl:text>manual.hhp</xsl:text>&lf;
<!-- and now all sitemap-listed files -->
<xsl:for-each select="category">
<xsl:apply-templates select="page[@href]" />
<xsl:if test="@id = 'modules'">
<xsl:apply-templates select="document($allmodules)/modulefilelist
/modulefile" />
</xsl:if>
</xsl:for-each>&lf;
</xsl:template>
<!-- /sitemap -->
<!-- ==================================================================== -->
<!-- files referenced in sitemap -->
<!-- ==================================================================== -->
<xsl:template match="category/page">
<xsl:if test="not(starts-with(@href,'http:') or starts-with(@href, 'https:'))">
<xsl:variable name="filename">
<xsl:choose>
<xsl:when test="contains(@href, '#') and substring(@href,
string-length(substring-before(@href, '#')), 1) = '/'">
<xsl:value-of select="substring-before(@href, '#')" />
<xsl:text>index.html</xsl:text>
</xsl:when>
<xsl:when test="substring(@href, string-length(@href), 1) = '/'">
<xsl:value-of select="@href"/>
<xsl:text>index.html</xsl:text>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="@href"/>
</xsl:otherwise>
</xsl:choose>
</xsl:variable>
<xsl:value-of select="translate($filename, '/', '\')" />&lf;
</xsl:if>
</xsl:template>
<!-- /page[@href] -->
<!-- ==================================================================== -->
<!-- list module files -->
<!-- ==================================================================== -->
<xsl:template match="modulefilelist/modulefile">
<xsl:text>mod\</xsl:text>
<xsl:value-of select="substring-before(normalize-space(.), '.xml')" />
<xsl:text>.html</xsl:text>&lf;
</xsl:template>
<!-- /modulefilelist/modulefile -->
<!-- ==================================================================== -->
<!-- convert number to its hexadecimal representation. -->
<!-- I could not find a built-in function, so write our own ... *sigh* -->
<!-- ==================================================================== -->
<xsl:template name="helper.number2hex">
<xsl:param name="number" />
<xsl:param name="result" />
<xsl:choose>
<xsl:when test="number($number) &gt; 0">
<xsl:call-template name="helper.number2hex">
<xsl:with-param name="number" select="floor(number($number) div 16)" />
<xsl:with-param name="result"
select="concat(substring('0123456789abcdef',
(number($number) mod 16) + 1, 1),
$result)" />
</xsl:call-template>
</xsl:when>
<xsl:otherwise>
<!-- if zero, don't print anything. hh.exe (the viewer) seems to -->
<!-- prefer an empty value -->
<xsl:if test="string-length(translate($result, '0', '')) &gt; 0">
<xsl:text>0x</xsl:text>
<xsl:value-of select="$result" />
</xsl:if>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
<!-- /helper.number2hex -->
<!-- ==================================================================== -->
<!-- some of the values are derived from htmlhelp.h -->
<!-- do NOT call this template, it's referenced automagically via -->
<!-- document() function and acts as simple data container. -->
<!-- -->
<!-- Hints: 'ni' means 'not implemented' (by the help viewer) -->
<!-- 'ns' means 'not useful for standalone help file' -->
<!-- ==================================================================== -->
<xsl:template name="htmlhelp.def">
<navigation>
<style > 1</style> <!-- auto hide nav. pane << 0 -->
<style > 2</style> <!-- ns: topmost window << 1 -->
<style > 4</style> <!-- ns: no title bar << 2 -->
<style > 8</style> <!-- ns: no win. style << 3 -->
<style > 16</style> <!-- ns: no ext. style << 4 -->
<style selected="yes"> 32</style> <!-- use tri-pane win. << 5 -->
<style > 64</style> <!-- no toolbar text << 6 -->
<style > 128</style> <!-- ns: send WM_QUIT << 7 -->
<style selected="yes"> 256</style> <!-- toc auto sync << 8 -->
<style > 512</style> <!-- ns: send track. not. << 9 -->
<style selected="yes"> 1024</style> <!-- search tab << 10 -->
<style > 2048</style> <!-- ni(?): history tab << 11 -->
<style selected="yes"> 4096</style> <!-- favorites tab << 12 -->
<style > 8192</style> <!-- ni(?): title sync << 13 -->
<style > 16384</style> <!-- nav. only << 14 -->
<style > 32768</style> <!-- no toolbar << 15 -->
<style selected="yes"> 65536</style> <!-- show menu << 16 -->
<style selected="yes"> 131072</style> <!-- advanced search << 17 -->
<style selected="yes"> 262144</style> <!-- safe user's win. size << 18 -->
<style > 524288</style> <!-- custom tab 1 << 19 -->
<style > 1048576</style> <!-- custom tab 2 << 20 -->
<style > 2097152</style> <!-- custom tab 3 << 21 -->
<style > 4194304</style> <!-- custom tab 4 << 22 -->
<style > 8388608</style> <!-- custom tab 5 << 23 -->
<style > 16777216</style> <!-- custom tab 6 << 24 -->
<style > 33554432</style> <!-- custom tab 7 << 25 -->
<style > 67108864</style> <!-- custom tab 8 << 26 -->
<style >134217728</style> <!-- custom tab 9 << 27 -->
<style >268435456</style> <!-- window has margin (?) << 28 -->
</navigation>
<buttons>
<button visible="yes"> 2</button> <!-- expand/contract << 1 -->
<button visible="yes"> 4</button> <!-- back << 2 -->
<button visible="yes"> 8</button> <!-- forward << 3 -->
<button visible="yes"> 16</button> <!-- Stop << 4 -->
<button > 32</button> <!-- Refresh << 5 -->
<button visible="yes"> 64</button> <!-- Home << 6 -->
<button > 128</button> <!-- ni: browse fwd << 7 -->
<button > 256</button> <!-- ni: browse back << 8 -->
<button > 512</button> <!-- ni: notes << 9 -->
<button > 1024</button> <!-- ni: contents << 10 -->
<button visible="yes"> 2048</button> <!-- Sync TOC << 11 -->
<button visible="yes"> 4096</button> <!-- Options << 12 -->
<button visible="yes"> 8192</button> <!-- Print << 13 -->
<button > 16384</button> <!-- ni: index << 14 -->
<button > 32768</button> <!-- ni: search << 15 -->
<button > 65536</button> <!-- ni: history << 16 -->
<button > 131072</button> <!-- ni: favorites << 17 -->
<button > 262144</button> <!-- Jump 1 << 18 -->
<button > 524288</button> <!-- Jump 2 << 19 -->
<button visible="yes">1048576</button> <!-- (Font) Zoom << 20 -->
<!-- the following work only with binary toc, which unfortunately -->
<!-- seems to eat the different icons ... -->
<button >2097152</button> <!-- TOC next << 21 -->
<button >4194304</button> <!-- TOC prev << 22 -->
</buttons>
<windowstyle>
<!-- all the stuff is additionally shifted << 16 (by the caller) -->
<style selected="yes"> 1</style> <!-- maximize box << 0 -->
<style selected="yes"> 2</style> <!-- minimize box << 1 -->
<style selected="yes"> 4</style> <!-- thick frame << 2 -->
<style selected="yes"> 8</style> <!-- system menu << 3 -->
<style > 16</style> <!-- horiz. scroll << 4 -->
<style > 32</style> <!-- vertic. scroll << 5 -->
<style selected="yes"> 64</style> <!-- dialog frame << 6 -->
<style selected="yes"> 128</style> <!-- border << 7 -->
<style selected="yes"> 256</style> <!-- maximize << 8 -->
<style > 512</style> <!-- clip child win. << 9 -->
<style > 1024</style> <!-- clip sibl. win. << 10 -->
<style > 2048</style> <!-- disabled << 11 -->
<style selected="yes"> 4096</style> <!-- visible << 12 -->
<style selected="yes"> 8192</style> <!-- minimize << 13 -->
<style >16384</style> <!-- child window << 14 -->
<style >32768</style> <!-- pop-up << 15 -->
</windowstyle>
</xsl:template>
<!-- /htmlhelp.def -->
</xsl:stylesheet>