Odkazy #16: oprava chyby: Zachováme pouze povolené atributy.
authorFrantišek Kučera <franta-hg@frantovo.cz>
Sat, 07 Jan 2012 17:34:57 +0100
changeset 66a8085dedd92b
parent 65 0b00c324e644
child 67 89b42acb3593
Odkazy #16: oprava chyby: Zachováme pouze povolené atributy.
vstup/zdrojáky.xml
šablona/makra/odkazy.xsl
     1.1 --- a/vstup/zdrojáky.xml	Sat Jan 07 17:34:33 2012 +0100
     1.2 +++ b/vstup/zdrojáky.xml	Sat Jan 07 17:34:57 2012 +0100
     1.3 @@ -52,6 +52,8 @@
     1.4  	<element1>toto je <strong>pěkné</strong> XML!!!</element1>
     1.5  </xmlDokument>]]></m:pre>
     1.6  
     1.7 +		<p>Další ukázka XML: <m:a href="šablona/makra/tabulka.xsl" typ="zdroják" řádek="25">tabulka.xsl</m:a>.</p>
     1.8 +
     1.9  		<h2>BASH</h2>
    1.10  		
    1.11  		<m:pre jazyk="bash" src="matrixový-spořič.sh" odkaz="ano"/>
     2.1 --- a/šablona/makra/odkazy.xsl	Sat Jan 07 17:34:33 2012 +0100
     2.2 +++ b/šablona/makra/odkazy.xsl	Sat Jan 07 17:34:57 2012 +0100
     2.3 @@ -19,8 +19,9 @@
     2.4  <xsl:stylesheet version="2.0"
     2.5  	xmlns="http://www.w3.org/1999/xhtml"
     2.6  	xmlns:m="https://trac.frantovo.cz/xml-web-generator/wiki/xmlns/makro"
     2.7 +	xmlns:xs="http://www.w3.org/2001/XMLSchema"
     2.8  	xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
     2.9 -	exclude-result-prefixes="m">
    2.10 +	exclude-result-prefixes="m xs">
    2.11  
    2.12  	<!--
    2.13  		Interní odkazy
    2.14 @@ -40,6 +41,8 @@
    2.15  		</a>
    2.16  	</xsl:template>
    2.17  
    2.18 +	<xsl:variable name="tracURL" select="'https://trac.frantovo.cz/xml-web-generator'"/>	
    2.19 +
    2.20  	<!--
    2.21  		Trac – wiki
    2.22  		***********
    2.23 @@ -51,12 +54,12 @@
    2.24  		<xsl:call-template name="vložOdkaz">
    2.25  			<xsl:with-param name="url" select="
    2.26  				concat(
    2.27 -					'https://trac.frantovo.cz/xml-web-generator/wiki/', 
    2.28 -					replace(encode-for-uri(@href), '%2F', '/')
    2.29 +					$tracURL, '/wiki/', 
    2.30 +					m:escapuj-url-zachovej-lomítka(@href)
    2.31  				)"/>
    2.32  		</xsl:call-template>		
    2.33  	</xsl:template>
    2.34 -	
    2.35 +
    2.36  	<!--
    2.37  		Trac – úkoly
    2.38  		************
    2.39 @@ -68,13 +71,38 @@
    2.40  		<xsl:call-template name="vložOdkaz">
    2.41  			<xsl:with-param name="url" select="
    2.42  				concat(
    2.43 -					'https://trac.frantovo.cz/xml-web-generator/ticket/', 
    2.44 +					$tracURL, '/ticket/', 
    2.45  					@href
    2.46  				)"/>
    2.47  		</xsl:call-template>
    2.48  	</xsl:template>
    2.49  
    2.50  	<!--
    2.51 +		Zdroják
    2.52 +		*******
    2.53 +		Odkazy zdrojový kód našeho generátoru.
    2.54 +		*
    2.55 +		@href název souboru
    2.56 +		@řádek číslo řádku (volitelně)
    2.57 +	-->
    2.58 +	<xsl:template match="m:a[@typ='zdroják' and (not(@řádek) or number(@řádek))]">
    2.59 +		<xsl:call-template name="vložOdkaz">
    2.60 +			<xsl:with-param name="url" select="
    2.61 +				concat(
    2.62 +					$tracURL, '/browser/', 
    2.63 +					m:escapuj-url-zachovej-lomítka(@href),
    2.64 +					'#L',
    2.65 +					(@řádek,'1')[1]
    2.66 +				)"/>
    2.67 +		</xsl:call-template>
    2.68 +	</xsl:template>
    2.69 +	
    2.70 +	<xsl:function name="m:escapuj-url-zachovej-lomítka" as="xs:string">
    2.71 +		<xsl:param name="cesta"/>
    2.72 +		<xsl:value-of select="replace(encode-for-uri($cesta), '%2F', '/')"/>
    2.73 +	</xsl:function>
    2.74 +
    2.75 +	<!--
    2.76  		Wikipedia
    2.77  		*********
    2.78  		Stránka v encyklopedii.
    2.79 @@ -166,7 +194,40 @@
    2.80  	<xsl:template name="vložOdkaz">
    2.81  		<xsl:param name="url"/>
    2.82  		<a>
    2.83 -			<xsl:copy-of select="@*"/>
    2.84 +			<!-- Zachováme pouze povolené atributy: -->
    2.85 +			
    2.86 +			<xsl:copy-of select="@charset"/>
    2.87 +			<xsl:copy-of select="@coords"/>
    2.88 +			<xsl:copy-of select="@hreflang"/>
    2.89 +			<xsl:copy-of select="@name"/>
    2.90 +			<xsl:copy-of select="@rel"/>
    2.91 +			<xsl:copy-of select="@rev"/>
    2.92 +			<xsl:copy-of select="@shape"/>
    2.93 +			<xsl:copy-of select="@target"/> <!-- Pozor: nepatří do striktního XHTML -->
    2.94 +			
    2.95 +			<xsl:copy-of select="@accesskey"/>
    2.96 +			<xsl:copy-of select="@class"/>
    2.97 +			<xsl:copy-of select="@dir"/>
    2.98 +			<xsl:copy-of select="@id"/>
    2.99 +			<xsl:copy-of select="@lang"/>
   2.100 +			<xsl:copy-of select="@style"/>
   2.101 +			<xsl:copy-of select="@tabindex"/>
   2.102 +			<xsl:copy-of select="@title"/>
   2.103 +			<xsl:copy-of select="@xml:lang"/>
   2.104 +			
   2.105 +			<xsl:copy-of select="@onblur"/>
   2.106 +			<xsl:copy-of select="@onclick"/>
   2.107 +			<xsl:copy-of select="@ondblclick"/>
   2.108 +			<xsl:copy-of select="@onfocus"/>
   2.109 +			<xsl:copy-of select="@onmousedown"/>
   2.110 +			<xsl:copy-of select="@onmousemove"/>
   2.111 +			<xsl:copy-of select="@onmouseout"/>
   2.112 +			<xsl:copy-of select="@onmouseover"/>
   2.113 +			<xsl:copy-of select="@onmouseup"/>
   2.114 +			<xsl:copy-of select="@onkeydown"/>
   2.115 +			<xsl:copy-of select="@onkeypress"/>
   2.116 +			<xsl:copy-of select="@onkeyup"/>
   2.117 +			
   2.118  			<xsl:attribute name="href"><xsl:value-of select="$url"/></xsl:attribute>
   2.119  			<xsl:apply-templates/>
   2.120  		</a>