Mercurial > geeqie
comparison doc/wiki2docbook/headingsNormalizer/headingsNormalizer.xsl @ 1773:2ae81598b254
scripts for converting wiki documentation to docbook
author | nadvornik |
---|---|
date | Sun, 22 Nov 2009 09:12:22 +0000 |
parents | |
children |
comparison
equal
deleted
inserted
replaced
1772:9f3b7a089caf | 1773:2ae81598b254 |
---|---|
1 <?xml version="1.0" encoding="UTF-8"?> | |
2 <xsl:stylesheet version="1.0" | |
3 xmlns:xsl="http://www.w3.org/1999/XSL/Transform" | |
4 xmlns:xhtml="http://www.w3.org/1999/xhtml" | |
5 xmlns="http://www.w3.org/1999/xhtml"> | |
6 <xsl:output method="xml" indent="yes"/> | |
7 | |
8 <!-- | |
9 This stylesheet can be applied to xhtml documents. It ensures one one | |
10 h1 element exists per document. If the input document has only one h1 | |
11 element it just copies all nodes to the output, otherwise it adds a | |
12 new top level (h1) heading and depromotes every existing heading to a | |
13 lower level (ie, h1s turn into h2s, h2s turn into h3s, etc). | |
14 --> | |
15 | |
16 <xsl:param name="defaultHeading" select="'Chapter'"/> | |
17 | |
18 <xsl:template match="xhtml:html" mode="addtoplevelheading"> | |
19 <html> | |
20 <xsl:apply-templates select="@*|node()|text()|comment()|processing-instruction()" mode="addtoplevelheading"/> | |
21 </html> | |
22 </xsl:template> | |
23 | |
24 <xsl:template match="xhtml:body" mode="addtoplevelheading"> | |
25 <body><h1><xsl:value-of select="$defaultTopHeading"/></h1> | |
26 <xsl:apply-templates select="@*|node()|text()|comment()|processing-instruction()" mode="addtoplevelheading"/> | |
27 </body> | |
28 </xsl:template> | |
29 | |
30 <xsl:template match="xhtml:h1" mode="addtoplevelheading"> | |
31 <h2> | |
32 <xsl:apply-templates select="@*|node()|text()|comment()|processing-instruction()" mode="addtoplevelheading"/> | |
33 </h2> | |
34 </xsl:template> | |
35 | |
36 <xsl:template match="xhtml:h2" mode="addtoplevelheading"> | |
37 <h3> | |
38 <xsl:apply-templates select="@*|node()|text()|comment()|processing-instruction()" mode="addtoplevelheading"/> | |
39 </h3> | |
40 </xsl:template> | |
41 | |
42 <xsl:template match="xhtml:h3" mode="addtoplevelheading"> | |
43 <h4> | |
44 <xsl:apply-templates select="@*|node()|text()|comment()|processing-instruction()" mode="addtoplevelheading"/> | |
45 </h4> | |
46 </xsl:template> | |
47 | |
48 <xsl:template match="xhtml:h4" mode="addtoplevelheading"> | |
49 <h5> | |
50 <xsl:apply-templates select="@*|node()|text()|comment()|processing-instruction()" mode="addtoplevelheading"/> | |
51 </h5> | |
52 </xsl:template> | |
53 | |
54 <xsl:template match="xhtml:h5" mode="addtoplevelheading"> | |
55 <h6> | |
56 <xsl:apply-templates select="@*|node()|text()|comment()|processing-instruction()" mode="addtoplevelheading"/> | |
57 </h6> | |
58 </xsl:template> | |
59 | |
60 <xsl:template match="xhtml:h6" mode="addtoplevelheading"> | |
61 <section> | |
62 <xsl:apply-templates select="@*|node()|text()|comment()|processing-instruction()" mode="addtoplevelheading"/> | |
63 </section> | |
64 </xsl:template> | |
65 | |
66 <xsl:template match="@*|node()|text()|comment()|processing-instruction()" priority="-1" mode="addtoplevelheading"> | |
67 <xsl:copy> | |
68 <xsl:apply-templates select="@*|node()|text()|comment()|processing-instruction()" mode="addtoplevelheading"/> | |
69 </xsl:copy> | |
70 </xsl:template> | |
71 | |
72 <xsl:template match="img[@alt]" priority="-1"> | |
73 <xsl:apply-templates select="@*|node()|text()|comment()|processing-instruction()" /> | |
74 </xsl:template> | |
75 | |
76 <xsl:template match="@*|node()|text()|comment()|processing-instruction()" priority="-1"> | |
77 <xsl:choose> | |
78 <xsl:when test="count(//*[local-name()='h1'])=1"> | |
79 <xsl:copy> | |
80 <xsl:apply-templates select="@*|node()|text()|comment()|processing-instruction()" /> | |
81 </xsl:copy> | |
82 </xsl:when> | |
83 <xsl:otherwise> | |
84 <xsl:copy> | |
85 <xsl:apply-templates select="@*|node()|text()|comment()|processing-instruction()" mode="addtoplevelheading"/> | |
86 </xsl:copy> | |
87 </xsl:otherwise> | |
88 </xsl:choose> | |
89 </xsl:template> | |
90 </xsl:stylesheet> |