Odkazy #16: oprava chyby: Zachováme pouze povolené atributy.
1 <?xml version="1.0" encoding="UTF-8"?>
3 XML Web generátor – program na generování webových stránek
4 Copyright © 2012 František Kučera (frantovo.cz)
6 This program is free software: you can redistribute it and/or modify
7 it under the terms of the GNU General Public License as published by
8 the Free Software Foundation, either version 3 of the License, or
9 (at your option) any later version.
11 This program is distributed in the hope that it will be useful,
12 but WITHOUT ANY WARRANTY; without even the implied warranty of
13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 GNU General Public License for more details.
16 You should have received a copy of the GNU General Public License
17 along with this program. If not, see <http://www.gnu.org/licenses/>.
19 <xsl:stylesheet version="2.0"
20 xmlns="http://www.w3.org/1999/xhtml"
21 xmlns:m="https://trac.frantovo.cz/xml-web-generator/wiki/xmlns/makro"
22 xmlns:xs="http://www.w3.org/2001/XMLSchema"
23 xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
24 exclude-result-prefixes="m xs">
29 Slouží k vkládání odkazů na jiné stránky v rámci webu.
31 @href zadáváme jen název souboru bez přípony – s nezakódovanou češtinou a s mezerami
34 <xsl:template match="m:a[not(@typ)]">
36 <xsl:copy-of select="@*"/>
37 <xsl:attribute name="href">
38 <xsl:value-of select="encode-for-uri(concat(@href, $výstupníPřípona))"/>
40 <xsl:apply-templates/>
44 <xsl:variable name="tracURL" select="'https://trac.frantovo.cz/xml-web-generator'"/>
49 Odkazy na Trac našeho generátoru.
51 @href nečíselné parametry vedou do wiki
53 <xsl:template match="m:a[@typ='trac' and not(number(@href))]">
54 <xsl:call-template name="vložOdkaz">
55 <xsl:with-param name="url" select="
58 m:escapuj-url-zachovej-lomítka(@href)
66 Odkazy na Trac našeho generátoru.
68 @href číselné parametry vedou na úkoly
70 <xsl:template match="m:a[@typ='trac' and number(@href)]">
71 <xsl:call-template name="vložOdkaz">
72 <xsl:with-param name="url" select="
83 Odkazy zdrojový kód našeho generátoru.
86 @řádek číslo řádku (volitelně)
88 <xsl:template match="m:a[@typ='zdroják' and (not(@řádek) or number(@řádek))]">
89 <xsl:call-template name="vložOdkaz">
90 <xsl:with-param name="url" select="
92 $tracURL, '/browser/',
93 m:escapuj-url-zachovej-lomítka(@href),
100 <xsl:function name="m:escapuj-url-zachovej-lomítka" as="xs:string">
101 <xsl:param name="cesta"/>
102 <xsl:value-of select="replace(encode-for-uri($cesta), '%2F', '/')"/>
108 Stránka v encyklopedii.
111 @jazyk kód jazyka (výchozí je čeština)
113 <xsl:template match="m:a[@typ='wiki']">
114 <xsl:call-template name="vložOdkaz">
115 <xsl:with-param name="url" select="
117 'https://secure.wikimedia.org/wikipedia/', (@jazyk,'cs')[1], '/wiki/',
118 encode-for-uri(@href)
126 Dokumentace k javovským třídám.
128 @href jméno třídy včetně balíčku – např. java.lang.String
129 @verze verze Javy, výchozí: 7
131 <xsl:template match="m:a[@typ='javadoc']">
132 <xsl:call-template name="vložOdkaz">
133 <xsl:with-param name="url" select="
135 'http://docs.oracle.com/javase/', (@verze,'7')[1], '/docs/api/',
136 replace(@href, '\.', '/'),
145 Vyhledávání pomocí Seznamu.
149 <xsl:template match="m:a[@typ='seznam']">
150 <xsl:call-template name="vložOdkaz">
151 <xsl:with-param name="url" select="
153 'http://search.seznam.cz/?q=',
154 encode-for-uri(@href)
162 Vyhledávání pomocí Googlu.
166 <xsl:template match="m:a[@typ='google']">
167 <xsl:call-template name="vložOdkaz">
168 <xsl:with-param name="url" select="
170 'https://encrypted.google.com/search?q=',
171 encode-for-uri(@href)
179 Internetové standardy – RFC.
183 <xsl:template match="m:a[@typ='rfc' and number(@href)]">
184 <xsl:call-template name="vložOdkaz">
185 <xsl:with-param name="url" select="
187 'https://tools.ietf.org/html/rfc',
194 <xsl:template name="vložOdkaz">
195 <xsl:param name="url"/>
197 <!-- Zachováme pouze povolené atributy: -->
199 <xsl:copy-of select="@charset"/>
200 <xsl:copy-of select="@coords"/>
201 <xsl:copy-of select="@hreflang"/>
202 <xsl:copy-of select="@name"/>
203 <xsl:copy-of select="@rel"/>
204 <xsl:copy-of select="@rev"/>
205 <xsl:copy-of select="@shape"/>
206 <xsl:copy-of select="@target"/> <!-- Pozor: nepatří do striktního XHTML -->
208 <xsl:copy-of select="@accesskey"/>
209 <xsl:copy-of select="@class"/>
210 <xsl:copy-of select="@dir"/>
211 <xsl:copy-of select="@id"/>
212 <xsl:copy-of select="@lang"/>
213 <xsl:copy-of select="@style"/>
214 <xsl:copy-of select="@tabindex"/>
215 <xsl:copy-of select="@title"/>
216 <xsl:copy-of select="@xml:lang"/>
218 <xsl:copy-of select="@onblur"/>
219 <xsl:copy-of select="@onclick"/>
220 <xsl:copy-of select="@ondblclick"/>
221 <xsl:copy-of select="@onfocus"/>
222 <xsl:copy-of select="@onmousedown"/>
223 <xsl:copy-of select="@onmousemove"/>
224 <xsl:copy-of select="@onmouseout"/>
225 <xsl:copy-of select="@onmouseover"/>
226 <xsl:copy-of select="@onmouseup"/>
227 <xsl:copy-of select="@onkeydown"/>
228 <xsl:copy-of select="@onkeypress"/>
229 <xsl:copy-of select="@onkeyup"/>
231 <xsl:attribute name="href"><xsl:value-of select="$url"/></xsl:attribute>
232 <xsl:apply-templates/>