page.xsl 7.9 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
      <head>
90
        <meta charset="UTF-8"/>
91
        <meta name="viewport" content="width=device-width, initial-scale=1"/>
J
Juerg Haefliger 已提交
92
        <link rel="stylesheet" type="text/css" href="{$href_base}main.css"/>
93 94 95 96 97
        <link rel="apple-touch-icon" sizes="180x180" href="/apple-touch-icon.png"/>
        <link rel="icon" type="image/png" sizes="32x32" href="/favicon-32x32.png"/>
        <link rel="icon" type="image/png" sizes="16x16" href="/favicon-16x16.png"/>
        <link rel="manifest" href="/manifest.json"/>
        <meta name="theme-color" content="#ffffff"/>
98
        <title>libvirt: <xsl:value-of select="html:html/html:body/html:h1"/></title>
J
Juerg Haefliger 已提交
99
        <meta name="description" content="libvirt, virtualization, virtualization API"/>
100
        <xsl:apply-templates select="/html:html/html:head/*" mode="content"/>
101

102 103
        <script type="text/javascript" src="{$href_base}js/main.js">
          <xsl:comment>// forces non-empty element</xsl:comment>
104
        </script>
J
Juerg Haefliger 已提交
105
      </head>
106
      <body onload="pageload()">
107 108 109 110 111
        <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 已提交
112 113
        <div id="body">
          <div id="content">
114
            <xsl:apply-templates select="/html:html/html:body/*" mode="content"/>
J
Juerg Haefliger 已提交
115 116
          </div>
        </div>
117 118 119 120
        <div id="nav">
          <div id="home">
            <a href="{$href_base}index.html">Home</a>
          </div>
121 122
          <div id="jumplinks">
            <ul>
123 124
              <li><a href="{$href_base}downloads.html">Download</a></li>
              <li><a href="{$href_base}contribute.html">Contribute</a></li>
125
              <li><a href="{$href_base}docs.html">Docs</a></li>
126 127
            </ul>
          </div>
128
          <div id="search">
129 130 131 132
            <form action="https://www.google.com/search" enctype="application/x-www-form-urlencoded" method="get">
              <input name="sitesearch" type="hidden" value="libvirt.org"/>
              <input name="q" type="text" size="12" value=""/>
              <input type="submit" value="Go"/>
133 134 135
            </form>
          </div>
        </div>
D
Daniel P. Berrange 已提交
136 137 138 139
        <div id="footer">
          <div id="contact">
            <h3>Contact</h3>
            <ul>
140 141
              <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 已提交
142 143 144 145 146 147 148 149 150 151 152
            </ul>
          </div>
          <div id="community">
            <h3>Community</h3>
            <ul>
              <li><a href="https://twitter.com/hashtag/libvirt">twitter</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">
153
            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 已提交
154 155 156
          </div>
          <br class="clear"/>
        </div>
J
Juerg Haefliger 已提交
157 158 159 160
      </body>
    </html>
  </xsl:template>

161 162 163 164 165 166 167
  <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>
168 169

  <xsl:template match="html:h2 | html:h3 | html:h4 | html:h5 | html:h6" mode="content">
170
    <xsl:element name="{name()}">
171
      <xsl:apply-templates mode="copy" />
172 173
      <xsl:if test="./html:a/@id">
        <a class="headerlink" href="#{html:a/@id}" title="Permalink to this headline">&#xb6;</a>
174 175 176 177 178 179 180 181 182
      </xsl:if>
    </xsl:element>
  </xsl:template>

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

  <xsl:template match="node()" mode="copy">
183
    <xsl:element name="{name()}">
184 185 186 187
      <xsl:copy-of select="./@*"/>
      <xsl:apply-templates mode="copy" />
    </xsl:element>
  </xsl:template>
J
Juerg Haefliger 已提交
188
</xsl:stylesheet>