2004-01-13 19:45:19 +01:00
|
|
|
<?xml version='1.0'?>
|
2016-11-03 17:00:00 +01:00
|
|
|
<!DOCTYPE xsl:stylesheet [
|
|
|
|
<!ENTITY % common.entities SYSTEM "http://docbook.sourceforge.net/release/xsl/current/common/entities.ent">
|
|
|
|
%common.entities;
|
|
|
|
]>
|
2004-01-13 19:45:19 +01:00
|
|
|
<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">
|
|
|
|
|
2004-01-16 00:51:32 +01:00
|
|
|
<xsl:import href="http://docbook.sourceforge.net/release/xsl/current/xhtml/chunk.xsl"/>
|
2006-12-10 17:01:06 +01:00
|
|
|
<xsl:include href="stylesheet-common.xsl" />
|
2016-08-18 18:00:00 +02:00
|
|
|
<xsl:include href="stylesheet-speedup-xhtml.xsl" />
|
2004-01-13 19:45:19 +01:00
|
|
|
|
2004-01-16 00:51:32 +01:00
|
|
|
|
2006-12-10 17:01:06 +01:00
|
|
|
<!-- Parameters -->
|
2012-11-09 05:55:36 +01:00
|
|
|
<xsl:param name="base.dir" select="'html/'"></xsl:param>
|
2004-01-13 19:45:19 +01:00
|
|
|
<xsl:param name="use.id.as.filename" select="'1'"></xsl:param>
|
|
|
|
<xsl:param name="make.valid.html" select="1"></xsl:param>
|
2004-01-16 00:51:32 +01:00
|
|
|
<xsl:param name="generate.id.attributes" select="1"></xsl:param>
|
2004-01-13 19:45:19 +01:00
|
|
|
<xsl:param name="generate.legalnotice.link" select="1"></xsl:param>
|
|
|
|
<xsl:param name="link.mailto.url">pgsql-docs@postgresql.org</xsl:param>
|
2013-11-28 04:22:40 +01:00
|
|
|
<xsl:param name="chunk.first.sections" select="1"/>
|
2004-01-16 00:51:32 +01:00
|
|
|
<xsl:param name="chunk.quietly" select="1"></xsl:param>
|
2013-10-18 04:00:27 +02:00
|
|
|
<xsl:param name="toc.max.depth">2</xsl:param>
|
2004-01-16 00:51:32 +01:00
|
|
|
|
2013-11-29 04:45:08 +01:00
|
|
|
<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>http://www.postgresql.org/media/css/docs.css</xsl:otherwise>
|
|
|
|
</xsl:choose>
|
|
|
|
</xsl:param>
|
|
|
|
|
2004-01-13 19:45:19 +01:00
|
|
|
|
2012-04-30 20:12:28 +02:00
|
|
|
<!-- Change display of some elements -->
|
|
|
|
|
|
|
|
<xsl:template match="command">
|
|
|
|
<xsl:call-template name="inline.monoseq"/>
|
|
|
|
</xsl:template>
|
|
|
|
|
2013-10-18 04:00:27 +02:00
|
|
|
|
|
|
|
<!-- table of contents configuration -->
|
|
|
|
|
|
|
|
<xsl:param name="generate.toc">
|
|
|
|
appendix toc,title
|
|
|
|
article/appendix nop
|
|
|
|
article toc,title
|
|
|
|
book toc,title
|
|
|
|
chapter toc,title
|
|
|
|
part toc,title
|
|
|
|
preface toc,title
|
|
|
|
qandadiv toc
|
|
|
|
qandaset toc
|
|
|
|
reference toc,title
|
|
|
|
sect1 toc
|
|
|
|
sect2 toc
|
|
|
|
sect3 toc
|
|
|
|
sect4 toc
|
|
|
|
sect5 toc
|
|
|
|
section toc
|
|
|
|
set toc,title
|
|
|
|
</xsl:param>
|
|
|
|
|
2017-03-15 04:12:18 +01:00
|
|
|
<xsl:param name="generate.section.toc.level" select="1"></xsl:param>
|
|
|
|
|
|
|
|
<!-- include refentry under sect1 in tocs -->
|
|
|
|
<xsl:template match="sect1" mode="toc">
|
|
|
|
<xsl:param name="toc-context" select="."/>
|
|
|
|
<xsl:call-template name="subtoc">
|
|
|
|
<xsl:with-param name="toc-context" select="$toc-context"/>
|
|
|
|
<xsl:with-param name="nodes" select="sect2|refentry
|
|
|
|
|bridgehead[$bridgehead.in.toc != 0]"/>
|
|
|
|
</xsl:call-template>
|
|
|
|
</xsl:template>
|
|
|
|
|
2016-11-03 17:00:00 +01:00
|
|
|
|
|
|
|
<!-- Put index "quicklinks" (A | B | C | ...) at the top of the bookindex page. -->
|
|
|
|
|
|
|
|
<!-- from html/autoidx.xsl -->
|
|
|
|
|
|
|
|
<xsl:template name="generate-basic-index">
|
|
|
|
<xsl:param name="scope" select="NOTANODE"/>
|
|
|
|
|
|
|
|
<xsl:variable name="role">
|
|
|
|
<xsl:if test="$index.on.role != 0">
|
|
|
|
<xsl:value-of select="@role"/>
|
|
|
|
</xsl:if>
|
|
|
|
</xsl:variable>
|
|
|
|
|
|
|
|
<xsl:variable name="type">
|
|
|
|
<xsl:if test="$index.on.type != 0">
|
|
|
|
<xsl:value-of select="@type"/>
|
|
|
|
</xsl:if>
|
|
|
|
</xsl:variable>
|
|
|
|
|
|
|
|
<xsl:variable name="terms"
|
|
|
|
select="//indexterm
|
|
|
|
[count(.|key('letter',
|
|
|
|
translate(substring(&primary;, 1, 1),
|
|
|
|
&lowercase;,
|
|
|
|
&uppercase;))
|
|
|
|
[&scope;][1]) = 1
|
|
|
|
and not(@class = 'endofrange')]"/>
|
|
|
|
|
|
|
|
<xsl:variable name="alphabetical"
|
|
|
|
select="$terms[contains(concat(&lowercase;, &uppercase;),
|
|
|
|
substring(&primary;, 1, 1))]"/>
|
|
|
|
|
|
|
|
<xsl:variable name="others" select="$terms[not(contains(concat(&lowercase;,
|
|
|
|
&uppercase;),
|
|
|
|
substring(&primary;, 1, 1)))]"/>
|
|
|
|
|
|
|
|
<div class="index">
|
|
|
|
<!-- pgsql-docs: begin added stuff -->
|
|
|
|
<p class="indexdiv-quicklinks">
|
|
|
|
<a href="#indexdiv-Symbols">
|
|
|
|
<xsl:call-template name="gentext">
|
|
|
|
<xsl:with-param name="key" select="'index symbols'"/>
|
|
|
|
</xsl:call-template>
|
|
|
|
</a>
|
|
|
|
<xsl:apply-templates select="$alphabetical[count(.|key('letter',
|
|
|
|
translate(substring(&primary;, 1, 1),
|
|
|
|
&lowercase;,&uppercase;))[&scope;][1]) = 1]"
|
|
|
|
mode="index-div-quicklinks">
|
|
|
|
<xsl:with-param name="position" select="position()"/>
|
|
|
|
<xsl:with-param name="scope" select="$scope"/>
|
|
|
|
<xsl:with-param name="role" select="$role"/>
|
|
|
|
<xsl:with-param name="type" select="$type"/>
|
|
|
|
<xsl:sort select="translate(&primary;, &lowercase;, &uppercase;)"/>
|
|
|
|
</xsl:apply-templates>
|
|
|
|
</p>
|
|
|
|
<!-- pgsql-docs: end added stuff -->
|
|
|
|
|
|
|
|
<xsl:if test="$others">
|
|
|
|
<xsl:choose>
|
|
|
|
<xsl:when test="normalize-space($type) != '' and
|
|
|
|
$others[@type = $type][count(.|key('primary', &primary;)[&scope;][1]) = 1]">
|
|
|
|
<!-- pgsql-docs: added id attribute here for linking to it -->
|
|
|
|
<div class="indexdiv" id="indexdiv-Symbols">
|
|
|
|
<h3>
|
|
|
|
<xsl:call-template name="gentext">
|
|
|
|
<xsl:with-param name="key" select="'index symbols'"/>
|
|
|
|
</xsl:call-template>
|
|
|
|
</h3>
|
|
|
|
<dl>
|
|
|
|
<xsl:apply-templates select="$others[count(.|key('primary', &primary;)[&scope;][1]) = 1]"
|
|
|
|
mode="index-symbol-div">
|
|
|
|
<xsl:with-param name="position" select="position()"/>
|
|
|
|
<xsl:with-param name="scope" select="$scope"/>
|
|
|
|
<xsl:with-param name="role" select="$role"/>
|
|
|
|
<xsl:with-param name="type" select="$type"/>
|
|
|
|
<xsl:sort select="translate(&primary;, &lowercase;, &uppercase;)"/>
|
|
|
|
</xsl:apply-templates>
|
|
|
|
</dl>
|
|
|
|
</div>
|
|
|
|
</xsl:when>
|
|
|
|
<xsl:when test="normalize-space($type) != ''">
|
|
|
|
<!-- Output nothing, as there isn't a match for $other using this $type -->
|
|
|
|
</xsl:when>
|
|
|
|
<xsl:otherwise>
|
|
|
|
<!-- pgsql-docs: added id attribute here for linking to it -->
|
|
|
|
<div class="indexdiv" id="indexdiv-Symbols">
|
|
|
|
<h3>
|
|
|
|
<xsl:call-template name="gentext">
|
|
|
|
<xsl:with-param name="key" select="'index symbols'"/>
|
|
|
|
</xsl:call-template>
|
|
|
|
</h3>
|
|
|
|
<dl>
|
|
|
|
<xsl:apply-templates select="$others[count(.|key('primary',
|
|
|
|
&primary;)[&scope;][1]) = 1]"
|
|
|
|
mode="index-symbol-div">
|
|
|
|
<xsl:with-param name="position" select="position()"/>
|
|
|
|
<xsl:with-param name="scope" select="$scope"/>
|
|
|
|
<xsl:with-param name="role" select="$role"/>
|
|
|
|
<xsl:with-param name="type" select="$type"/>
|
|
|
|
<xsl:sort select="translate(&primary;, &lowercase;, &uppercase;)"/>
|
|
|
|
</xsl:apply-templates>
|
|
|
|
</dl>
|
|
|
|
</div>
|
|
|
|
</xsl:otherwise>
|
|
|
|
</xsl:choose>
|
|
|
|
</xsl:if>
|
|
|
|
|
|
|
|
<xsl:apply-templates select="$alphabetical[count(.|key('letter',
|
|
|
|
translate(substring(&primary;, 1, 1),
|
|
|
|
&lowercase;,&uppercase;))[&scope;][1]) = 1]"
|
|
|
|
mode="index-div-basic">
|
|
|
|
<xsl:with-param name="position" select="position()"/>
|
|
|
|
<xsl:with-param name="scope" select="$scope"/>
|
|
|
|
<xsl:with-param name="role" select="$role"/>
|
|
|
|
<xsl:with-param name="type" select="$type"/>
|
|
|
|
<xsl:sort select="translate(&primary;, &lowercase;, &uppercase;)"/>
|
|
|
|
</xsl:apply-templates>
|
|
|
|
</div>
|
|
|
|
</xsl:template>
|
|
|
|
|
|
|
|
<xsl:template match="indexterm" mode="index-div-basic">
|
|
|
|
<xsl:param name="scope" select="."/>
|
|
|
|
<xsl:param name="role" select="''"/>
|
|
|
|
<xsl:param name="type" select="''"/>
|
|
|
|
|
|
|
|
<xsl:variable name="key"
|
|
|
|
select="translate(substring(&primary;, 1, 1),
|
|
|
|
&lowercase;,&uppercase;)"/>
|
|
|
|
|
|
|
|
<xsl:if test="key('letter', $key)[&scope;]
|
|
|
|
[count(.|key('primary', &primary;)[&scope;][1]) = 1]">
|
|
|
|
<div class="indexdiv">
|
|
|
|
<!-- pgsql-docs: added id attribute here for linking to it -->
|
|
|
|
<xsl:attribute name="id">
|
|
|
|
<xsl:value-of select="concat('indexdiv-', $key)"/>
|
|
|
|
</xsl:attribute>
|
|
|
|
|
|
|
|
<xsl:if test="contains(concat(&lowercase;, &uppercase;), $key)">
|
|
|
|
<h3>
|
|
|
|
<xsl:value-of select="translate($key, &lowercase;, &uppercase;)"/>
|
|
|
|
</h3>
|
|
|
|
</xsl:if>
|
|
|
|
<dl>
|
|
|
|
<xsl:apply-templates select="key('letter', $key)[&scope;]
|
|
|
|
[count(.|key('primary', &primary;)
|
|
|
|
[&scope;][1])=1]"
|
|
|
|
mode="index-primary">
|
|
|
|
<xsl:with-param name="position" select="position()"/>
|
|
|
|
<xsl:with-param name="scope" select="$scope"/>
|
|
|
|
<xsl:with-param name="role" select="$role"/>
|
|
|
|
<xsl:with-param name="type" select="$type"/>
|
|
|
|
<xsl:sort select="translate(&primary;, &lowercase;, &uppercase;)"/>
|
|
|
|
</xsl:apply-templates>
|
|
|
|
</dl>
|
|
|
|
</div>
|
|
|
|
</xsl:if>
|
|
|
|
</xsl:template>
|
|
|
|
|
|
|
|
<!-- pgsql-docs -->
|
|
|
|
<xsl:template match="indexterm" mode="index-div-quicklinks">
|
|
|
|
<xsl:param name="scope" select="."/>
|
|
|
|
<xsl:param name="role" select="''"/>
|
|
|
|
<xsl:param name="type" select="''"/>
|
|
|
|
|
|
|
|
<xsl:variable name="key"
|
|
|
|
select="translate(substring(&primary;, 1, 1),
|
|
|
|
&lowercase;,&uppercase;)"/>
|
|
|
|
|
|
|
|
<xsl:if test="key('letter', $key)[&scope;]
|
|
|
|
[count(.|key('primary', &primary;)[&scope;][1]) = 1]">
|
|
|
|
<xsl:if test="contains(concat(&lowercase;, &uppercase;), $key)">
|
|
|
|
|
|
|
|
|
<a>
|
|
|
|
<xsl:attribute name="href">
|
|
|
|
<xsl:value-of select="concat('#indexdiv-', $key)"/>
|
|
|
|
</xsl:attribute>
|
|
|
|
<xsl:value-of select="translate($key, &lowercase;, &uppercase;)"/>
|
|
|
|
</a>
|
|
|
|
</xsl:if>
|
|
|
|
</xsl:if>
|
|
|
|
</xsl:template>
|
|
|
|
|
2016-11-04 17:00:00 +01:00
|
|
|
|
|
|
|
<!--
|
|
|
|
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 generate-id($up) != generate-id($home)
|
|
|
|
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
|
|
|
|
and generate-id($up) != generate-id($home)">
|
|
|
|
<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 generate-id($up) != generate-id($home)
|
|
|
|
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>
|
|
|
|
|
2004-01-13 19:45:19 +01:00
|
|
|
</xsl:stylesheet>
|