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, version 3 of the License.
10 This program is distributed in the hope that it will be useful,
11 but WITHOUT ANY WARRANTY; without even the implied warranty of
12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 GNU General Public License for more details.
15 You should have received a copy of the GNU General Public License
16 along with this program. If not, see <http://www.gnu.org/licenses/>.
18 <xsl:stylesheet version="2.0"
19 xmlns="http://www.w3.org/1999/xhtml"
20 xmlns:m="https://trac.frantovo.cz/xml-web-generator/wiki/xmlns/makro"
21 xmlns:k="https://trac.frantovo.cz/xml-web-generator/wiki/xmlns/konfigurace"
22 xmlns:xs="http://www.w3.org/2001/XMLSchema"
23 xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
24 exclude-result-prefixes="m k 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),
103 Stránka v encyklopedii.
106 @jazyk kód jazyka (výchozí je čeština)
108 <xsl:template match="m:a[@typ='wiki']">
109 <xsl:call-template name="vložOdkaz">
110 <xsl:with-param name="url" select="
112 'https://secure.wikimedia.org/wikipedia/', (@jazyk,'cs')[1], '/wiki/',
113 m:escapuj-url-zachovej-lomítka(@href)
121 Dokumentace k javovským třídám.
123 @href jméno třídy včetně balíčku – např. java.lang.String
124 @verze verze Javy, výchozí: 7
126 <xsl:template match="m:a[@typ='javadoc']">
127 <xsl:call-template name="vložOdkaz">
128 <xsl:with-param name="url" select="
130 'http://docs.oracle.com/javase/', (@verze,'7')[1], '/docs/api/',
131 replace(@href, '\.', '/'),
140 Vyhledávání pomocí Seznamu.
144 <xsl:template match="m:a[@typ='seznam']">
145 <xsl:call-template name="vložOdkaz">
146 <xsl:with-param name="url" select="
148 'http://search.seznam.cz/?q=',
149 encode-for-uri(@href)
157 Vyhledávání pomocí Googlu.
161 <xsl:template match="m:a[@typ='google']">
162 <xsl:call-template name="vložOdkaz">
163 <xsl:with-param name="url" select="
165 'https://encrypted.google.com/search?q=',
166 encode-for-uri(@href)
174 Internetové standardy – RFC.
178 <xsl:template match="m:a[@typ='rfc' and number(@href)]">
179 <xsl:call-template name="vložOdkaz">
180 <xsl:with-param name="url" select="
182 'https://tools.ietf.org/html/rfc',
191 Odkaz na e-mail v „obfuskovaném“ tvaru,
192 aby spamovací roboti nemohli tak snadno sbírat e-mailové adresy z webů.
193 Ale zároveň klikatelný, aby ho uživatel nemusel opisovat (vyžaduje JavaScript).
194 Obsah elementu je nepovinný – pokud chybí, vloží se e-mailová adresa.
196 @href e-mailová adresa (bez „mailto:“)
198 <xsl:template match="m:a[@typ='email']">
199 <xsl:variable name="česky" select="replace(replace(@href, '@', ' zavináč '), '\.', ' tečka ')"/>
200 <xsl:variable name="klíč" select="concat(tokenize($konfigurace/k:web/k:uuid/text(), '-')[1], '9df1')"/>
201 <xsl:variable name="pořadí"><xsl:number level="any"/></xsl:variable>
202 <xsl:variable name="idSpanu" select="concat('c', $klíč, $pořadí)"/>
203 <span title="{text()}" id="{$idSpanu}">
204 <xsl:value-of select="$česky"/>
206 <span id="{$idSpanu}b" style="display: none">
207 <xsl:apply-templates/>
209 <script type="text/javascript">
210 xwg.odkazNaElektronickouPoštu("<xsl:value-of select="$idSpanu"/>");
215 <xsl:template name="vložOdkaz">
216 <xsl:param name="url"/>
218 <!-- Zachováme pouze povolené atributy: -->
220 <xsl:copy-of select="@charset"/>
221 <xsl:copy-of select="@coords"/>
222 <xsl:copy-of select="@hreflang"/>
223 <xsl:copy-of select="@name"/>
224 <xsl:copy-of select="@rel"/>
225 <xsl:copy-of select="@rev"/>
226 <xsl:copy-of select="@shape"/>
227 <xsl:copy-of select="@target"/> <!-- Pozor: nepatří do striktního XHTML -->
229 <xsl:copy-of select="@accesskey"/>
230 <xsl:copy-of select="@class"/>
231 <xsl:copy-of select="@dir"/>
232 <xsl:copy-of select="@id"/>
233 <xsl:copy-of select="@lang"/>
234 <xsl:copy-of select="@style"/>
235 <xsl:copy-of select="@tabindex"/>
236 <xsl:copy-of select="@title"/>
237 <xsl:copy-of select="@xml:lang"/>
239 <xsl:copy-of select="@onblur"/>
240 <xsl:copy-of select="@onclick"/>
241 <xsl:copy-of select="@ondblclick"/>
242 <xsl:copy-of select="@onfocus"/>
243 <xsl:copy-of select="@onmousedown"/>
244 <xsl:copy-of select="@onmousemove"/>
245 <xsl:copy-of select="@onmouseout"/>
246 <xsl:copy-of select="@onmouseover"/>
247 <xsl:copy-of select="@onmouseup"/>
248 <xsl:copy-of select="@onkeydown"/>
249 <xsl:copy-of select="@onkeypress"/>
250 <xsl:copy-of select="@onkeyup"/>
252 <xsl:attribute name="href"><xsl:value-of select="$url"/></xsl:attribute>
253 <xsl:apply-templates/>