source: stylesheets/lfs-xsl/docbook-xsl-1.78.1/roundtrip/dbk2wordml.xsl@ 64a2cd5

10.0 10.0-rc1 10.1 10.1-rc1 11.0 11.0-rc1 11.0-rc2 11.0-rc3 11.1 11.1-rc1 11.2 11.2-rc1 11.3 11.3-rc1 12.0 12.0-rc1 12.1 12.1-rc1 8.2 8.3 8.4 9.0 9.1 arm bdubbs/gcc13 ml-11.0 multilib renodr/libudev-from-systemd s6-init trunk xry111/arm64 xry111/arm64-12.0 xry111/clfs-ng xry111/lfs-next xry111/loongarch xry111/loongarch-12.0 xry111/loongarch-12.1 xry111/mips64el xry111/pip3 xry111/rust-wip-20221008 xry111/update-glibc
Last change on this file since 64a2cd5 was 15c7d39, checked in by Matthew Burgess <matthew@…>, 11 years ago

Update stylesheets to docbook-xsl-1.78.1.

git-svn-id: http://svn.linuxfromscratch.org/LFS/trunk/BOOK@10355 4aa44e1e-78dd-0310-a6d2-fbcd4c07a689

  • Property mode set to 100644
File size: 12.4 KB
Line 
1<xsl:stylesheet version="1.0"
2 xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
3 xmlns:w='http://schemas.microsoft.com/office/word/2003/wordml'
4 xmlns:v='urn:schemas-microsoft-com:vml'
5 xmlns:w10="urn:schemas-microsoft-com:office:word"
6 xmlns:aml="http://schemas.microsoft.com/aml/2001/core"
7 xmlns:wx='http://schemas.microsoft.com/office/word/2003/auxHint'
8 xmlns:o="urn:schemas-microsoft-com:office:office"
9 xmlns:dt="uuid:C2F41010-65B3-11d1-A29F-00AA00C14882"
10 xmlns:sl='http://schemas.microsoft.com/schemaLibrary/2003/core'
11 xmlns:doc='http://docbook.org/ns/docbook'
12 exclude-result-prefixes='doc'>
13
14 <xsl:import href='dbk2wp.xsl'/>
15
16 <xsl:output method="xml" indent='yes' standalone='yes' encoding='UTF-8'/>
17
18 <!-- ********************************************************************
19 $Id: dbk2wordml.xsl 9651 2012-10-26 20:44:10Z bobstayton $
20 ********************************************************************
21
22 This file is part of the XSL DocBook Stylesheet distribution.
23 See ../README or http://docbook.sf.net/release/xsl/current/ for
24 copyright and other information.
25
26 ******************************************************************** -->
27
28 <xsl:include href='../VERSION.xsl'/>
29 <xsl:include href='param.xsl'/>
30
31 <xsl:strip-space elements='*'/>
32 <xsl:preserve-space elements='literallayout doc:literallayout
33 programlisting doc:programlisting'/>
34
35 <xsl:variable name='templatedoc' select='document($wordml.template)'/>
36
37 <xsl:template match="/" name='wordml.top'>
38 <xsl:param name='doc' select='/'/>
39
40 <xsl:if test='not($wordml.template)'>
41 <xsl:message terminate='yes'>Please specify the template document with the "wordml.template" parameter</xsl:message>
42 </xsl:if>
43 <xsl:if test='not($templatedoc)'>
44 <xsl:message terminate='yes'>Unable to open template document "<xsl:value-of select='$wordml.template'/>"</xsl:message>
45 </xsl:if>
46
47 <xsl:processing-instruction name='mso-application'>
48 <xsl:text>progid="Word.Document"</xsl:text>
49 </xsl:processing-instruction>
50 <xsl:text>&#xa;</xsl:text>
51
52 <xsl:variable name='info'
53 select='$doc/book/bookinfo|$doc/article/articleinfo'/>
54 <xsl:variable name='authors' select='$info/author|$info/authorinitials|$info/authorgroup/author|$info/authorgroup/editor'/>
55
56 <w:wordDocument
57 w:macrosPresent="no" w:embeddedObjPresent="no" w:ocxPresent="no">
58 <xsl:attribute name='xml:space'>preserve</xsl:attribute>
59
60 <o:DocumentProperties>
61 <o:Author>
62 <xsl:choose>
63 <xsl:when test='$authors'>
64 <xsl:variable name="content">
65 <xsl:apply-templates select='$authors[1]' mode='doc:docprop.author'/>
66 </xsl:variable>
67 <xsl:value-of select="$content"/>
68 </xsl:when>
69 <xsl:otherwise>Unknown</xsl:otherwise>
70 </xsl:choose>
71 </o:Author>
72 <o:LastAuthor>
73 <xsl:variable name="content">
74 <xsl:choose>
75 <xsl:when test='$info/revhistory/revision[1]/*[self::author|self::authorinitials]'>
76 <xsl:apply-templates select='$info/revhistory/revision[1]/*[self::author|self::authorinitials]' mode='doc:docprop.author'/>
77 </xsl:when>
78 <xsl:when test='$authors'>
79 <xsl:apply-templates select='$authors[1]' mode='doc:docprop.author'/>
80 </xsl:when>
81 <xsl:otherwise>Unknown</xsl:otherwise>
82 </xsl:choose>
83 </xsl:variable>
84 <xsl:value-of select="$content"/>
85 </o:LastAuthor>
86 <o:Revision>1</o:Revision>
87 <o:TotalTime></o:TotalTime>
88
89 <!-- dummy values -->
90 <o:Created>2004-01-01T07:07:00Z</o:Created>
91 <o:LastSaved>2004-01-01T08:08:00Z</o:LastSaved>
92
93 <o:Pages>1</o:Pages>
94 <o:Words>1</o:Words>
95 <o:Characters>1</o:Characters>
96
97 <!-- could derive this from author -->
98 <o:Company>DocBook</o:Company>
99
100 <o:Lines>1</o:Lines>
101 <o:Paragraphs>1</o:Paragraphs>
102 <o:CharactersWithSpaces>1</o:CharactersWithSpaces>
103 <o:Version>11.6113</o:Version>
104 </o:DocumentProperties>
105
106 <xsl:apply-templates select='$templatedoc/w:wordDocument/o:CustomDocumentProperties|$templatedoc/w:wordDocument/w:fonts|$templatedoc/w:wordDocument/w:lists|$templatedoc/w:wordDocument/w:styles' mode='doc:copy'/>
107
108 <w:docPr>
109 <w:view w:val="print"/>
110 <w:zoom w:percent="100"/>
111 <w:doNotEmbedSystemFonts/>
112 <w:attachedTemplate w:val=""/>
113 <w:documentProtection w:formatting='on' w:enforcement='on'
114 w:unprotectPassword='CAA7FF77'/>
115 <w:defaultTabStop w:val="720"/>
116 <w:autoHyphenation/>
117 <w:hyphenationZone w:val="357"/>
118 <w:doNotHyphenateCaps/>
119 <w:evenAndOddHeaders/>
120 <w:characterSpacingControl w:val="DontCompress"/>
121 <w:optimizeForBrowser/>
122 <w:validateAgainstSchema/>
123 <w:saveInvalidXML w:val="off"/>
124 <w:ignoreMixedContent w:val="off"/>
125 <w:alwaysShowPlaceholderText w:val="off"/>
126 <w:footnotePr>
127 <w:footnote w:type="separator">
128 <w:p>
129 <w:r>
130 <w:separator/>
131 </w:r>
132 </w:p>
133 </w:footnote>
134 <w:footnote w:type="continuation-separator">
135 <w:p>
136 <w:r>
137 <w:continuationSeparator/>
138 </w:r>
139 </w:p>
140 </w:footnote>
141 </w:footnotePr>
142 <w:endnotePr>
143 <w:endnote w:type="separator">
144 <w:p>
145 <w:r>
146 <w:separator/>
147 </w:r>
148 </w:p>
149 </w:endnote>
150 <w:endnote w:type="continuation-separator">
151 <w:p>
152 <w:r>
153 <w:continuationSeparator/>
154 </w:r>
155 </w:p>
156 </w:endnote>
157 </w:endnotePr>
158 <w:compat>
159 <w:breakWrappedTables/>
160 <w:snapToGridInCell/>
161 <w:wrapTextWithPunct/>
162 <w:useAsianBreakRules/>
163 <w:useWord2002TableStyleRules/>
164 </w:compat>
165 <w:docVars>
166 </w:docVars>
167 </w:docPr>
168
169 <xsl:apply-templates select='$doc/*' mode='doc:toplevel'/>
170
171 </w:wordDocument>
172 </xsl:template>
173
174 <xsl:template name='doc:make-body'>
175 <xsl:param name='content'>
176 <xsl:apply-templates mode='doc:body'/>
177 </xsl:param>
178
179 <w:body>
180 <wx:sect>
181 <wx:sub-section>
182 <xsl:copy-of select='$content'/>
183 </wx:sub-section>
184 </wx:sect>
185 </w:body>
186 </xsl:template>
187
188 <xsl:template name='doc:make-subsection'>
189 <xsl:param name='content'>
190 <xsl:apply-templates mode='doc:body'/>
191 </xsl:param>
192
193 <wx:sub-section>
194 <xsl:copy-of select='$content'/>
195 </wx:sub-section>
196 </xsl:template>
197
198 <xsl:template name='doc:make-paragraph'>
199 <xsl:param name='style' select='"unknown"'/>
200 <xsl:param name='content'>
201 <xsl:apply-templates mode='doc:body'/>
202 </xsl:param>
203 <xsl:param name='outline.level' select='0'/>
204 <xsl:param name='attributes.node' select='.'/>
205
206 <w:p>
207 <xsl:if test='$style != "" or
208 $outline.level != 0'>
209 <w:pPr>
210 <xsl:if test='$style != ""'>
211 <w:pStyle w:val='{$style}'/>
212 </xsl:if>
213
214 <xsl:if test='$outline.level != 0'>
215 <w:outlineLvl w:val='{$outline.level}'/>
216 </xsl:if>
217 </w:pPr>
218 </xsl:if>
219
220 <xsl:call-template name='attributes'>
221 <xsl:with-param name='node' select='$attributes.node'/>
222 </xsl:call-template>
223
224 <xsl:copy-of select='$content'/>
225 </w:p>
226 </xsl:template>
227
228 <xsl:template name='doc:make-phrase'>
229 <xsl:param name='style' select='""'/>
230 <xsl:param name='italic' select='0'/>
231 <xsl:param name='bold' select='0'/>
232 <xsl:param name='content'>
233 <xsl:apply-templates mode='doc:phrase'/>
234 </xsl:param>
235
236 <w:r>
237 <xsl:if test='$style != "" or
238 $bold = 1 or
239 $italic = 1'>
240 <w:rPr>
241 <xsl:if test='$style != ""'>
242 <w:rStyle w:val='{$style}'/>
243 </xsl:if>
244 <xsl:if test='$italic = 1'>
245 <w:i/>
246 </xsl:if>
247 <xsl:if test='$bold = 1'>
248 <w:b/>
249 </xsl:if>
250 </w:rPr>
251 </xsl:if>
252
253 <w:t>
254 <xsl:copy-of select='$content'/>
255 </w:t>
256 </w:r>
257 </xsl:template>
258
259 <xsl:template name='doc:make-hyperlink'>
260 <xsl:param name='target'/>
261 <xsl:param name='content'>
262 <xsl:apply-templates mode='doc:body'/>
263 </xsl:param>
264
265 <w:hlink w:dest='{$target}'>
266 <xsl:copy-of select='$content'/>
267 </w:hlink>
268 </xsl:template>
269
270 <xsl:template name='doc:make-table'>
271 <xsl:param name='columns'/>
272 <xsl:param name='content'>
273 <xsl:apply-templates select='*[not(self::caption|self::doc:caption|self::textobject|self::doc:textobject)]'
274 mode='doc:body'/>
275 </xsl:param>
276
277 <w:tbl>
278 <w:tblPr>
279 <w:tblW w:w="0" w:type="auto"/>
280 <w:tblInd w:w="108" w:type="dxa"/>
281 <w:tblLayout w:type="Fixed"/>
282 </w:tblPr>
283 <w:tblGrid>
284 <xsl:copy-of select='$columns'/>
285 </w:tblGrid>
286 <xsl:copy-of select='$content'/>
287 </w:tbl>
288 </xsl:template>
289
290 <xsl:template name='doc:make-column'>
291 <xsl:param name='width' select='0'/>
292
293 <w:gridcol w:w='{$width}'/>
294 </xsl:template>
295
296 <xsl:template name='doc:make-table-row'>
297 <xsl:param name='content'>
298 <xsl:apply-templates mode='doc:body'/>
299 </xsl:param>
300 <xsl:param name='is-header' select='false()'/>
301
302 <w:tr>
303 <w:trPr>
304 <xsl:if test='$is-header'>
305 <w:tblHeader/>
306 </xsl:if>
307 </w:trPr>
308 <xsl:copy-of select='$content'/>
309 </w:tr>
310 </xsl:template>
311
312 <xsl:template name='doc:make-table-cell'>
313 <xsl:param name='width' select='0'/>
314 <xsl:param name='hidden' select='false()'/>
315 <xsl:param name='rowspan' select='1'/>
316 <xsl:param name='colspan' select='1'/>
317 <xsl:param name='content'>
318 <xsl:apply-templates mode='doc:body'/>
319 </xsl:param>
320
321 <w:tc>
322 <xsl:if test='$colspan != 1 or
323 $width != 0'>
324 <w:tcPr>
325 <xsl:if test='$colspan != 1 or
326 $width != 0'>
327 <w:tcW w:w='{$width}' w:type='dxa'/>
328 </xsl:if>
329 <xsl:if test='$hidden'>
330 <w:vmerge w:val='{$hidden}'/>
331 </xsl:if>
332 <xsl:if test='$rowspan != 1'>
333 <w:vmerge w:val='restart'/>
334 </xsl:if>
335 <xsl:if test='$colspan != 1'>
336 <w:gridspan w:val='{$colspan}'/>
337 </xsl:if>
338 </w:tcPr>
339 </xsl:if>
340
341 <xsl:copy-of select='$content'/>
342 </w:tc>
343 </xsl:template>
344
345 <xsl:template name='doc:make-soft-break'>
346 <w:br/>
347 </xsl:template>
348
349 <xsl:template name='attributes'>
350 <xsl:param name='node' select='.'/>
351
352 <xsl:if test='$node/@*'>
353 <aml:annotation aml:id='{count(preceding::*) + 1}' w:type='Word.Comment.Start'/>
354 <w:r>
355 <w:rPr>
356 <w:rStyle w:val='attributes'/>
357 </w:rPr>
358 <w:t>
359 <xsl:text> </xsl:text>
360 </w:t>
361 </w:r>
362 <aml:annotation aml:id='{count(preceding::*) + 1}' w:type='Word.Comment.End'/>
363 <w:r>
364 <w:rPr>
365 <w:rStyle w:val='CommentReference'/>
366 </w:rPr>
367 <aml:annotation aml:id='{count(preceding::*) + 1}' aml:author="DocBook" aml:createdate='2004-12-23T00:01:00' w:type='Word.Comment' w:initials='DBK'>
368 <aml:content>
369 <w:p>
370 <w:pPr>
371 <w:pStyle w:val='CommentText'/>
372 </w:pPr>
373 <w:r>
374 <w:rPr>
375 <w:rStyle w:val='CommentReference'/>
376 </w:rPr>
377 <w:annotationRef/>
378 </w:r>
379 <xsl:for-each select='$node/@*'>
380 <w:r>
381 <w:rPr>
382 <w:rStyle w:val='attribute-name'/>
383 </w:rPr>
384 <w:t>
385 <xsl:value-of select='name()'/>
386 </w:t>
387 </w:r>
388 <w:r>
389 <w:t>=</w:t>
390 </w:r>
391 <w:r>
392 <w:rPr>
393 <w:rStyle w:val='attribute-value'/>
394 </w:rPr>
395 <w:t>
396 <xsl:value-of select='.'/>
397 </w:t>
398 </w:r>
399 </xsl:for-each>
400 </w:p>
401 </aml:content>
402 </aml:annotation>
403 </w:r>
404 </xsl:if>
405 </xsl:template>
406
407</xsl:stylesheet>
Note: See TracBrowser for help on using the repository browser.