#20 Skriptování: firma – pády (parametrizace makra) v0.4
authorFrantišek Kučera <franta-hg@frantovo.cz>
Fri, 06 Jul 2012 17:04:13 +0200
changeset 114 9302cf6856ea
parent 113 18bf0044f5ab
child 115 eb64393ed54e
#20 Skriptování: firma – pády (parametrizace makra)
vstup/makra/firma.xsl
vstup/skriptování.xml
--- a/vstup/makra/firma.xsl	Fri Jul 06 14:52:05 2012 +0200
+++ b/vstup/makra/firma.xsl	Fri Jul 06 17:04:13 2012 +0200
@@ -12,8 +12,14 @@
 	exclude-result-prefixes="fn h s k m xs">
 
 	<!-- Vypíše název naší firmy: -->
-	<xsl:template match="m:firma">
-		<xsl:text>Chovatelská stanice a.s.</xsl:text>
-	</xsl:template>
+	<xsl:template match="m:firma">Chovatelská stanice a.s.</xsl:template>
+	<xsl:template match="m:firma[@pád=1]">Chovatelská stanice a.s.</xsl:template>		<!-- nominativ -->
+	<xsl:template match="m:firma[@pád=2]">Chovatelské stanice a.s.</xsl:template>		<!-- genitiv -->
+	<xsl:template match="m:firma[@pád=3]">Chovatelské stanici a.s.</xsl:template>		<!-- dativ -->
+	<xsl:template match="m:firma[@pád=4]">Chovatelskou stanici a.s.</xsl:template>	<!-- akuzativ -->
+	<xsl:template match="m:firma[@pád=5]">Chovatelská stanice a.s.</xsl:template>		<!-- vokativ -->
+	<xsl:template match="m:firma[@pád=6]">Chovatelské stanice a.s.</xsl:template>		<!-- lokál -->
+	<xsl:template match="m:firma[@pád=7]">Chovatelskou stanicí a.s.</xsl:template>	<!-- instrumentál -->
 
 </xsl:stylesheet>
+
--- a/vstup/skriptování.xml	Fri Jul 06 14:52:05 2012 +0200
+++ b/vstup/skriptování.xml	Fri Jul 06 17:04:13 2012 +0200
@@ -222,8 +222,8 @@
 		</p>
 
 		<m:pre jazyk="xml"><![CDATA[<pre>
-	<m:skript jazyk="bash">
-		echo "Náš podnik se jmenuje <m:firma/>";
+	<m:skript jazyk="perl">
+		print "Náš podnik se jmenuje <m:firma/>";
 	</m:skript>
 </pre>]]></m:pre>
 
@@ -231,16 +231,46 @@
 			nám vygeneruje:
 		</p>
 
-		<pre><m:skript jazyk="bash">
-				echo "Náš podnik se jmenuje <m:firma/>";
+		<pre><m:skript jazyk="perl">
+				print "Náš podnik se jmenuje <m:firma/>";
 		</m:skript></pre>
 
 		<p>
 			Můžete si tak vytvořit makra pro opakující se části
-			a používat je jak v textu stránek, tak ve skriptech nebo diagramech.
-			Jen pozor na ošetření zvláštních znaků – pokud text takové znaky obsahuje,
-			je dobré ho zabalit ještě do jedné značky, která se postará o <em>escapování</em> 
-			pro daný kontext (skriptovací jazyk a prostředí v něm – např. apostrofy vs. uvozovky).
+			a používat je jak v textu stránek, tak ve skriptech nebo diagramech.<m:podČarou>
+				Jen pozor na ošetření zvláštních znaků – pokud text takové znaky obsahuje,
+				je dobré ho zabalit ještě do jedné značky, která se postará o <em>escapování</em> 
+				pro daný kontext (skriptovací jazyk a prostředí v něm – např. apostrofy vs. uvozovky).
+			</m:podČarou>
+		</p>
+		
+		<p>
+			Jen pro připomenutí: nejedná se o nějaké primitivní zástupky a nahrazování textu
+			– makra můžou být parametrizovaná, obsahovat atributy (např. pád a číslo) nebo vnořené elementy
+			a na základě této parametrizace vytvářet odlišný výstup, který je následně předán skriptu.
+		</p>
+		
+		<pre><m:skript jazyk="bash">
+			echo "S naší <m:firma pád="7"/> budete jistě spokojeni!";
+			echo "Stejně jako my jsme spokojeni s operačním systémem `uname -o`.";
+		</m:skript></pre>
+		
+		<p>
+			Zdrojový kód:
+		</p>
+		
+		<!-- Pozor: ve zvýrazňovači syntaxe Pygmentize je chyba – neumí diakritiku – správně je: pád="7" -->
+		<m:pre jazyk="xml"><![CDATA[<pre>
+	<m:skript jazyk="bash">
+		echo "S naší <m:firma pad="7"/> budete jistě spokojeni!";
+		echo "Stejně jako my jsme spokojeni s operačním systémem `uname -o`.";
+	</m:skript>
+</pre>]]></m:pre>
+
+		<p>
+			Skripty v těchto příkladech nejsou příliš užitečné, protože pouze vypisují text,
+			který by šlo vložit přímo do XML stránky
+			– předpokládá se, že ve svých skriptech budete dělat něco zajímavějšího :-)
 		</p>
 
 		<h2>Skripty v makrech</h2>