Merge branch 'master' of github.com:nigelm/exim-website
[exim-website.git] / templates / wrapper.xsl
1 <?xml version="1.0" encoding="UTF-8"?>
2
3 <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
4
5    <!-- Define display/content information -->
6       <xsl:output indent="yes"/>
7       <xsl:output encoding="UTF-8"/>
8       <xsl:output media-type="text/html"/>
9       <xsl:output omit-xml-declaration="yes"/>
10       <xsl:output doctype-public="XSLT-compat"/>
11
12    <!-- Define some variables -->
13       <xsl:variable name="docroot"/>
14       <xsl:variable name="html.head.title"/>
15       <xsl:variable name="html.head.description" select="'Exim is a message transfer agent (MTA) developed at the University of Cambridge for use on Unix systems connected to the Internet.'"/>
16       <xsl:variable name="html.head.keywords" select="'exim,smtp,mta,email'"/>
17       <xsl:variable name="html.head.robots" select="'noodp,noydir,index,follow'"/>
18       <xsl:variable name="html.head.append"/>
19       <xsl:variable name="html.body.append"/>
20       <xsl:variable name="html.body.outer.append"/>
21
22    <!-- The main template code -->
23       <xsl:template match="/">
24          <html lang="en-GB">
25             <head>
26                <link rel="stylesheet" type="text/css" href="{$docroot}/common.css"/>
27
28                <meta name="author"      content="The Exim Project. &lt;http://www.exim.org/&gt;"/>
29                <meta name="copyright"   content="Copyright ©1995-2011 The Exim Project. All rights reserved"/>
30                <meta name="description" content="{$html.head.description}"/>
31                <meta name="keywords"    content="{$html.head.keywords}"/>
32                <meta name="robots"      content="{$html.head.robots}"/>
33
34                <!-- Mobile Safari (iPhone) - Reduce viewport to physical size of device -->
35                   <meta name="viewport" content="width=device-width"/>
36
37                <title>
38                   <xsl:value-of select="$html.head.title"/>
39                </title>
40             
41                <xsl:copy-of select="$html.head.append"/>
42             </head>
43             <body class="no-js">
44                 <!-- Changed body classname from "no-js" to "with-js" for styling purposes -->
45
46                    <script type="text/javascript"><![CDATA[document.body.className=(' '+document.body.className+' ').replace('no-js','with-js');]]></script>
47
48                 <!-- Header -->
49
50                    <h1 id="header">
51                       <a href="{$docroot}">Exim Internet Mailer</a>
52                    </h1>
53
54                 <!-- Outer Container -->
55
56                    <div id="outer">
57
58                       <!-- Navigation -->
59
60                          <ul id="nav_flow" class="nav">
61                             <li> <a href="{$docroot}/index.html">Home</a> </li>
62                             <li> <a href="{$docroot}/mirrors.html">Download</a> </li>
63                             <li> <a href="{$docroot}/docs.html">Documentation</a> </li>
64                             <li> <a href="{$docroot}/maillist.html">Mailing Lists</a> </li>
65                             <li> <a href="http://wiki.exim.org/">Wiki</a> </li>
66                             <li> <a href="http://www.exim.org/bugzilla/">Bugs</a> </li>
67                             <li> <a href="{$docroot}/credits.html">Credits</a> </li>
68
69                             <li class="img">
70                                <a href="https://plus.google.com/101257968735428844827/?prsrc=3" title="Google+">
71                                        <img src="{$docroot}/i/gplus-32.png" width="16" height="16" alt="G+"/>
72                                </a>
73                             </li>
74
75                             <!-- Search Field -->
76
77                                <li class="search">
78                                   <form action="https://encrypted.google.com/search" method="get">
79                                      <span class="search_field_container">
80                                         <input type="search" name="q" placeholder="Search Docs" class="search_field"/>
81                                      </span>
82                                      <input type="hidden" name="hl" value="en"/>
83                                      <input type="hidden" name="ie" value="UTF-8"/>
84                                      <input type="hidden" name="as_qdr" value="all"/>
85                                      <input type="hidden" name="q" value="site:www.exim.org"/>
86                                      <input type="hidden" name="q" value="inurl:exim-html-current"/>
87                                   </form>
88                                </li>
89                          </ul>
90
91                       <!-- MAIN CONTENT. This is the div that wraps around the other stylesheets -->
92                          <div id="inner">
93                             <div id="content">
94                               <xsl:call-template name="content"/>
95                            </div>
96                          </div>
97
98                       <!-- Branding -->
99                          <iframe id="branding" name="branding" src="{$docroot}/branding/branding.html" height="0" frameborder="no" scrolling="no"/>
100
101                       <!-- Footer -->
102
103                          <div id="footer">
104                             <xsl:text>Website design by </xsl:text>
105                             <a href="https://grepular.com/">Mike Cardwell</a>
106                             <xsl:text>, of </xsl:text>
107                             <a href="http://cardwellit.com/">Cardwell IT Ltd.</a>
108                          </div>
109
110                       <!-- Side Bars -->
111                          <div class="left_bar"/>
112                          <div class="right_bar"/>
113
114                       <!-- Append anything to the outer container? -->
115                          <xsl:copy-of select="$html.body.outer.append"/>
116                    </div>
117
118                 <!-- Load latest version of jQuery 1.6 from the Google CDN -->
119                    <script type="text/javascript" src="//ajax.googleapis.com/ajax/libs/jquery/1.6/jquery.min.js"></script>
120
121                 <!-- Local JavaScript -->
122                    <script type="text/javascript" src="{$docroot}/common.js"></script>
123                    
124                    <xsl:copy-of select="$html.body.append"/>
125
126              </body>
127
128          </html>
129       </xsl:template>
130
131    <!-- Quote Element -->
132       <xsl:template match="quote">
133          <xsl:text>&#8220;</xsl:text><xsl:apply-templates match="*"/><xsl:text>&#8221;</xsl:text>
134       </xsl:template>
135
136    <!-- Random Docbook Elements -->
137       <xsl:template match="filename | emphasis | option | command | function">
138          <span class="docbook_{name()}"> <xsl:apply-templates/> </span>
139       </xsl:template>
140
141    <!-- Literal Element -->
142       <xsl:template match="literal">
143          <code class="docbook_literal"> <xsl:apply-templates/> </code>
144       </xsl:template>
145       <xsl:template match="literallayout">
146          <div class="docbook_literallayout"> <pre> <xsl:apply-templates/> </pre> </div>
147       </xsl:template>
148
149    <!-- ULink Element -->
150       <xsl:template match="ulink">
151          <a href="{text()}"> <xsl:value-of select="text()"/> </a>
152       </xsl:template>
153
154    <!-- XREF (Fixed up in the Perl) -->
155       <xsl:template match="xref">
156          <a href="{@url}" title="{@chapter_id}. {@chapter_title}">
157             <xsl:choose>
158                <xsl:when test="@section_id">
159                   <xsl:choose>
160                      <xsl:when test="@longref">
161                         <xsl:value-of select="@chapter_title"/>
162                         <small>
163                            <xsl:value-of select="concat(' [',@section_title,']')"/>
164                         </small>
165                      </xsl:when>
166                      <xsl:otherwise>
167                         <xsl:value-of select="concat(@chapter_id,'.',@section_id)"/>
168                      </xsl:otherwise>
169                   </xsl:choose>
170                </xsl:when>
171                <xsl:otherwise>
172                   <xsl:choose>
173                      <xsl:when test="@longref">
174                         <xsl:value-of select="@chapter_title"/>
175                      </xsl:when>
176                      <xsl:otherwise>
177                         <xsl:value-of select="@chapter_id"/>
178                      </xsl:otherwise>
179                   </xsl:choose>
180                </xsl:otherwise>
181             </xsl:choose>
182          </a>
183       </xsl:template>
184
185    <!-- Para -->
186       <xsl:template match="para">
187          <p>
188             <xsl:if test="@revisionflag!=''"><xsl:attribute name="class">changed</xsl:attribute></xsl:if>
189             <xsl:apply-templates/>
190          </p>
191       </xsl:template>
192
193    <!-- Lists -->
194       <xsl:template match="itemizedlist">                        <ul> <xsl:apply-templates/> </ul> </xsl:template>
195       <xsl:template match="itemizedlist/listitem">               <li> <xsl:apply-templates/> </li> </xsl:template>
196       <xsl:template match="orderedlist">                         <ol> <xsl:apply-templates/> </ol> </xsl:template>
197       <xsl:template match="orderedlist/listitem">                <li> <xsl:apply-templates/> </li> </xsl:template>
198       <xsl:template match="variablelist">                        <dl> <xsl:apply-templates/> </dl> </xsl:template>
199       <xsl:template match="variablelist/varlistentry/term">      <dt> <xsl:apply-templates/> </dt> </xsl:template>
200       <xsl:template match="variablelist/varlistentry/listitem">  <dd> <xsl:apply-templates/> </dd> </xsl:template>
201
202    <!-- Table -->
203       <xsl:template match="informaltable"> <table> <xsl:apply-templates/> </table> </xsl:template>
204       <xsl:template match="tbody/row">     <tr>    <xsl:apply-templates/> </tr>    </xsl:template>
205       <xsl:template match="row/entry">     <td>    <xsl:apply-templates/> </td>    </xsl:template>
206       <xsl:template match="tgroup|tbody"> <xsl:apply-templates/> </xsl:template>
207
208    <!-- Ignore -->
209       <xsl:template match="indexterm|title|titleabbrev|current_version"/>
210
211 </xsl:stylesheet>