Odkazy #16: podpora Wikipedie
authorFrantišek Kučera <franta-hg@frantovo.cz>
Sat, 07 Jan 2012 01:08:24 +0100
changeset 54 15c66c9048f2
parent 53 7403128a8e0a
child 55 7a6267709af8
Odkazy #16: podpora Wikipedie coalesce :-)
vstup/odkazy.xml
šablona/makra/odkazy.xsl
--- a/vstup/odkazy.xml	Sat Jan 07 00:14:27 2012 +0100
+++ b/vstup/odkazy.xml	Sat Jan 07 01:08:24 2012 +0100
@@ -6,13 +6,15 @@
 
 	<text xmlns="http://www.w3.org/1999/xhtml">
 		
-		<p>Tady jsou nějaké naše odkazy. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed mi nisl, tincidunt in viverra vitae, pharetra nec urna. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Integer gravida gravida convallis. Phasellus erat ligula, vestibulum vel commodo ac, fringilla quis lorem. Morbi a massa a ligula tincidunt mattis et et felis. Vivamus a quam nulla, at vulputate nisi. Duis gravida placerat luctus. Phasellus vehicula lobortis arcu vitae hendrerit. Maecenas ut molestie elit. Aliquam erat volutpat. Curabitur sed euismod nisl. Mauris molestie tristique nulla, eu pellentesque sem tincidunt non.</p>
+		<p>Tady jsou nějaké naše odkazy. Lorem ipsum dolor sit amet, consectetur adipiscing elit<m:a href="16" typ="trac" style="text-decoration: none;">.</m:a> Sed mi nisl, tincidunt in viverra vitae, pharetra nec urna. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Integer gravida gravida convallis. Phasellus erat ligula, vestibulum vel commodo ac, fringilla quis lorem. Morbi a massa a ligula tincidunt mattis et et felis. Vivamus a quam nulla, at vulputate nisi. Duis gravida placerat luctus. Phasellus vehicula lobortis arcu vitae hendrerit. Maecenas ut molestie elit. Aliquam erat volutpat. Curabitur sed euismod nisl. Mauris molestie tristique nulla, eu pellentesque sem tincidunt non.</p>
 		
 		<ul>
 			<li><m:a href="kontakt">Kontakt</m:a> – interní odkaz</li>
 			<li><m:a href="nejlepší linuxová distribuce" typ="seznam">Nejlepší distribuce</m:a> – vyhledávání pomocí Seznamu</li>
 			<li><m:a href="GNU/Linux a tučňák Tux" typ="google"><abbr title="GNU's Not Unix! – GNU Není Unix!">GNU</abbr>/Linux a tučňák Tux</m:a> – vyhledávání pomocí Googlu</li>
 			<li><m:a href="1855" typ="rfc"><em>Net</em>iketa</m:a> – internetový standard <abbr title="request for comments">RFC</abbr></li>
+			<li><m:a href="Linus Torvalds" typ="wiki">Linus Torvalds</m:a> – encyklopedie Wikipedia – česky</li>
+			<li><m:a href="Richard Stallman" typ="wiki" jazyk="en">Richard Stallman</m:a> – encyklopedie Wikipedia – anglicky</li>
 		</ul>
 		
 		<p>
@@ -24,6 +26,8 @@
 <m:a href="nejlepší linuxová distribuce" typ="seznam">Nejlepší distribuce</m:a>
 <m:a href="GNU/Linux a tučňák Tux" typ="google">GNU/Linux a tučňák Tux</m:a>
 <m:a href="1855" typ="rfc">Netiketa</m:a>
+<m:a href="Linus Torvalds" typ="wiki">Linus Torvalds</m:a>
+<m:a href="Richard Stallman" typ="wiki" jazyk="en">Richard Stallman</m:a>
 ]]></m:pre>
 
 		<p>
--- a/šablona/makra/odkazy.xsl	Sat Jan 07 00:14:27 2012 +0100
+++ b/šablona/makra/odkazy.xsl	Sat Jan 07 01:08:24 2012 +0100
@@ -6,14 +6,14 @@
 	exclude-result-prefixes="m">
 
 	<!--
-		Odkazy
-		******
-		Slouží hlavně k vkládání odkazů na jiné stránky v rámci webu.
+		Interní odkazy
+		**************
+		Slouží 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)
+		@typ nevyplňujeme
 	-->
-	<xsl:template match="m:a">
+	<xsl:template match="m:a[not(@typ)]">
 		<a>
 			<xsl:copy-of select="@*"/>
 			<xsl:attribute name="href">
@@ -55,14 +55,36 @@
 		</xsl:call-template>
 	</xsl:template>
 
+	<!--
+		Wikipedia
+		************
+		Stránka v encyklopedii 
+		@href název stránky
+		@jazyk kód jazyka (výchozí je čeština)
+	-->
+	<xsl:template match="m:a[@typ='wiki']">
+		<xsl:call-template name="vložOdkaz">
+			<xsl:with-param name="url" select="
+				concat(
+					'https://secure.wikimedia.org/wikipedia/', (@jazyk,'cs')[1], '/wiki/', 
+					encode-for-uri(@href)
+				)"/>
+		</xsl:call-template>
+	</xsl:template>
+	
 	<!-- 
 		Seznam.cz
 		*********
 		Vyhledávání pomocí Seznamu
+		@href náš dotaz
 	-->
 	<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:with-param name="url" select="
+				concat(
+					'http://search.seznam.cz/?q=', 
+					encode-for-uri(@href)
+				)"/>
 		</xsl:call-template>
 	</xsl:template>
 
@@ -70,10 +92,15 @@
 		Google.com
 		**********
 		Vyhledávání pomocí Googlu
+		@href náš dotaz
 	-->
 	<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:with-param name="url" select="
+				concat(
+					'https://encrypted.google.com/search?q=', 
+					encode-for-uri(@href)
+				)"/>
 		</xsl:call-template>	
 	</xsl:template>
 	
@@ -81,10 +108,15 @@
 		Request for comments
 		********************
 		Internetové standardy – RFC
+		@href číslo RFCčka
 	-->
 	<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:with-param name="url" select="
+				concat(
+					'https://tools.ietf.org/html/rfc',
+					@href
+				)"/>
 		</xsl:call-template>
 	</xsl:template>
 	
@@ -95,7 +127,7 @@
 			<xsl:copy-of select="@*"/>
 			<xsl:attribute name="href"><xsl:value-of select="$url"/></xsl:attribute>
 			<xsl:apply-templates/>
-		</a>		
+		</a>
 	</xsl:template>
 
 </xsl:stylesheet>