4 xmlns:h="http://www.w3.org/1999/xhtml" |
4 xmlns:h="http://www.w3.org/1999/xhtml" |
5 xmlns:g="https://trac.frantovo.cz/xml-web-generator/wiki/xmlns/prostor" |
5 xmlns:g="https://trac.frantovo.cz/xml-web-generator/wiki/xmlns/prostor" |
6 xmlns:xsl="http://www.w3.org/1999/XSL/Transform" |
6 xmlns:xsl="http://www.w3.org/1999/XSL/Transform" |
7 xmlns:fn="http://www.w3.org/2005/xpath-functions" |
7 xmlns:fn="http://www.w3.org/2005/xpath-functions" |
8 xmlns:svg="http://www.w3.org/2000/svg" |
8 xmlns:svg="http://www.w3.org/2000/svg" |
9 exclude-result-prefixes="fn h g"> |
9 xmlns:xs="http://www.w3.org/2001/XMLSchema" |
|
10 exclude-result-prefixes="fn h g xs"> |
10 <xsl:output |
11 <xsl:output |
11 method="xml" |
12 method="xml" |
12 indent="yes" |
13 indent="yes" |
13 encoding="UTF-8" |
14 encoding="UTF-8" |
14 doctype-public="-//W3C//DTD XHTML 1.1 plus MathML 2.0 plus SVG 1.1//EN" |
15 doctype-public="-//W3C//DTD XHTML 1.1 plus MathML 2.0 plus SVG 1.1//EN" |
15 doctype-system="http://www.w3.org/2002/04/xhtml-math-svg/xhtml-math-svg.dtd"/> |
16 doctype-system="http://www.w3.org/2002/04/xhtml-math-svg/xhtml-math-svg.dtd"/> |
16 |
17 |
17 <!-- Vstupní adresář: --> |
18 <!-- Vstupní adresář: --> |
18 <xsl:param name="vstup" select="'../vstup/'"/> |
19 <xsl:param name="vstup" select="'../vstup/'"/> |
|
20 <xsl:param name="vstupníPřípona" select="'.xml'"/> |
|
21 <xsl:param name="výstupníPřípona" select="'.xhtml'"/> |
|
22 <xsl:param name="vsuvkováPřípona" select="'.inc'"/> |
|
23 <xsl:param name="podporaZaostalýchProhlížečů" select="false()" as="xs:boolean"/> |
19 |
24 |
20 <!-- Celý dokument: --> |
25 <!-- Celý dokument: --> |
21 <xsl:template match="/"> |
26 <xsl:template match="/"> |
22 <xsl:variable name="konfigurace" select="document(concat($vstup, 'web.conf'))"/> |
27 <xsl:variable name="konfigurace" select="document(concat($vstup, 'web.conf'))"/> |
23 <html> |
28 <html> |
29 <xsl:apply-templates select="$konfigurace/g:web/g:css"/> |
34 <xsl:apply-templates select="$konfigurace/g:web/g:css"/> |
30 </head> |
35 </head> |
31 <body> |
36 <body> |
32 <div id="tělo"> |
37 <div id="tělo"> |
33 <div id="záhlaví"> |
38 <div id="záhlaví"> |
34 <xsl:apply-templates select="document(fn:encode-for-uri(concat($vstup, 'záhlaví.inc')))/g:stránka/h:text/node()"/> |
39 <xsl:apply-templates select="document(fn:encode-for-uri(concat($vstup, 'záhlaví', $vsuvkováPřípona)))/g:stránka/h:text/node()"/> |
35 </div> |
40 </div> |
36 <div id="vnitřek"> |
41 <div id="vnitřek"> |
37 <h1><xsl:value-of select="g:stránka/g:nadpis"/></h1> |
42 <h1><xsl:value-of select="g:stránka/g:nadpis"/></h1> |
38 <ul id="nabídka"> |
43 <ul id="nabídka"> |
39 <xsl:for-each select="collection('../vstup/?select=*.xml')[g:stránka/g:pořadí]"> |
44 <xsl:for-each select="collection(concat('../vstup/?select=*', $vstupníPřípona))[g:stránka/g:pořadí]"> |
40 <xsl:sort select="empty(./g:stránka/g:pořadí)"/> |
45 <xsl:sort select="empty(./g:stránka/g:pořadí)"/> |
41 <xsl:sort select="./g:stránka/g:pořadí"/> |
46 <xsl:sort select="./g:stránka/g:pořadí"/> |
42 <li> |
47 <li> |
43 <xsl:variable name="xmlSoubor" select="tokenize(document-uri(.), '/')[last()]"/> |
48 <xsl:variable name="xmlSoubor" select="tokenize(document-uri(.), '/')[last()]"/> |
44 <xsl:variable name="xhtmlSoubor" select="replace($xmlSoubor, '.xml', '.xhtml')"/> |
49 <xsl:variable name="xhtmlSoubor" select="replace($xmlSoubor, $vstupníPřípona, $výstupníPřípona)"/> |
45 <a href="{fn:encode-for-uri($xhtmlSoubor)}"><xsl:value-of select="./g:stránka/g:nadpis"/></a> |
50 <a href="{fn:encode-for-uri($xhtmlSoubor)}"><xsl:value-of select="./g:stránka/g:nadpis"/></a> |
46 </li> |
51 </li> |
47 </xsl:for-each> |
52 </xsl:for-each> |
48 </ul> |
53 </ul> |
49 <div id="text"> |
54 <div id="text"> |
50 <xsl:apply-templates select="g:stránka/h:text/node()"/> |
55 <xsl:apply-templates select="g:stránka/h:text/node()"/> |
51 </div> |
56 </div> |
52 </div> |
57 </div> |
53 <div id="zápatí"> |
58 <div id="zápatí"> |
54 <xsl:apply-templates select="document(fn:encode-for-uri(concat($vstup, 'zápatí.inc')))/g:stránka/h:text/node()"/> |
59 <xsl:apply-templates select="document(fn:encode-for-uri(concat($vstup, 'zápatí', $vsuvkováPřípona)))/g:stránka/h:text/node()"/> |
55 </div> |
60 </div> |
56 </div> |
61 </div> |
57 </body> |
62 </body> |
58 </html> |
63 </html> |
59 </xsl:template> |
64 </xsl:template> |
65 <xsl:apply-templates/> |
70 <xsl:apply-templates/> |
66 </xsl:element> |
71 </xsl:element> |
67 </xsl:template> |
72 </xsl:template> |
68 |
73 |
69 <!-- Odkazy na JavaScript a kaskádové styly --> |
74 <!-- Odkazy na JavaScript a kaskádové styly --> |
70 <xsl:template match="g:web/g:js"> |
75 <xsl:template name="varováníRetardace"> |
71 <script src="{text()}" type="text/javascript" /> |
76 <xsl:if test="$podporaZaostalýchProhlížečů"> |
|
77 <xsl:comment> |
|
78 Generátor byl spuštěn v režimu podpory zaostalých prohlížečů. |
|
79 Uživatelům doporučujeme upgrade na skutečný WWW prohlížeč, |
|
80 jako je např. Firefox nebo Chromium (případně Opera či Safari). |
|
81 </xsl:comment> |
|
82 </xsl:if> |
|
83 </xsl:template> |
|
84 <xsl:template match="g:web/g:js"> |
|
85 <script src="{text()}" type="text/javascript"> |
|
86 <xsl:call-template name="varováníRetardace"/> |
|
87 </script> |
72 </xsl:template> |
88 </xsl:template> |
73 <xsl:template match="g:web/g:css"> |
89 <xsl:template match="g:web/g:css"> |
74 <link href="{text()}" type="text/css" rel="StyleSheet" /> |
90 <link href="{text()}" type="text/css" rel="StyleSheet" /> |
75 </xsl:template> |
91 </xsl:template> |
76 |
92 |