]> granicus.if.org Git - postgresql/blob - doc/src/sgml/stylesheet-man.xsl
Fix initialization of fake LSN for unlogged relations
[postgresql] / doc / src / sgml / stylesheet-man.xsl
1 <?xml version='1.0'?>
2 <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
3                 xmlns:exsl="http://exslt.org/common"
4                 version='1.0'
5                 exclude-result-prefixes="exsl">
6
7 <xsl:import href="http://docbook.sourceforge.net/release/xsl/current/manpages/docbook.xsl"/>
8 <xsl:import href="stylesheet-common.xsl" />
9
10
11 <!-- Parameters -->
12
13 <xsl:param name="man.authors.section.enabled">0</xsl:param>
14 <xsl:param name="man.copyright.section.enabled">0</xsl:param>
15 <xsl:param name="man.endnotes.are.numbered">0</xsl:param> <!-- for performance -->
16 <xsl:param name="man.output.base.dir"></xsl:param>
17 <xsl:param name="man.output.in.separate.dir" select="1"></xsl:param>
18 <xsl:param name="man.output.quietly" select="1"></xsl:param>
19 <xsl:param name="man.th.title.max.length">32</xsl:param> <!-- enough room for "CREATE TEXT SEARCH CONFIGURATION" -->
20 <xsl:param name="man.th.extra3.max.length">40</xsl:param> <!-- enough room for "PostgreSQL X.Ydevel Documentation" -->
21 <xsl:param name="refentry.meta.get.quietly" select="0"></xsl:param>
22 <xsl:param name="refentry.xref.manvolnum" select="1"/> <!-- overridden from stylesheet-common.xsl -->
23
24 <!-- Fixup for apostrophe groff output.  See the following references:
25      <http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=457839>
26      <https://sourceforge.net/tracker/?func=detail&aid=2412738&group_id=21935&atid=373747>
27  -->
28 <xsl:param name="man.string.subst.map.local.post">
29   <substitution oldstring="\'" newstring="\(aq"></substitution>
30 </xsl:param>
31
32
33 <!-- Custom templates -->
34
35 <!-- Improve output of email element.  See also
36      <https://sourceforge.net/tracker/?func=detail&aid=3524417&group_id=21935&atid=373747>
37  -->
38 <xsl:template match="email">
39   <xsl:text>&lt;</xsl:text>
40   <xsl:apply-templates/>
41   <xsl:text>&gt;</xsl:text>
42 </xsl:template>
43
44
45 <!-- Make superscripts visible in man pages (default is no decoration) -->
46 <xsl:template match="superscript">
47   <xsl:text>^</xsl:text>
48   <xsl:apply-templates/>
49 </xsl:template>
50
51
52 <xsl:template match="refentry" mode="xref-to">
53   <xsl:param name="referrer"/>
54   <xsl:param name="xrefstyle"/>
55
56   <xsl:choose>
57     <!-- If the refname contains a space, we construct a reference
58          like CREATE DATABASE (CREATE_DATABASE(7)), so the reader
59          knows both the command name being referred to and the name of
60          the man page to read about it. -->
61     <xsl:when test="contains(refnamediv/refname[1],' ')">
62       <xsl:variable name="mangled.title">
63         <xsl:value-of select="translate(refnamediv/refname[1],' ','_')"/>
64       </xsl:variable>
65       <xsl:apply-templates select="refnamediv/refname[1]"/>
66       <xsl:text> (</xsl:text>
67       <xsl:call-template name="bold">
68         <xsl:with-param name="node" select="exsl:node-set($mangled.title)"/>
69         <xsl:with-param name="context" select="."/>
70       </xsl:call-template>
71       <xsl:apply-templates select="refmeta/manvolnum"/>
72       <xsl:text>)</xsl:text>
73     </xsl:when>
74
75     <!-- This is the original case, except that boldness has been
76          added, per the convention mentioned in man-pages(7). -->
77     <xsl:otherwise>
78       <xsl:choose>
79         <xsl:when test="refmeta/refentrytitle">
80           <xsl:call-template name="bold">
81             <xsl:with-param name="node" select="refmeta/refentrytitle"/>
82             <xsl:with-param name="context" select="."/>
83           </xsl:call-template>
84         </xsl:when>
85         <xsl:otherwise>
86           <xsl:call-template name="bold">
87             <xsl:with-param name="node" select="refnamediv/refname[1]"/>
88             <xsl:with-param name="context" select="."/>
89           </xsl:call-template>
90         </xsl:otherwise>
91       </xsl:choose>
92       <xsl:apply-templates select="refmeta/manvolnum"/>
93     </xsl:otherwise>
94   </xsl:choose>
95
96 </xsl:template>
97
98
99 <!-- For refentries we don't man to generate a man page for, leave out
100      manvolnum, let it default to 0, and skip writing out man files
101      with section 0. -->
102
103 <!-- overridden from common/refentry.xsl -->
104 <xsl:template name="get.refentry.section">
105   <xsl:choose>
106     <xsl:when test="refmeta/manvolnum">
107       <xsl:value-of select="refmeta/manvolnum"/>
108     </xsl:when>
109     <xsl:otherwise>
110       <xsl:text>0</xsl:text>
111     </xsl:otherwise>
112   </xsl:choose>
113 </xsl:template>
114
115 <!-- overridden from manpages/other.xsl -->
116   <xsl:template name="write.man.file">
117     <xsl:param name="name"/>
118     <xsl:param name="section"/>
119     <xsl:param name="lang"/>
120     <xsl:param name="content"/>
121     <xsl:param name="filename">
122       <xsl:call-template name="make.adjusted.man.filename">
123         <xsl:with-param name="name" select="$name"/>
124         <xsl:with-param name="section" select="$section"/>
125         <xsl:with-param name="lang" select="$lang"/>
126       </xsl:call-template>
127     </xsl:param>
128     <xsl:if test="$section != 0">
129     <xsl:call-template name="write.text.chunk">
130       <xsl:with-param name="filename" select="$filename"/>
131       <xsl:with-param name="suppress-context-node-name" select="1"/>
132       <xsl:with-param name="quiet" select="$man.output.quietly"/>
133       <xsl:with-param
134           name="message-prolog"
135           >Note: </xsl:with-param>
136       <xsl:with-param name="encoding" select="$man.output.encoding"/>
137       <xsl:with-param name="content" select="$content"/>
138     </xsl:call-template>
139     </xsl:if>
140   </xsl:template>
141
142
143 <!-- Overridden template as workaround for this problem:
144      <https://sourceforge.net/tracker/?func=detail&aid=2831602&group_id=21935&atid=373747>
145 -->
146   <xsl:template name="write.stubs">
147     <xsl:param name="first.refname"/>
148     <xsl:param name="section"/>
149     <xsl:param name="lang"/>
150     <xsl:for-each select="refnamediv/refname">
151       <xsl:if test=". != $first.refname">
152         <xsl:call-template name="write.text.chunk">
153           <xsl:with-param name="filename">
154             <xsl:call-template name="make.adjusted.man.filename">
155               <xsl:with-param name="name" select="."/>
156               <xsl:with-param name="section" select="$section"/>
157               <xsl:with-param name="lang" select="$lang"/>
158             </xsl:call-template>
159           </xsl:with-param>
160           <xsl:with-param name="quiet" select="$man.output.quietly"/>
161           <xsl:with-param name="suppress-context-node-name" select="1"/>
162           <xsl:with-param name="message-prolog">Note: </xsl:with-param>
163           <xsl:with-param name="message-epilog"> (soelim stub)</xsl:with-param>
164           <xsl:with-param name="content">
165             <xsl:choose>
166               <xsl:when test="$man.output.in.separate.dir = 0">
167                 <xsl:value-of select="concat('.so man', $section, '/')"/>
168               </xsl:when>
169               <xsl:otherwise>
170                 <xsl:value-of select="'.so '"/> <!-- added case -->
171               </xsl:otherwise>
172             </xsl:choose>
173             <xsl:call-template name="make.adjusted.man.filename">
174               <xsl:with-param name="name" select="$first.refname"/>
175               <xsl:with-param name="section" select="$section"/>
176             </xsl:call-template>
177             <xsl:text>&#10;</xsl:text>
178           </xsl:with-param>
179         </xsl:call-template>
180       </xsl:if>
181     </xsl:for-each>
182   </xsl:template>
183
184
185   <!-- https://sourceforge.net/tracker/?func=detail&aid=3545150&group_id=21935&atid=373747 -->
186   <xsl:template match="step/title">
187     <xsl:apply-templates/>
188     <xsl:text>: </xsl:text>
189   </xsl:template>
190
191
192   <!-- http://sourceforge.net/p/docbook/bugs/1340/ -->
193   <xsl:template match="indexterm"/>
194
195
196 <!-- https://github.com/docbook/xslt10-stylesheets/issues/59 -->
197 <xsl:template match="a/sup">
198   <xsl:apply-templates/>
199 </xsl:template>
200
201
202 <!-- Gentext customization -->
203
204 <!-- see http://www.sagehill.net/docbookxsl/CustomGentext.html -->
205 <xsl:param name="local.l10n.xml" select="document('')"/>
206 <l:i18n xmlns:l="http://docbook.sourceforge.net/xmlns/l10n/1.0">
207   <l:l10n language="en">
208     <!-- Use ISO 8601 date format. -->
209     <l:context name="datetime">
210       <l:template name="format" text="Y-m-d"/>
211     </l:context>
212
213     <!-- Slight rephrasing to indicate that missing sections are found
214          in the documentation. -->
215     <l:context name="xref-number-and-title">
216       <l:template name="chapter" text="Chapter %n, %t, in the documentation"/>
217       <l:template name="sect1" text="Section %n, “%t”, in the documentation"/>
218       <l:template name="sect2" text="Section %n, “%t”, in the documentation"/>
219       <l:template name="sect3" text="Section %n, “%t”, in the documentation"/>
220       <l:template name="sect4" text="Section %n, “%t”, in the documentation"/>
221       <l:template name="sect5" text="Section %n, “%t”, in the documentation"/>
222     </l:context>
223   </l:l10n>
224 </l:i18n>
225
226 </xsl:stylesheet>