⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 hhc.xsl

📁 Apache_2.0.59-Openssl_0.9 配置tomcat. Apache_2.0.59-Openssl_0.9 配置tomcat.
💻 XSL
📖 第 1 页 / 共 2 页
字号:
<?xml version="1.0"?>

<!--
 Licensed to the Apache Software Foundation (ASF) under one or more
 contributor license agreements.  See the NOTICE file distributed with
 this work for additional information regarding copyright ownership.
 The ASF licenses this file to You under the Apache License, Version 2.0
 (the "License"); you may not use this file except in compliance with
 the License.  You may obtain a copy of the License at

     http://www.apache.org/licenses/LICENSE-2.0

 Unless required by applicable law or agreed to in writing, software
 distributed under the License is distributed on an "AS IS" BASIS,
 WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 See the License for the specific language governing permissions and
 limitations under the License.
-->

<!DOCTYPE xsl:stylesheet [
    <!ENTITY lf SYSTEM "../xsl/util/lf.xml">
    <!ENTITY tab SYSTEM "../xsl/util/tab.xml">

    <!ENTITY ul.start SYSTEM "../xsl/util/ul-start.xml">
    <!ENTITY ul.end SYSTEM   "../xsl/util/ul-end.xml"  >
    <!ENTITY li.start SYSTEM "../xsl/util/li-start.xml">
    <!ENTITY li.end SYSTEM   "../xsl/util/li-end.xml"  >
]>
<xsl:stylesheet version="1.0"
              xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
                  xmlns="">

<!--                                                                      -->
<!-- WARNING! Do not touch anything, especially the whitespaces [1]       -->
<!-- unless you know, what you're doing. The HTML help compiler parses    -->
<!-- the TOC file not really as html instead of line by line and takes    -->
<!-- care of whitespace indentations etc.                                 -->
<!--                                                                      -->
<!--   [1] Covered by the &lf; and &tab; entities.                        -->
<!--                                                                      -->
<!-- You have been warned.                                                -->
<!--                                                                      -->

<!-- create nodeset for referencing later                                 -->
<xsl:variable name="not-exists" select="document('')/xsl:stylesheet/xsl:template
                                        [@name='data']/not-exists/file" />

<xsl:template name="data">
<!-- documents not converted (yet?). -->
<not-exists>
<!--  example: <file>developer/API.xml</file> -->
</not-exists>
</xsl:template>

<!-- Constants used for case translation -->
<xsl:variable name="lowercase" select="'abcdefghijklmnopqrstuvwxyz'" />
<xsl:variable name="uppercase" select="'ABCDEFGHIJKLMNOPQRSTUVWXYZ'" />

<!-- document() works relative to the xsl (!) file -->
<xsl:variable name="basedir" select="'../../'"/>

<!-- icons -->
<xsl:variable name="icon.document" select="'11'" />
<xsl:variable name="icon.document.not-translated" select="'12'" />
<xsl:variable name="icon.section" select="'35'" />
<xsl:variable name="icon.directive" select="'41'" />
<xsl:variable name="icon.commondirective" select="'19'" />
<!-- this should not happen. this icon is only displayed within the
     toc view of the help workshop (it's a question mark): -->
<xsl:variable name="icon.no-anchor" select="'9'" />

<!-- for module-translatename -->
<xsl:include href="../xsl/util/modtrans.xsl"/>

<!-- ==================================================================== -->
<!-- <sitemap>                                                            -->
<!-- Create CHM contents file (toc) from sitemap                          -->
<!-- The file is an html style text file (see warning on top)             -->
<!-- ==================================================================== -->
<xsl:template match="/sitemap">

<!-- html head -->
<xsl:text>&lt;html&gt;&lt;head&gt;</xsl:text>
<xsl:text>&lt;title&gt;Apache HTTP Server Documentation&lt;/title&gt;</xsl:text>
<xsl:text>&lt;/head&gt;</xsl:text>&lf;

<xsl:text>&lt;body&gt;</xsl:text>&lf;

<!-- toc properties first -->
<xsl:text>&lt;object type="text/site properties"&gt;</xsl:text>&lf;&tab;
<!-- XXX: that magic value is still obfuscated. Research needed ... -->
<xsl:text>&lt;param name="Window Styles" value="0x800027"&gt;</xsl:text>&lf;&tab;
<xsl:text>&lt;param name="Font" value="</xsl:text>
    <xsl:value-of select="$toc-font" />
<xsl:text>"&gt;</xsl:text>&lf;
<xsl:text>&lt;/object&gt;</xsl:text>&lf;

&ul.start; &lf;

    <!-- index page on top. -->
    &li.start;
    <xsl:call-template name="object">
        <xsl:with-param name="name"
            select="normalize-space($message[@id='apachehttpserver'])" />
        <xsl:with-param name="href" select="'index.html'" />
        <xsl:with-param name="indent" select="'&#9;&#9;'" />
    </xsl:call-template>
    &li.end; &lf;

    <!-- iterate over the categories in document order -->
    <xsl:for-each select="category">
        &li.start;
        <xsl:call-template name="folder">
            <xsl:with-param name="name" select="normalize-space(title)" />
        </xsl:call-template>&lf;&tab;

        &ul.start; &lf;&tab;
            <xsl:apply-templates select="page" />
            <xsl:if test="@id = 'modules'">
                <xsl:apply-templates select="document($allmodules)/modulefilelist" />
            </xsl:if>
        &ul.end; &lf;
        &li.end; &lf;&tab;
    </xsl:for-each>&lf;

&ul.end; &lf;

<xsl:text>&lt;/body&gt;&lt;/html&gt;</xsl:text>&lf;
</xsl:template>
<!-- /sitemap -->


<!-- ==================================================================== -->
<!-- category/page                                                        -->
<!-- ==================================================================== -->
<xsl:template match="category/page">
&li.start;

<!-- document entry, if not href attribute, assume it means "sitemap" -->
<xsl:call-template name="object">
    <xsl:with-param name="name">
        <xsl:choose>
        <xsl:when test="@href">
            <xsl:value-of select="normalize-space(.)" />
        </xsl:when>
        <xsl:otherwise>
            <xsl:value-of select="normalize-space($message[@id='sitemap'])" />
        </xsl:otherwise>
        </xsl:choose>
    </xsl:with-param>
    <xsl:with-param name="href">
        <xsl:choose>
        <xsl:when test="not(@href)">
            <xsl:text>sitemap.html</xsl:text>
        </xsl:when>
        <xsl:when test="contains(@href, '#')">
            <xsl:value-of select="substring-before(@href, '#')" />
        </xsl:when>
        <xsl:otherwise>
            <xsl:value-of select="@href"/>
        </xsl:otherwise>
        </xsl:choose>
    </xsl:with-param>
    <xsl:with-param name="indent" select="'&#9;&#9;'" />
</xsl:call-template>

<!-- now try to index the sections of the document -->
<xsl:apply-templates select="self::page" mode="index" />

&li.end; &lf;&tab;
</xsl:template>
<!-- /category/page -->


<!-- ==================================================================== -->
<!-- category/page, mode="index"                                          -->
<!-- display all section headings of one page                             -->
<!-- ==================================================================== -->
<xsl:template match="category/page" mode="index">
<xsl:variable name="href.offline">
    <xsl:choose>
    <xsl:when test="string-length(@href) = 0">
        <xsl:text>sitemap.html</xsl:text>
    </xsl:when>
    <xsl:otherwise>
        <xsl:call-template name="helper.href.offline">
            <xsl:with-param name="href" select="@href" />
        </xsl:call-template>
    </xsl:otherwise>
    </xsl:choose>
</xsl:variable>
<xsl:variable name="xml"
    select="concat(substring-before($href.offline, '.html'), '.xml')" />

<xsl:if test="not($xml = $not-exists)">
    <xsl:variable name="xmlfile">
        <xsl:variable name="metafile"
            select="document(document(concat($basedir, $xml))/*/@metafile)
                    /metafile" />
        <xsl:choose>
        <xsl:when test="$metafile/variants/variant[.=$doclang] and not
                        ($metafile/variants/variant[.=$doclang]
                         /@htmlonly = 'yes')">
                <xsl:value-of select="concat($basedir,
                                   substring-before($xml, '.xml'), $xml-ext)" />
        </xsl:when>
        <xsl:otherwise>
            <xsl:value-of select="concat($basedir, $xml)" />
        </xsl:otherwise>
        </xsl:choose>
    </xsl:variable>

    <xsl:variable name="current" select="document($xmlfile)" />

    <xsl:if test="count($current/*/*[local-name()='section' or
                                     local-name()='category']) &gt; 1">
        &lf;&tab;&tab;&tab;
        &ul.start; &lf;&tab;&tab;&tab;

        <xsl:for-each select="$current/*/*[local-name()='section' or
                                           local-name()='category']">
            &li.start;

            <xsl:call-template name="object">
                <xsl:with-param name="name" select="normalize-space(title)" />
                <xsl:with-param name="href">
                    <xsl:if test="@id">
                        <xsl:value-of
                            select="concat(substring-before($xml, '.xml'),
                                           '.html#', @id)" />
                    </xsl:if>
                </xsl:with-param>
                <xsl:with-param name="indent" select="'&#9;&#9;&#9;&#9;'" />
            </xsl:call-template>

            &li.end; &lf;&tab;&tab;
        </xsl:for-each>

        &ul.end; &lf;&tab;
    </xsl:if> <!-- count() > 1 -->
</xsl:if> <!-- xml exists -->
</xsl:template>
<!-- /category/page, "index" -->


<!-- ==================================================================== -->
<!-- category/modulefilelist                                              -->
<!-- process all listed module files                                      -->
<!-- ==================================================================== -->
<xsl:template match="modulefilelist">
<!-- create a module name translation list for sorting -->
<xsl:variable name="translist">
    <xsl:text>-</xsl:text>

    <xsl:for-each select="modulefile">
        <xsl:variable name="current"
            select="document(concat($basedir,'mod/',.))/modulesynopsis" />
   
        <xsl:text> </xsl:text>
        <xsl:value-of select="$current/name"/>
        <xsl:text> </xsl:text>
        <xsl:call-template name="module-translatename">
            <xsl:with-param name="name" select="$current/name"/>
        </xsl:call-template>
        <xsl:text> -</xsl:text>
    </xsl:for-each>
</xsl:variable>

<!-- put core and mpm_common on top -->
<xsl:call-template name="toc-entry.mpm">
    <xsl:with-param name="current"
        select="document(concat($basedir, 'mod/', modulefile[starts-with(.,
                         'core.xml')]/text()))/modulesynopsis" />
    <xsl:with-param name="name" select="'core'" />
</xsl:call-template>

<xsl:call-template name="toc-entry.mpm">
    <xsl:with-param name="current"
        select="document(concat($basedir, 'mod/', modulefile[starts-with(.,
                         'mpm_common.xml')]/text()))/modulesynopsis" />
    <xsl:with-param name="name" select="'common'" />
</xsl:call-template>

<!-- remaining MPMs -->
<xsl:for-each select="modulefile">
<xsl:sort select="substring-before(substring-after($translist, concat('- ',
    document(concat($basedir, 'mod/', .))/modulesynopsis/name, ' ')), ' -')" />

    <xsl:variable name="current"
        select="document(concat($basedir, 'mod/', .))/modulesynopsis" />

    <xsl:if test="$current/status='MPM' and not($current/name='mpm_common')">
        <xsl:call-template name="toc-entry.mpm">
            <xsl:with-param name="current" select="$current" />
            <xsl:with-param name="name" select="substring-before(
                substring-after($translist, concat('- ', $current/name, ' ')),
                ' -')" />
        </xsl:call-template>
    </xsl:if>
</xsl:for-each>

<!-- normal modules -->
<xsl:for-each select="modulefile">
<xsl:sort select="substring-before(substring-after($translist, concat('- ',
    document(concat($basedir, 'mod/', .))/modulesynopsis/name, ' ')), ' -')" />

    <xsl:variable name="current"
        select="document(concat($basedir, 'mod/', .))/modulesynopsis" />

    <xsl:if test="not($current/status='MPM') and not($current/status='Core')">
        <xsl:call-template name="toc-entry.module">
            <xsl:with-param name="current" select="$current"/>
        </xsl:call-template>
    </xsl:if>
</xsl:for-each>
</xsl:template>
<!-- /category/modulefilelist -->


<!-- ==================================================================== -->
<!-- toc-entry.mpm                                                        -->
<!-- create entry (and initiate subsection entries) of an mpm             -->
<!-- ==================================================================== -->
<xsl:template name="toc-entry.mpm">
<xsl:param name="current" />
<xsl:param name="name" />

&li.start;

<xsl:call-template name="object">
    <xsl:with-param name="name">
        <xsl:choose>
        <xsl:when test="$name='core'">
            <xsl:value-of select="normalize-space($message[@id='apachecore'])" />
        </xsl:when>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -