OLD | NEW |
| (Empty) |
1 <?xml version='1.0'?> | |
2 <xsl:stylesheet | |
3 xmlns:xsl="http://www.w3.org/1999/XSL/Transform" | |
4 xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" | |
5 xmlns:date="http://exslt.org/dates-and-times" | |
6 xmlns:exsl="http://exslt.org/common" | |
7 xmlns:xlink="http://www.w3.org/1999/xlink" | |
8 exclude-result-prefixes="doc date exsl" | |
9 extension-element-prefixes="date exsl" | |
10 version='1.0'> | |
11 | |
12 <!-- ******************************************************************** | |
13 $Id: pi.xsl 8782 2010-07-27 21:15:17Z mzjn $ | |
14 ******************************************************************** | |
15 | |
16 This file is part of the XSL DocBook Stylesheet distribution. | |
17 See ../README or http://docbook.sf.net/release/xsl/current/ for | |
18 copyright and other information. | |
19 | |
20 ******************************************************************** --> | |
21 | |
22 <doc:reference xmlns=""><info><title>Common Processing Instruction Reference</ti
tle> | |
23 <releaseinfo role="meta"> | |
24 $Id: pi.xsl 8782 2010-07-27 21:15:17Z mzjn $ | |
25 </releaseinfo> | |
26 </info> | |
27 <partintro id="partintro"> | |
28 <title>Introduction</title> | |
29 <para>This is generated reference documentation for all | |
30 user-specifiable processing instructions (PIs) in the | |
31 “common” part of the DocBook XSL stylesheets. | |
32 <note> | |
33 <para>You add these PIs at particular points in a document to | |
34 cause specific “exceptions” to formatting/output behavior. To | |
35 make global changes in formatting/output behavior across an | |
36 entire document, it’s better to do it by setting an | |
37 appropriate stylesheet parameter (if there is one).</para> | |
38 </note> | |
39 </para> | |
40 </partintro> | |
41 </doc:reference> | |
42 | |
43 <!-- ==================================================================== --> | |
44 <doc:pi name="dbchoice_choice" xmlns=""> | |
45 <refpurpose>Generates a localized choice separator</refpurpose> | |
46 <refdescription id="select.choice.separator-desc"> | |
47 <para>Use the <tag class="xmlpi">dbchoice choice</tag> PI to | |
48 generate an appropriate localized “choice” separator (for | |
49 example, <literal>and</literal> or <literal>or</literal>) | |
50 before the final item in an inline <tag>simplelist</tag></para> | |
51 <warning> | |
52 <para>This PI is a less-than-ideal hack; support for it may | |
53 disappear in the future (particularly if and when a more | |
54 appropriate means for marking up "choice" lists becomes | |
55 available in DocBook).</para> | |
56 </warning> | |
57 </refdescription> | |
58 <refsynopsisdiv> | |
59 <synopsis><tag class="xmlpi">dbchoice choice="and"|"or"|<replaceable>string<
/replaceable>"</tag></synopsis> | |
60 </refsynopsisdiv> | |
61 <refparameter> | |
62 <variablelist> | |
63 <varlistentry><term>choice="and"</term> | |
64 <listitem> | |
65 <para>generates a localized <literal>and</literal> separator</para> | |
66 </listitem> | |
67 </varlistentry> | |
68 <varlistentry><term>choice="or"</term> | |
69 <listitem> | |
70 <para>generates a localized <literal>or</literal> separator</para> | |
71 </listitem> | |
72 </varlistentry> | |
73 <varlistentry><term>choice="<replaceable>string</replaceable>"</term> | |
74 <listitem> | |
75 <para>generates a literal <replaceable>string</replaceable> separator<
/para> | |
76 </listitem> | |
77 </varlistentry> | |
78 </variablelist> | |
79 </refparameter> | |
80 </doc:pi> | |
81 <xsl:template name="pi.dbchoice_choice"> | |
82 <xsl:param name="node" select="."/> | |
83 <xsl:call-template name="pi-attribute"> | |
84 <xsl:with-param name="pis" select="$node/processing-instruction('dbchoice')"
/> | |
85 <xsl:with-param name="attribute">choice</xsl:with-param> | |
86 </xsl:call-template> | |
87 </xsl:template> | |
88 | |
89 <doc:pi name="dbtimestamp" xmlns=""> | |
90 <refpurpose>Inserts a date timestamp</refpurpose> | |
91 <refdescription> | |
92 <para>Use the <tag class="xmlpi">dbtimestamp</tag> PI at any point in a | |
93 source document to cause a date timestamp (a formatted | |
94 string representing the current date and time) to be | |
95 inserted in output of the document.</para> | |
96 </refdescription> | |
97 <refsynopsisdiv> | |
98 <synopsis><tag class="xmlpi">dbtimestamp format="<replaceable>formatstring</
replaceable>" [padding="0"|"1"]</tag></synopsis> | |
99 </refsynopsisdiv> | |
100 <refparameter> | |
101 <variablelist> | |
102 <varlistentry><term>format="<replaceable>formatstring</replaceable>"</term
> | |
103 <listitem> | |
104 <para>Specifies format in which the date and time are | |
105 output</para> | |
106 <note> | |
107 <para>For details of the content of the format string, | |
108 see <link role="tcg" xlink:href="Datetime.html" | |
109 >Date and time</link>.</para> | |
110 </note> | |
111 </listitem> | |
112 </varlistentry> | |
113 <varlistentry><term>padding="0"|"1"</term> | |
114 <listitem> | |
115 <para>Specifies padding behavior; if non-zero, padding is is added</pa
ra> | |
116 </listitem> | |
117 </varlistentry> | |
118 </variablelist> | |
119 </refparameter> | |
120 </doc:pi> | |
121 <xsl:template name="pi.dbtimestamp"> | |
122 <xsl:variable name="format"> | |
123 <xsl:variable name="pi-format"> | |
124 <xsl:call-template name="pi-attribute"> | |
125 <xsl:with-param name="pis" select="."/> | |
126 <xsl:with-param name="attribute">format</xsl:with-param> | |
127 </xsl:call-template> | |
128 </xsl:variable> | |
129 <xsl:choose> | |
130 <xsl:when test="$pi-format != ''"> | |
131 <xsl:value-of select="$pi-format"/> | |
132 </xsl:when> | |
133 <xsl:otherwise> | |
134 <xsl:call-template name="gentext.template"> | |
135 <xsl:with-param name="context" select="'datetime'"/> | |
136 <xsl:with-param name="name" select="'format'"/> | |
137 </xsl:call-template> | |
138 </xsl:otherwise> | |
139 </xsl:choose> | |
140 </xsl:variable> | |
141 <xsl:variable name="padding"> | |
142 <xsl:variable name="pi-padding"> | |
143 <xsl:call-template name="pi-attribute"> | |
144 <xsl:with-param name="pis" select="."/> | |
145 <xsl:with-param name="attribute">padding</xsl:with-param> | |
146 </xsl:call-template> | |
147 </xsl:variable> | |
148 <xsl:choose> | |
149 <xsl:when test="$pi-padding != ''"> | |
150 <xsl:value-of select="$pi-padding"/> | |
151 </xsl:when> | |
152 <xsl:otherwise>1</xsl:otherwise> | |
153 </xsl:choose> | |
154 </xsl:variable> | |
155 <xsl:variable name="date"> | |
156 <xsl:choose> | |
157 <xsl:when test="function-available('date:date-time')"> | |
158 <xsl:value-of select="date:date-time()"/> | |
159 </xsl:when> | |
160 <xsl:when test="function-available('date:dateTime')"> | |
161 <!-- Xalan quirk --> | |
162 <xsl:value-of select="date:dateTime()"/> | |
163 </xsl:when> | |
164 </xsl:choose> | |
165 </xsl:variable> | |
166 <xsl:choose> | |
167 <xsl:when test="function-available('date:date-time') or | |
168 function-available('date:dateTime')"> | |
169 <xsl:call-template name="datetime.format"> | |
170 <xsl:with-param name="date" select="$date"/> | |
171 <xsl:with-param name="format" select="$format"/> | |
172 <xsl:with-param name="padding" select="$padding"/> | |
173 </xsl:call-template> | |
174 </xsl:when> | |
175 <xsl:otherwise> | |
176 <xsl:message> | |
177 Timestamp processing requires XSLT processor with EXSLT date support. | |
178 </xsl:message> | |
179 </xsl:otherwise> | |
180 </xsl:choose> | |
181 </xsl:template> | |
182 | |
183 <doc:pi name="dbtex_delims" xmlns=""> | |
184 <refpurpose>Generates delimiters around embedded TeX equations | |
185 in output</refpurpose> | |
186 <refdescription> | |
187 <para>Use the <tag class="xmlpi">dbtex delims</tag> PI as a | |
188 child of a <tag>textobject</tag> containing embedded TeX | |
189 markup, to cause that markup to be surrounded by | |
190 <literal>$</literal> delimiter characters in output.</para> | |
191 <warning> | |
192 <para>This feature is useful for print/PDF output only if you | |
193 use the obsolete and now unsupported PassiveTeX XSL-FO | |
194 engine.</para> | |
195 </warning> | |
196 </refdescription> | |
197 <refsynopsisdiv> | |
198 <synopsis><tag class="xmlpi">dbtex delims="no"|"yes"</tag></synopsis> | |
199 </refsynopsisdiv> | |
200 <refparameter> | |
201 <variablelist> | |
202 <varlistentry><term>dbtex delims="no"|"yes"</term> | |
203 <listitem> | |
204 <para>Specifies whether delimiters are output</para> | |
205 </listitem> | |
206 </varlistentry> | |
207 </variablelist> | |
208 </refparameter> | |
209 | |
210 <refsee role="params"> | |
211 <para><parameter>tex.math.delims</parameter></para> | |
212 </refsee> | |
213 | |
214 </doc:pi> | |
215 <xsl:template name="pi.dbtex_delims"> | |
216 <xsl:param name="node" select="."/> | |
217 <xsl:call-template name="pi-attribute"> | |
218 <xsl:with-param name="pis" select="$node/processing-instruction('dbtex')"/> | |
219 <xsl:with-param name="attribute" select="'delims'"/> | |
220 </xsl:call-template> | |
221 </xsl:template> | |
222 | |
223 <!-- ==================================================================== --> | |
224 | |
225 <xsl:template match="processing-instruction()" mode="titlepage.mode"> | |
226 <!-- * Als process PIs on title pages --> | |
227 <xsl:apply-templates select="."/> | |
228 </xsl:template> | |
229 | |
230 <xsl:template match="processing-instruction('dbtimestamp')"> | |
231 <xsl:call-template name="pi.dbtimestamp"/> | |
232 </xsl:template> | |
233 | |
234 <xsl:template name="datetime.format"> | |
235 <xsl:param name="date"/> | |
236 <xsl:param name="format"/> | |
237 <xsl:param name="padding" select="1"/> | |
238 <xsl:if test="$format != ''"> | |
239 <!-- replace any whitespace in the format string with a non-breaking space -
-> | |
240 <xsl:variable name="format-nbsp" | |
241 select="translate($format, | |
242 ' 	
', | |
243 '    ')"/> | |
244 <xsl:variable name="tokenized-format-string"> | |
245 <xsl:call-template name="str.tokenize.keep.delimiters"> | |
246 <xsl:with-param name="string" select="$format-nbsp"/> | |
247 <xsl:with-param name="delimiters" select="' ,./-()[]:'"/> | |
248 </xsl:call-template> | |
249 </xsl:variable> | |
250 <xsl:choose> | |
251 <xsl:when test="$exsl.node.set.available != 0"> | |
252 <!-- We must preserve context node in order to get valid language --> | |
253 <xsl:variable name="context" select="."/> | |
254 <xsl:for-each select="exsl:node-set($tokenized-format-string)/node()"> | |
255 <xsl:variable name="token"> | |
256 <xsl:value-of select="."/> | |
257 </xsl:variable> | |
258 <!-- Restore context node --> | |
259 <xsl:for-each select="$context"> | |
260 <xsl:choose> | |
261 <xsl:when test="$token = 'a'"> | |
262 <xsl:call-template name="gentext.template"> | |
263 <xsl:with-param name="context" select="'datetime-abbrev'"/> | |
264 <xsl:with-param name="name" select="date:day-abbreviation($dat
e)"/> | |
265 </xsl:call-template> | |
266 </xsl:when> | |
267 <xsl:when test="$token = 'A'"> | |
268 <xsl:call-template name="gentext.template"> | |
269 <xsl:with-param name="context" select="'datetime-full'"/> | |
270 <xsl:with-param name="name" select="date:day-name($date)"/> | |
271 </xsl:call-template> | |
272 </xsl:when> | |
273 <xsl:when test="$token = 'b'"> | |
274 <xsl:call-template name="gentext.template"> | |
275 <xsl:with-param name="context" select="'datetime-abbrev'"/> | |
276 <xsl:with-param name="name" select="date:month-abbreviation($d
ate)"/> | |
277 </xsl:call-template> | |
278 </xsl:when> | |
279 <xsl:when test="$token = 'c'"> | |
280 <xsl:value-of select="date:date($date)"/> | |
281 <xsl:text> </xsl:text> | |
282 <xsl:value-of select="date:time($date)"/> | |
283 </xsl:when> | |
284 <xsl:when test="$token = 'B'"> | |
285 <xsl:call-template name="gentext.template"> | |
286 <xsl:with-param name="context" select="'datetime-full'"/> | |
287 <xsl:with-param name="name" select="date:month-name($date)"/> | |
288 </xsl:call-template> | |
289 </xsl:when> | |
290 <xsl:when test="$token = 'd'"> | |
291 <xsl:if test="$padding = 1 and | |
292 string-length(date:day-in-month($date)) = 1">0</xsl:if> | |
293 <xsl:value-of select="date:day-in-month($date)"/> | |
294 </xsl:when> | |
295 <xsl:when test="$token = 'H'"> | |
296 <xsl:if test="$padding = 1 and string-length(date:hour-in-day($d
ate)) = 1">0</xsl:if> | |
297 <xsl:value-of select="date:hour-in-day($date)"/> | |
298 </xsl:when> | |
299 <xsl:when test="$token = 'j'"> | |
300 <xsl:value-of select="date:day-in-year($date)"/> | |
301 </xsl:when> | |
302 <xsl:when test="$token = 'm'"> | |
303 <xsl:if test="$padding = 1 and string-length(date:month-in-year(
$date)) = 1">0</xsl:if> | |
304 <xsl:value-of select="date:month-in-year($date)"/> | |
305 </xsl:when> | |
306 <xsl:when test="$token = 'M'"> | |
307 <xsl:if test="string-length(date:minute-in-hour($date)) = 1">0</
xsl:if> | |
308 <xsl:value-of select="date:minute-in-hour($date)"/> | |
309 </xsl:when> | |
310 <xsl:when test="$token = 'S'"> | |
311 <xsl:if test="string-length(date:second-in-minute($date)) = 1">0
</xsl:if> | |
312 <xsl:value-of select="date:second-in-minute($date)"/> | |
313 </xsl:when> | |
314 <xsl:when test="$token = 'U'"> | |
315 <xsl:value-of select="date:week-in-year($date)"/> | |
316 </xsl:when> | |
317 <xsl:when test="$token = 'w'"> | |
318 <xsl:value-of select="date:day-in-week($date)"/> | |
319 </xsl:when> | |
320 <xsl:when test="$token = 'x'"> | |
321 <xsl:value-of select="date:date($date)"/> | |
322 </xsl:when> | |
323 <xsl:when test="$token = 'X'"> | |
324 <xsl:value-of select="date:time($date)"/> | |
325 </xsl:when> | |
326 <xsl:when test="$token = 'Y'"> | |
327 <xsl:value-of select="date:year($date)"/> | |
328 </xsl:when> | |
329 <xsl:otherwise> | |
330 <xsl:value-of select="$token"/> | |
331 </xsl:otherwise> | |
332 </xsl:choose> | |
333 </xsl:for-each> | |
334 </xsl:for-each> | |
335 </xsl:when> | |
336 <xsl:otherwise> | |
337 <xsl:message> | |
338 Timestamp processing requires an XSLT processor with support | |
339 for the EXSLT node-set() function. | |
340 </xsl:message> | |
341 </xsl:otherwise> | |
342 </xsl:choose> | |
343 </xsl:if> | |
344 </xsl:template> | |
345 | |
346 </xsl:stylesheet> | |
OLD | NEW |