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) > 0 54 or (count($up) > 0 55 and $navig.showtitles != 0) 56 or count($next) > 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> </xsl:text> 89 </td> 90 <td width="10%" align="{$direction.align.start}"> 91 <xsl:choose> 92 <xsl:when test="count($up)>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> </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> </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> | </xsl:text> 137 </xsl:if> 138 </xsl:when> 139 <xsl:otherwise> </xsl:otherwise> 140 </xsl:choose> 141 </td> 142 <td width="10%" align="{$direction.align.end}"> 143 <xsl:text> </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) > 0 188 or count($up) > 0 189 or count($next) > 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> </xsl:text> 225 </td> 226 <td width="20%" align="center"> 227 <xsl:choose> 228 <xsl:when test="count($up)>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> </xsl:otherwise> 244 </xsl:choose> 245 </td> 246 <td width="40%" align="{$direction.align.end}"> 247 <xsl:text> </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> </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> | </xsl:text> 293 </xsl:if> 294 </xsl:when> 295 <xsl:otherwise> </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> </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