šablona/makra/odkazy.xsl
author František Kučera <franta-hg@frantovo.cz>
Sat, 07 Jan 2012 00:14:27 +0100
changeset 53 7403128a8e0a
parent 51 df1f942f7b69
child 54 15c66c9048f2
permissions -rw-r--r--
Makro pro odkazy #16 – Trac, Seznam, Google, RFC

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="2.0"
	xmlns="http://www.w3.org/1999/xhtml"
	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">

	<!--
		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>