page.xsl 7.4 KB
Newer Older
J
Juerg Haefliger 已提交
1 2
<?xml version="1.0"?>
<xsl:stylesheet
3 4
  xmlns="http://www.w3.org/1999/xhtml"
  xmlns:html="http://www.w3.org/1999/xhtml"
J
Juerg Haefliger 已提交
5 6
  xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
  xmlns:exsl="http://exslt.org/common"
7
  exclude-result-prefixes="xsl exsl html"
J
Juerg Haefliger 已提交
8 9 10 11 12 13 14 15 16
  version="1.0">

  <xsl:template match="node() | @*" mode="content">
    <xsl:copy>
      <xsl:apply-templates select="node() | @*" mode="content"/>
    </xsl:copy>
  </xsl:template>


17
  <xsl:template match="html:ul[@id='toc']" mode="content">
J
Juerg Haefliger 已提交
18 19 20
    <xsl:call-template name="toc"/>
  </xsl:template>

21 22 23 24
  <xsl:template match="html:div[@id='include']" mode="content">
    <xsl:call-template name="include"/>
  </xsl:template>

J
Juerg Haefliger 已提交
25 26
  <xsl:template name="toc">
    <ul>
27
      <xsl:for-each select="/html:html/html:body/html:h2[count(html:a) = 1]">
J
Juerg Haefliger 已提交
28 29
        <xsl:variable name="thish2" select="."/>
        <li>
30
          <a href="#{html:a/@id}"><xsl:value-of select="html:a/text()"/></a>
31
          <xsl:if test="count(./following-sibling::html:h3[preceding-sibling::html:h2[1] = $thish2 and count(html:a) = 1]) > 0">
J
Juerg Haefliger 已提交
32
            <ul>
33
              <xsl:for-each select="./following-sibling::html:h3[preceding-sibling::html:h2[1] = $thish2 and count(html:a) = 1]">
J
Juerg Haefliger 已提交
34 35
                <xsl:variable name="thish3" select="."/>
                <li>
36
                  <a href="#{html:a/@id}"><xsl:value-of select="html:a/text()"/></a>
37
                  <xsl:if test="count(./following-sibling::html:h4[preceding-sibling::html:h3[1] = $thish3 and count(html:a) = 1]) > 0">
J
Juerg Haefliger 已提交
38
                    <ul>
39
                      <xsl:for-each select="./following-sibling::html:h4[preceding-sibling::html:h3[1] = $thish3 and count(html:a) = 1]">
J
Juerg Haefliger 已提交
40 41
                        <xsl:variable name="thish4" select="."/>
                        <li>
42
                          <a href="#{html:a/@id}"><xsl:value-of select="html:a/text()"/></a>
43
                          <xsl:if test="count(./following-sibling::html:h5[preceding-sibling::html:h4[1] = $thish4 and count(html:a) = 1]) > 0">
J
Juerg Haefliger 已提交
44
                            <ul>
45
                              <xsl:for-each select="./following-sibling::html:h5[preceding-sibling::html:h4[1] = $thish4 and count(html:a) = 1]">
J
Juerg Haefliger 已提交
46 47
                                <xsl:variable name="thish5" select="."/>
                                <li>
48
                                  <a href="#{html:a/@id}"><xsl:value-of select="html:a/text()"/></a>
49
                                  <xsl:if test="count(./following-sibling::html:h6[preceding-sibling::html:h5[1] = $thish5 and count(html:a) = 1]) > 0">
J
Juerg Haefliger 已提交
50
                                    <ul>
51
                                      <xsl:for-each select="./following-sibling::html:h6[preceding-sibling::html:h5[1] = $thish5 and count(html:a) = 1]">
J
Juerg Haefliger 已提交
52
                                        <li>
53
                                          <a href="#{html:a/@id}"><xsl:value-of select="html:a/text()"/></a>
J
Juerg Haefliger 已提交
54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77
                                        </li>
                                      </xsl:for-each>
                                    </ul>
                                  </xsl:if>
                                </li>
                              </xsl:for-each>
                            </ul>
                          </xsl:if>
                        </li>
                      </xsl:for-each>
                    </ul>
                  </xsl:if>
                </li>
              </xsl:for-each>
            </ul>
          </xsl:if>
        </li>
      </xsl:for-each>
    </ul>
  </xsl:template>

  <!-- This is the master page structure -->
  <xsl:template match="/" mode="page">
    <xsl:param name="pagename"/>
78
    <xsl:param name="timestamp"/>
79 80
    <xsl:text disable-output-escaping="yes">&lt;!DOCTYPE html&gt;
</xsl:text>
J
Juerg Haefliger 已提交
81 82 83 84 85
    <html>
      <xsl:comment>
        This file is autogenerated from <xsl:value-of select="$pagename"/>.in
        Do not edit this file. Changes will be lost.
      </xsl:comment>
86 87 88
      <xsl:comment>
        This page was generated at <xsl:value-of select="$timestamp"/>.
      </xsl:comment>
J
Juerg Haefliger 已提交
89 90 91
      <head>
        <link rel="stylesheet" type="text/css" href="{$href_base}main.css"/>
        <link rel="SHORTCUT ICON" href="{$href_base}32favicon.png"/>
92
        <title>libvirt: <xsl:value-of select="html:html/html:body/html:h1"/></title>
J
Juerg Haefliger 已提交
93
        <meta name="description" content="libvirt, virtualization, virtualization API"/>
94
        <xsl:apply-templates select="/html:html/html:head/*" mode="content"/>
J
Juerg Haefliger 已提交
95 96
      </head>
      <body>
97 98 99 100 101
        <xsl:if test="html:html/html:body/@class">
          <xsl:attribute name="class">
            <xsl:value-of select="html:html/html:body/@class"/>
          </xsl:attribute>
        </xsl:if>
J
Juerg Haefliger 已提交
102 103
        <div id="body">
          <div id="content">
104
            <xsl:apply-templates select="/html:html/html:body/*" mode="content"/>
J
Juerg Haefliger 已提交
105 106
          </div>
        </div>
107 108 109 110
        <div id="nav">
          <div id="home">
            <a href="{$href_base}index.html">Home</a>
          </div>
111 112
          <div id="jumplinks">
            <ul>
113 114 115
              <li><a href="{$href_base}downloads.html">Download</a></li>
              <li><a href="{$href_base}contribute.html">Contribute</a></li>
              <li><a href="{$href_base}docs.html">Learn</a></li>
116 117
            </ul>
          </div>
118 119 120 121 122 123 124 125 126
          <div id="search">
            <form action="{$href_base}search.php" enctype="application/x-www-form-urlencoded" method="get">
              <div>
                <input name="query" type="text" size="12" value=""/>
                <input name="submit" type="submit" value="Go"/>
              </div>
            </form>
          </div>
        </div>
D
Daniel P. Berrange 已提交
127 128 129 130
        <div id="footer">
          <div id="contact">
            <h3>Contact</h3>
            <ul>
131 132
              <li><a href="{$href_base}contact.html#email">email</a></li>
              <li><a href="{$href_base}contact.html#irc">irc</a></li>
D
Daniel P. Berrange 已提交
133 134 135 136 137 138 139 140 141 142 143 144
            </ul>
          </div>
          <div id="community">
            <h3>Community</h3>
            <ul>
              <li><a href="https://twitter.com/hashtag/libvirt">twitter</a></li>
              <li><a href="https://plus.google.com/communities/109522598353007505282">google+</a></li>
              <li><a href="http://stackoverflow.com/questions/tagged/libvirt">stackoverflow</a></li>
              <li><a href="http://serverfault.com/questions/tagged/libvirt">serverfault</a></li>
            </ul>
          </div>
          <div id="conduct">
145
            Participants in the libvirt project agree to abide by <a href="{$href_base}governance.html#codeofconduct">the project code of conduct</a>
D
Daniel P. Berrange 已提交
146 147 148
          </div>
          <br class="clear"/>
        </div>
J
Juerg Haefliger 已提交
149 150 151 152
      </body>
    </html>
  </xsl:template>

153 154 155 156 157 158 159
  <xsl:template name="include">
    <xsl:variable name="inchtml">
      <xsl:copy-of select="document(@filename)"/>
    </xsl:variable>

    <xsl:apply-templates select="exsl:node-set($inchtml)/html:html/html:body/*" mode="content"/>
  </xsl:template>
160 161

  <xsl:template match="html:h2 | html:h3 | html:h4 | html:h5 | html:h6" mode="content">
162
    <xsl:element name="{name()}">
163
      <xsl:apply-templates mode="copy" />
164 165
      <xsl:if test="./html:a/@id">
        <a class="headerlink" href="#{html:a/@id}" title="Permalink to this headline">&#xb6;</a>
166 167 168 169 170 171 172 173 174
      </xsl:if>
    </xsl:element>
  </xsl:template>

  <xsl:template match="text()" mode="copy">
    <xsl:value-of select="."/>
  </xsl:template>

  <xsl:template match="node()" mode="copy">
175
    <xsl:element name="{name()}">
176 177 178 179
      <xsl:copy-of select="./@*"/>
      <xsl:apply-templates mode="copy" />
    </xsl:element>
  </xsl:template>
J
Juerg Haefliger 已提交
180
</xsl:stylesheet>