| <?xml version='1.0'?> |
| <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" |
| version='1.0' |
| xmlns="http://www.w3.org/TR/xhtml1/transitional" |
| exclude-result-prefixes="#default"> |
| |
| <xsl:import href="http://docbook.sourceforge.net/release/xsl/current/xhtml/chunk.xsl"/> |
| <xsl:include href="stylesheet-common.xsl" /> |
| <xsl:include href="stylesheet-html-common.xsl" /> |
| <xsl:include href="stylesheet-speedup-xhtml.xsl" /> |
| |
| |
| <!-- Parameters --> |
| <xsl:param name="base.dir" select="'html/'"></xsl:param> |
| <xsl:param name="use.id.as.filename" select="'1'"></xsl:param> |
| <xsl:param name="generate.legalnotice.link" select="1"></xsl:param> |
| <xsl:param name="chunk.first.sections" select="1"/> |
| <xsl:param name="chunk.quietly" select="1"></xsl:param> |
| <xsl:param name="admon.style"></xsl:param> <!-- handled by CSS stylesheet --> |
| |
| <xsl:param name="website.stylesheet" select="0"/> |
| |
| <xsl:param name="html.stylesheet"> |
| <xsl:choose> |
| <xsl:when test="$website.stylesheet = 0">stylesheet.css</xsl:when> |
| <xsl:otherwise> |
| https://www.postgresql.org/media/css/docs-complete.css |
| </xsl:otherwise> |
| </xsl:choose> |
| </xsl:param> |
| |
| |
| <!-- strip directory name from image filerefs --> |
| <xsl:template match="imagedata/@fileref"> |
| <xsl:value-of select="substring-after(., '/')"/> |
| </xsl:template> |
| |
| |
| <!-- |
| Customization of header |
| - add Up and Home links |
| - add tool tips to links |
| |
| (overrides html/chunk-common.xsl) |
| --> |
| <xsl:template name="header.navigation"> |
| <xsl:param name="prev" select="/foo"/> |
| <xsl:param name="next" select="/foo"/> |
| <xsl:param name="nav.context"/> |
| |
| <xsl:variable name="home" select="/*[1]"/> |
| <xsl:variable name="up" select="parent::*"/> |
| |
| <xsl:variable name="row1" select="$navig.showtitles != 0"/> |
| <xsl:variable name="row2" select="count($prev) > 0 |
| or (count($up) > 0 |
| and $navig.showtitles != 0) |
| or count($next) > 0"/> |
| |
| <xsl:if test="$suppress.navigation = '0' and $suppress.header.navigation = '0'"> |
| <div class="navheader"> |
| <xsl:if test="$row1 or $row2"> |
| <table width="100%" summary="Navigation header"> |
| <xsl:if test="$row1"> |
| <tr> |
| <th colspan="5" align="center"> |
| <xsl:apply-templates select="." mode="object.title.markup"/> |
| </th> |
| </tr> |
| </xsl:if> |
| |
| <xsl:if test="$row2"> |
| <tr> |
| <td width="10%" align="{$direction.align.start}"> |
| <xsl:if test="count($prev)>0"> |
| <a accesskey="p"> |
| <xsl:attribute name="href"> |
| <xsl:call-template name="href.target"> |
| <xsl:with-param name="object" select="$prev"/> |
| </xsl:call-template> |
| </xsl:attribute> |
| <xsl:attribute name="title"> |
| <xsl:apply-templates select="$prev" mode="object.title.markup"/> |
| </xsl:attribute> |
| <xsl:call-template name="navig.content"> |
| <xsl:with-param name="direction" select="'prev'"/> |
| </xsl:call-template> |
| </a> |
| </xsl:if> |
| <xsl:text> </xsl:text> |
| </td> |
| <td width="10%" align="{$direction.align.start}"> |
| <xsl:choose> |
| <xsl:when test="count($up)>0"> |
| <a accesskey="u"> |
| <xsl:attribute name="href"> |
| <xsl:call-template name="href.target"> |
| <xsl:with-param name="object" select="$up"/> |
| </xsl:call-template> |
| </xsl:attribute> |
| <xsl:attribute name="title"> |
| <xsl:apply-templates select="$up" mode="object.title.markup"/> |
| </xsl:attribute> |
| <xsl:call-template name="navig.content"> |
| <xsl:with-param name="direction" select="'up'"/> |
| </xsl:call-template> |
| </a> |
| </xsl:when> |
| <xsl:otherwise> </xsl:otherwise> |
| </xsl:choose> |
| </td> |
| <th width="60%" align="center"> |
| <xsl:choose> |
| <xsl:when test="count($up) > 0 |
| and $navig.showtitles != 0"> |
| <xsl:apply-templates select="$up" mode="object.title.markup"/> |
| </xsl:when> |
| <xsl:otherwise> </xsl:otherwise> |
| </xsl:choose> |
| </th> |
| <td width="10%" align="{$direction.align.end}"> |
| <xsl:choose> |
| <xsl:when test="$home != . or $nav.context = 'toc'"> |
| <a accesskey="h"> |
| <xsl:attribute name="href"> |
| <xsl:call-template name="href.target"> |
| <xsl:with-param name="object" select="$home"/> |
| </xsl:call-template> |
| </xsl:attribute> |
| <xsl:attribute name="title"> |
| <xsl:apply-templates select="$home" mode="object.title.markup"/> |
| </xsl:attribute> |
| <xsl:call-template name="navig.content"> |
| <xsl:with-param name="direction" select="'home'"/> |
| </xsl:call-template> |
| </a> |
| <xsl:if test="$chunk.tocs.and.lots != 0 and $nav.context != 'toc'"> |
| <xsl:text> | </xsl:text> |
| </xsl:if> |
| </xsl:when> |
| <xsl:otherwise> </xsl:otherwise> |
| </xsl:choose> |
| </td> |
| <td width="10%" align="{$direction.align.end}"> |
| <xsl:text> </xsl:text> |
| <xsl:if test="count($next)>0"> |
| <a accesskey="n"> |
| <xsl:attribute name="href"> |
| <xsl:call-template name="href.target"> |
| <xsl:with-param name="object" select="$next"/> |
| </xsl:call-template> |
| </xsl:attribute> |
| <xsl:attribute name="title"> |
| <xsl:apply-templates select="$next" mode="object.title.markup"/> |
| </xsl:attribute> |
| <xsl:call-template name="navig.content"> |
| <xsl:with-param name="direction" select="'next'"/> |
| </xsl:call-template> |
| </a> |
| </xsl:if> |
| </td> |
| </tr> |
| </xsl:if> |
| </table> |
| </xsl:if> |
| <xsl:if test="$header.rule != 0"> |
| <hr/> |
| </xsl:if> |
| </div> |
| </xsl:if> |
| </xsl:template> |
| |
| |
| <!-- |
| Customization of footer |
| - don't hide redundant Up link |
| - add tool tips to links |
| |
| (overrides html/chunk-common.xsl) |
| --> |
| <xsl:template name="footer.navigation"> |
| <xsl:param name="prev" select="/foo"/> |
| <xsl:param name="next" select="/foo"/> |
| <xsl:param name="nav.context"/> |
| |
| <xsl:variable name="home" select="/*[1]"/> |
| <xsl:variable name="up" select="parent::*"/> |
| |
| <xsl:variable name="row1" select="count($prev) > 0 |
| or count($up) > 0 |
| or count($next) > 0"/> |
| |
| <xsl:variable name="row2" select="($prev and $navig.showtitles != 0) |
| or (generate-id($home) != generate-id(.) |
| or $nav.context = 'toc') |
| or ($chunk.tocs.and.lots != 0 |
| and $nav.context != 'toc') |
| or ($next and $navig.showtitles != 0)"/> |
| |
| <xsl:if test="$suppress.navigation = '0' and $suppress.footer.navigation = '0'"> |
| <div class="navfooter"> |
| <xsl:if test="$footer.rule != 0"> |
| <hr/> |
| </xsl:if> |
| |
| <xsl:if test="$row1 or $row2"> |
| <table width="100%" summary="Navigation footer"> |
| <xsl:if test="$row1"> |
| <tr> |
| <td width="40%" align="{$direction.align.start}"> |
| <xsl:if test="count($prev)>0"> |
| <a accesskey="p"> |
| <xsl:attribute name="href"> |
| <xsl:call-template name="href.target"> |
| <xsl:with-param name="object" select="$prev"/> |
| </xsl:call-template> |
| </xsl:attribute> |
| <xsl:attribute name="title"> |
| <xsl:apply-templates select="$prev" mode="object.title.markup"/> |
| </xsl:attribute> |
| <xsl:call-template name="navig.content"> |
| <xsl:with-param name="direction" select="'prev'"/> |
| </xsl:call-template> |
| </a> |
| </xsl:if> |
| <xsl:text> </xsl:text> |
| </td> |
| <td width="20%" align="center"> |
| <xsl:choose> |
| <xsl:when test="count($up)>0"> |
| <a accesskey="u"> |
| <xsl:attribute name="href"> |
| <xsl:call-template name="href.target"> |
| <xsl:with-param name="object" select="$up"/> |
| </xsl:call-template> |
| </xsl:attribute> |
| <xsl:attribute name="title"> |
| <xsl:apply-templates select="$up" mode="object.title.markup"/> |
| </xsl:attribute> |
| <xsl:call-template name="navig.content"> |
| <xsl:with-param name="direction" select="'up'"/> |
| </xsl:call-template> |
| </a> |
| </xsl:when> |
| <xsl:otherwise> </xsl:otherwise> |
| </xsl:choose> |
| </td> |
| <td width="40%" align="{$direction.align.end}"> |
| <xsl:text> </xsl:text> |
| <xsl:if test="count($next)>0"> |
| <a accesskey="n"> |
| <xsl:attribute name="href"> |
| <xsl:call-template name="href.target"> |
| <xsl:with-param name="object" select="$next"/> |
| </xsl:call-template> |
| </xsl:attribute> |
| <xsl:attribute name="title"> |
| <xsl:apply-templates select="$next" mode="object.title.markup"/> |
| </xsl:attribute> |
| <xsl:call-template name="navig.content"> |
| <xsl:with-param name="direction" select="'next'"/> |
| </xsl:call-template> |
| </a> |
| </xsl:if> |
| </td> |
| </tr> |
| </xsl:if> |
| |
| <xsl:if test="$row2"> |
| <tr> |
| <td width="40%" align="{$direction.align.start}" valign="top"> |
| <xsl:if test="$navig.showtitles != 0"> |
| <xsl:apply-templates select="$prev" mode="object.title.markup"/> |
| </xsl:if> |
| <xsl:text> </xsl:text> |
| </td> |
| <td width="20%" align="center"> |
| <xsl:choose> |
| <xsl:when test="$home != . or $nav.context = 'toc'"> |
| <a accesskey="h"> |
| <xsl:attribute name="href"> |
| <xsl:call-template name="href.target"> |
| <xsl:with-param name="object" select="$home"/> |
| </xsl:call-template> |
| </xsl:attribute> |
| <xsl:attribute name="title"> |
| <xsl:apply-templates select="$home" mode="object.title.markup"/> |
| </xsl:attribute> |
| <xsl:call-template name="navig.content"> |
| <xsl:with-param name="direction" select="'home'"/> |
| </xsl:call-template> |
| </a> |
| <xsl:if test="$chunk.tocs.and.lots != 0 and $nav.context != 'toc'"> |
| <xsl:text> | </xsl:text> |
| </xsl:if> |
| </xsl:when> |
| <xsl:otherwise> </xsl:otherwise> |
| </xsl:choose> |
| |
| <xsl:if test="$chunk.tocs.and.lots != 0 and $nav.context != 'toc'"> |
| <a accesskey="t"> |
| <xsl:attribute name="href"> |
| <xsl:value-of select="$chunked.filename.prefix"/> |
| <xsl:apply-templates select="/*[1]" |
| mode="recursive-chunk-filename"> |
| <xsl:with-param name="recursive" select="true()"/> |
| </xsl:apply-templates> |
| <xsl:text>-toc</xsl:text> |
| <xsl:value-of select="$html.ext"/> |
| </xsl:attribute> |
| <xsl:call-template name="gentext"> |
| <xsl:with-param name="key" select="'nav-toc'"/> |
| </xsl:call-template> |
| </a> |
| </xsl:if> |
| </td> |
| <td width="40%" align="{$direction.align.end}" valign="top"> |
| <xsl:text> </xsl:text> |
| <xsl:if test="$navig.showtitles != 0"> |
| <xsl:apply-templates select="$next" mode="object.title.markup"/> |
| </xsl:if> |
| </td> |
| </tr> |
| </xsl:if> |
| </table> |
| </xsl:if> |
| </div> |
| </xsl:if> |
| </xsl:template> |
| |
| </xsl:stylesheet> |