šablona/makra/odkazy.xsl
changeset 53 7403128a8e0a
parent 51 df1f942f7b69
child 54 15c66c9048f2
--- a/šablona/makra/odkazy.xsl	Fri Jan 06 21:58:52 2012 +0100
+++ b/šablona/makra/odkazy.xsl	Sat Jan 07 00:14:27 2012 +0100
@@ -4,20 +4,98 @@
 	xmlns:m="https://trac.frantovo.cz/xml-web-generator/wiki/xmlns/makro"
 	xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
 	exclude-result-prefixes="m">
-   
-    <!--
-    	Makro pro převod interních odkazů:
-    		- doplnění správné přípony
-    		- URL kódování znaků
-    -->
-    <xsl:template match="m:a">
-    	<a>
-    		<xsl:copy-of select="@*"/>
-    		<xsl:attribute name="href">
-    			<xsl:value-of select="encode-for-uri(concat(@href, $výstupníPřípona))"/>
-    		</xsl:attribute>
-    		<xsl:apply-templates/>
-    	</a>
-    </xsl:template>
-    
+
+	<!--
+		Odkazy
+		******
+		Slouží hlavně k vkládání odkazů na jiné stránky v rámci webu.
+		*
+		@href zadáváme jen název souboru bez přípony – s nezakódovanou češtinou a s mezerami
+		@typ jiné typy odkazů (výchozí jsou interní odkazy v rámci webu)
+	-->
+	<xsl:template match="m:a">
+		<a>
+			<xsl:copy-of select="@*"/>
+			<xsl:attribute name="href">
+				<xsl:value-of select="encode-for-uri(concat(@href, $výstupníPřípona))"/>
+			</xsl:attribute>
+			<xsl:apply-templates/>
+		</a>
+	</xsl:template>
+
+	<!--
+		Trac – wiki
+		***********
+		Odkazy na Trac našeho generátoru.
+		@href nečíselné parametry vedou do wiki
+	-->
+	<xsl:template match="m:a[@typ='trac' and not(number(@href))]">
+		<xsl:call-template name="vložOdkaz">
+			<xsl:with-param name="url" select="
+				concat(
+					'https://trac.frantovo.cz/xml-web-generator/wiki/', 
+					replace(encode-for-uri(@href), '%2F', '/')
+				)"/>
+		</xsl:call-template>		
+	</xsl:template>
+	
+	<!--
+		Trac – úkoly
+		************
+		Odkazy na Trac našeho generátoru.
+		@href číselné parametry vedou na úkoly
+	-->
+	<xsl:template match="m:a[@typ='trac' and number(@href)]">
+		<xsl:call-template name="vložOdkaz">
+			<xsl:with-param name="url" select="
+				concat(
+					'https://trac.frantovo.cz/xml-web-generator/ticket/', 
+					@href
+				)"/>
+		</xsl:call-template>
+	</xsl:template>
+
+	<!-- 
+		Seznam.cz
+		*********
+		Vyhledávání pomocí Seznamu
+	-->
+	<xsl:template match="m:a[@typ='seznam']">
+		<xsl:call-template name="vložOdkaz">
+			<xsl:with-param name="url" select="concat('http://search.seznam.cz/?q=', encode-for-uri(@href))"/>
+		</xsl:call-template>
+	</xsl:template>
+
+	<!-- 
+		Google.com
+		**********
+		Vyhledávání pomocí Googlu
+	-->
+	<xsl:template match="m:a[@typ='google']">
+		<xsl:call-template name="vložOdkaz">
+			<xsl:with-param name="url" select="concat('https://encrypted.google.com/search?q=', encode-for-uri(@href))"/>
+		</xsl:call-template>	
+	</xsl:template>
+	
+	<!-- 
+		Request for comments
+		********************
+		Internetové standardy – RFC
+	-->
+	<xsl:template match="m:a[@typ='rfc']">
+		<xsl:call-template name="vložOdkaz">
+			<xsl:with-param name="url" select="concat('https://tools.ietf.org/html/rfc', @href)"/>
+		</xsl:call-template>
+	</xsl:template>
+	
+	
+	<xsl:template name="vložOdkaz">
+		<xsl:param name="url"/>
+		<a>
+			<xsl:copy-of select="@*"/>
+			<xsl:attribute name="href"><xsl:value-of select="$url"/></xsl:attribute>
+			<xsl:apply-templates/>
+		</a>		
+	</xsl:template>
+
 </xsl:stylesheet>