1<?xml version='1.0'?>
2<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
3                version='1.0'
4                xmlns="http://www.w3.org/TR/xhtml1/transitional"
5                exclude-result-prefixes="#default">
6
7<xsl:import href="http://docbook.sourceforge.net/release/xsl/current/xhtml/chunk.xsl"/>
8<xsl:include href="stylesheet-common.xsl" />
9<xsl:include href="stylesheet-html-common.xsl" />
10<xsl:include href="stylesheet-speedup-xhtml.xsl" />
11
12
13<!-- Parameters -->
14<xsl:param name="base.dir" select="'html/'"></xsl:param>
15<xsl:param name="use.id.as.filename" select="'1'"></xsl:param>
16<xsl:param name="generate.legalnotice.link" select="1"></xsl:param>
17<xsl:param name="chunk.first.sections" select="1"/>
18<xsl:param name="chunk.quietly" select="1"></xsl:param>
19<xsl:param name="admon.style"></xsl:param>  <!-- handled by CSS stylesheet -->
20
21<xsl:param name="website.stylesheet" select="0"/>
22
23<xsl:param name="html.stylesheet">
24  <xsl:choose>
25    <xsl:when test="$website.stylesheet = 0">stylesheet.css</xsl:when>
26    <xsl:otherwise>https://www.postgresql.org/media/css/docs.css</xsl:otherwise>
27  </xsl:choose>
28</xsl:param>
29
30
31<!-- strip directory name from image filerefs -->
32<xsl:template match="imagedata/@fileref">
33 <xsl:value-of select="substring-after(., '/')"/>
34</xsl:template>
35
36
37<!--
38Customization of header
39- add Up and Home links
40- add tool tips to links
41
42(overrides html/chunk-common.xsl)
43-->
44<xsl:template name="header.navigation">
45  <xsl:param name="prev" select="/foo"/>
46  <xsl:param name="next" select="/foo"/>
47  <xsl:param name="nav.context"/>
48
49  <xsl:variable name="home" select="/*[1]"/>
50  <xsl:variable name="up" select="parent::*"/>
51
52  <xsl:variable name="row1" select="$navig.showtitles != 0"/>
53  <xsl:variable name="row2" select="count($prev) &gt; 0
54                                    or (count($up) &gt; 0
55                                        and $navig.showtitles != 0)
56                                    or count($next) &gt; 0"/>
57
58  <xsl:if test="$suppress.navigation = '0' and $suppress.header.navigation = '0'">
59    <div class="navheader">
60      <xsl:if test="$row1 or $row2">
61        <table width="100%" summary="Navigation header">
62          <xsl:if test="$row1">
63            <tr>
64              <th colspan="5" align="center">
65                <xsl:apply-templates select="." mode="object.title.markup"/>
66              </th>
67            </tr>
68          </xsl:if>
69
70          <xsl:if test="$row2">
71            <tr>
72              <td width="10%" align="{$direction.align.start}">
73                <xsl:if test="count($prev)>0">
74                  <a accesskey="p">
75                    <xsl:attribute name="href">
76                      <xsl:call-template name="href.target">
77                        <xsl:with-param name="object" select="$prev"/>
78                      </xsl:call-template>
79                    </xsl:attribute>
80                    <xsl:attribute name="title">
81                      <xsl:apply-templates select="$prev" mode="object.title.markup"/>
82                    </xsl:attribute>
83                    <xsl:call-template name="navig.content">
84                      <xsl:with-param name="direction" select="'prev'"/>
85                    </xsl:call-template>
86                  </a>
87                </xsl:if>
88                <xsl:text>&#160;</xsl:text>
89              </td>
90              <td width="10%" align="{$direction.align.start}">
91                <xsl:choose>
92                  <xsl:when test="count($up)&gt;0">
93                    <a accesskey="u">
94                      <xsl:attribute name="href">
95                        <xsl:call-template name="href.target">
96                          <xsl:with-param name="object" select="$up"/>
97                        </xsl:call-template>
98                      </xsl:attribute>
99                      <xsl:attribute name="title">
100                        <xsl:apply-templates select="$up" mode="object.title.markup"/>
101                      </xsl:attribute>
102                      <xsl:call-template name="navig.content">
103                        <xsl:with-param name="direction" select="'up'"/>
104                      </xsl:call-template>
105                    </a>
106                  </xsl:when>
107                  <xsl:otherwise>&#160;</xsl:otherwise>
108                </xsl:choose>
109              </td>
110              <th width="60%" align="center">
111                <xsl:choose>
112                  <xsl:when test="count($up) > 0
113                                  and $navig.showtitles != 0">
114                    <xsl:apply-templates select="$up" mode="object.title.markup"/>
115                  </xsl:when>
116                  <xsl:otherwise>&#160;</xsl:otherwise>
117                </xsl:choose>
118              </th>
119              <td width="10%" align="{$direction.align.end}">
120                <xsl:choose>
121                  <xsl:when test="$home != . or $nav.context = 'toc'">
122                    <a accesskey="h">
123                      <xsl:attribute name="href">
124                        <xsl:call-template name="href.target">
125                          <xsl:with-param name="object" select="$home"/>
126                        </xsl:call-template>
127                      </xsl:attribute>
128                    <xsl:attribute name="title">
129                      <xsl:apply-templates select="$home" mode="object.title.markup"/>
130                    </xsl:attribute>
131                      <xsl:call-template name="navig.content">
132                        <xsl:with-param name="direction" select="'home'"/>
133                      </xsl:call-template>
134                    </a>
135                    <xsl:if test="$chunk.tocs.and.lots != 0 and $nav.context != 'toc'">
136                      <xsl:text>&#160;|&#160;</xsl:text>
137                    </xsl:if>
138                  </xsl:when>
139                  <xsl:otherwise>&#160;</xsl:otherwise>
140                </xsl:choose>
141              </td>
142              <td width="10%" align="{$direction.align.end}">
143                <xsl:text>&#160;</xsl:text>
144                <xsl:if test="count($next)>0">
145                  <a accesskey="n">
146                    <xsl:attribute name="href">
147                      <xsl:call-template name="href.target">
148                        <xsl:with-param name="object" select="$next"/>
149                      </xsl:call-template>
150                    </xsl:attribute>
151                    <xsl:attribute name="title">
152                      <xsl:apply-templates select="$next" mode="object.title.markup"/>
153                    </xsl:attribute>
154                    <xsl:call-template name="navig.content">
155                      <xsl:with-param name="direction" select="'next'"/>
156                    </xsl:call-template>
157                  </a>
158                </xsl:if>
159              </td>
160            </tr>
161          </xsl:if>
162        </table>
163      </xsl:if>
164      <xsl:if test="$header.rule != 0">
165        <hr/>
166      </xsl:if>
167    </div>
168  </xsl:if>
169</xsl:template>
170
171
172<!--
173Customization of footer
174- don't hide redundant Up link
175- add tool tips to links
176
177(overrides html/chunk-common.xsl)
178-->
179<xsl:template name="footer.navigation">
180  <xsl:param name="prev" select="/foo"/>
181  <xsl:param name="next" select="/foo"/>
182  <xsl:param name="nav.context"/>
183
184  <xsl:variable name="home" select="/*[1]"/>
185  <xsl:variable name="up" select="parent::*"/>
186
187  <xsl:variable name="row1" select="count($prev) &gt; 0
188                                    or count($up) &gt; 0
189                                    or count($next) &gt; 0"/>
190
191  <xsl:variable name="row2" select="($prev and $navig.showtitles != 0)
192                                    or (generate-id($home) != generate-id(.)
193                                        or $nav.context = 'toc')
194                                    or ($chunk.tocs.and.lots != 0
195                                        and $nav.context != 'toc')
196                                    or ($next and $navig.showtitles != 0)"/>
197
198  <xsl:if test="$suppress.navigation = '0' and $suppress.footer.navigation = '0'">
199    <div class="navfooter">
200      <xsl:if test="$footer.rule != 0">
201        <hr/>
202      </xsl:if>
203
204      <xsl:if test="$row1 or $row2">
205        <table width="100%" summary="Navigation footer">
206          <xsl:if test="$row1">
207            <tr>
208              <td width="40%" align="{$direction.align.start}">
209                <xsl:if test="count($prev)>0">
210                  <a accesskey="p">
211                    <xsl:attribute name="href">
212                      <xsl:call-template name="href.target">
213                        <xsl:with-param name="object" select="$prev"/>
214                      </xsl:call-template>
215                    </xsl:attribute>
216                    <xsl:attribute name="title">
217                      <xsl:apply-templates select="$prev" mode="object.title.markup"/>
218                    </xsl:attribute>
219                    <xsl:call-template name="navig.content">
220                      <xsl:with-param name="direction" select="'prev'"/>
221                    </xsl:call-template>
222                  </a>
223                </xsl:if>
224                <xsl:text>&#160;</xsl:text>
225              </td>
226              <td width="20%" align="center">
227                <xsl:choose>
228                  <xsl:when test="count($up)&gt;0">
229                    <a accesskey="u">
230                      <xsl:attribute name="href">
231                        <xsl:call-template name="href.target">
232                          <xsl:with-param name="object" select="$up"/>
233                        </xsl:call-template>
234                      </xsl:attribute>
235                      <xsl:attribute name="title">
236                        <xsl:apply-templates select="$up" mode="object.title.markup"/>
237                      </xsl:attribute>
238                      <xsl:call-template name="navig.content">
239                        <xsl:with-param name="direction" select="'up'"/>
240                      </xsl:call-template>
241                    </a>
242                  </xsl:when>
243                  <xsl:otherwise>&#160;</xsl:otherwise>
244                </xsl:choose>
245              </td>
246              <td width="40%" align="{$direction.align.end}">
247                <xsl:text>&#160;</xsl:text>
248                <xsl:if test="count($next)>0">
249                  <a accesskey="n">
250                    <xsl:attribute name="href">
251                      <xsl:call-template name="href.target">
252                        <xsl:with-param name="object" select="$next"/>
253                      </xsl:call-template>
254                    </xsl:attribute>
255                    <xsl:attribute name="title">
256                      <xsl:apply-templates select="$next" mode="object.title.markup"/>
257                    </xsl:attribute>
258                    <xsl:call-template name="navig.content">
259                      <xsl:with-param name="direction" select="'next'"/>
260                    </xsl:call-template>
261                  </a>
262                </xsl:if>
263              </td>
264            </tr>
265          </xsl:if>
266
267          <xsl:if test="$row2">
268            <tr>
269              <td width="40%" align="{$direction.align.start}" valign="top">
270                <xsl:if test="$navig.showtitles != 0">
271                  <xsl:apply-templates select="$prev" mode="object.title.markup"/>
272                </xsl:if>
273                <xsl:text>&#160;</xsl:text>
274              </td>
275              <td width="20%" align="center">
276                <xsl:choose>
277                  <xsl:when test="$home != . or $nav.context = 'toc'">
278                    <a accesskey="h">
279                      <xsl:attribute name="href">
280                        <xsl:call-template name="href.target">
281                          <xsl:with-param name="object" select="$home"/>
282                        </xsl:call-template>
283                      </xsl:attribute>
284                      <xsl:attribute name="title">
285                        <xsl:apply-templates select="$home" mode="object.title.markup"/>
286                      </xsl:attribute>
287                      <xsl:call-template name="navig.content">
288                        <xsl:with-param name="direction" select="'home'"/>
289                      </xsl:call-template>
290                    </a>
291                    <xsl:if test="$chunk.tocs.and.lots != 0 and $nav.context != 'toc'">
292                      <xsl:text>&#160;|&#160;</xsl:text>
293                    </xsl:if>
294                  </xsl:when>
295                  <xsl:otherwise>&#160;</xsl:otherwise>
296                </xsl:choose>
297
298                <xsl:if test="$chunk.tocs.and.lots != 0 and $nav.context != 'toc'">
299                  <a accesskey="t">
300                    <xsl:attribute name="href">
301                      <xsl:value-of select="$chunked.filename.prefix"/>
302                      <xsl:apply-templates select="/*[1]"
303                                           mode="recursive-chunk-filename">
304                        <xsl:with-param name="recursive" select="true()"/>
305                      </xsl:apply-templates>
306                      <xsl:text>-toc</xsl:text>
307                      <xsl:value-of select="$html.ext"/>
308                    </xsl:attribute>
309                    <xsl:call-template name="gentext">
310                      <xsl:with-param name="key" select="'nav-toc'"/>
311                    </xsl:call-template>
312                  </a>
313                </xsl:if>
314              </td>
315              <td width="40%" align="{$direction.align.end}" valign="top">
316                <xsl:text>&#160;</xsl:text>
317                <xsl:if test="$navig.showtitles != 0">
318                  <xsl:apply-templates select="$next" mode="object.title.markup"/>
319                </xsl:if>
320              </td>
321            </tr>
322          </xsl:if>
323        </table>
324      </xsl:if>
325    </div>
326  </xsl:if>
327</xsl:template>
328
329</xsl:stylesheet>
330