Index: vstup/skriptování.xml
===================================================================
--- vstup/skriptování.xml	(revision 110:d43098fac783)
+++ vstup/skriptování.xml	(revision 111:d59023a42d4b)
@@ -75,5 +75,5 @@
 use warnings;
 
-open(XML, "<", $ENV{"XWG_STRANKA_SOUBOR"});
+open(XML, "<", $ENV{"XWG_STRANKA_SOUBOR"}) or die $!;
 my %skripty;
 
@@ -89,5 +89,5 @@
 			]]></m:skript></pre>
 
-			<h3>BASH – ukázka</h3>
+		<h3>BASH – ukázka</h3>
 		<pre><m:skript jazyk="bash"><![CDATA[
 echo -n "Právě je: ";
@@ -146,5 +146,5 @@
 		]]></m:skript></pre>
 
-		<h2>Makra ve skriptech</h2>
+		<h2 id="makraVeSkriptech">Makra ve skriptech</h2>
 		<p>
 			XML generované skriptem může také obsahovat makra, která se následně interptetují.
@@ -223,5 +223,6 @@
 			</m:podČarou>
 			jiná makra – mj. skripty.
-			Toho jsme využili v makru, které generuje tabulku verzí z mercurialu:
+			Toho jsme využili v makru, které generuje tabulku verzí z mercurialu
+			– ten umí vypsat historii úložiště v XML, které následně snadno zpracujeme v XSLT.
 		</p>
 
@@ -232,4 +233,58 @@
 		</p>
 
+		<h2>Vnořování maker</h2>
+		<p>
+			Trochu jiný případ je vnořování maker na stránce.
+			Např. si chceme vypsat vybrané internetové služby:
+		</p>
+		<m:tabulka>
+			<m:skript jazyk="perl"><![CDATA[
+use strict;
+use warnings;
+
+print "Port\tSlužba\tProtokol\n";
+open(S, "<", "/etc/services") or die $!;
+while (<S>) {
+	if (/(\w+)\s+(21|22|25|80)\/(tcp)/) {
+		print "$2\t$1\t$3\n";
+	}
+}
+			]]></m:skript>
+		</m:tabulka>
+		
+		<p>
+			Pro vygenerování použijeme dvě makra – tabulku a skript – která vložíme do textu stránky:
+		</p>
+		
+		<m:pre jazyk="xml"><![CDATA[
+<m:tabulka>
+	<m:skript jazyk="perl"><![CDATA[
+		print "Port\tSlužba\tProtokol\n";
+		open(S, "<", "/etc/services") or die $!;
+		while (<S>) {
+			if (/(\w+)\s+(21|22|25|80)\/(tcp)/) {
+				print "$2\t$1\t$3\n";
+			}
+		}
+	]]]]>&gt;<![CDATA[</m:skript>
+</m:tabulka>]]></m:pre>
+
+		<p>
+			Ve skriptu v tomto případě negenerujeme XHTML značky, ale CSV (s tabulátory)
+			a o převod na XHTML tabulku se postará XSL šablona.
+		</p>
+
+		<!--
+			Nebo to taky můžeme napsat na jeden řádek:
+			cat /etc/services | perl -ne 'if (/(\w+)\s+(21|22|25|80)\/(tcp)/) { print "$2\t$1\t$3\n";}'
+			a vložit do tabulky jako BASH skript :-)
+		-->
+
+		<p>
+			Podobně bychom mohli postupovat i u <a href="#makraVeSkriptech">diagramu</a> –
+			negenerovat skriptem značky makra, ale pouze jeho obsah – zadání diagramu, nebo jen jeho část.
+			Někdy se ale může hodit ve skriptu nastavovat atributy elementů nebo elementy vytvářet dynamicky.
+		</p>
+
 	</text>
 
Index: šablona/makra/diagramy.xsl
===================================================================
--- šablona/makra/diagramy.xsl	(revision 87:25dec6931f18)
+++ šablona/makra/diagramy.xsl	(revision 111:d59023a42d4b)
@@ -36,6 +36,9 @@
 	-->
 	<xsl:template match="m:diagram">
+		<xsl:variable name="zadání">
+			<xsl:apply-templates select="*|text()"/>
+		</xsl:variable>
 		<xsl:call-template name="vložDiagram">
-			<xsl:with-param name="zadání" select="text()"/>
+			<xsl:with-param name="zadání" select="$zadání"/>
 			<xsl:with-param name="kompletní" select="@kompletní = 'ano'"/>
 		</xsl:call-template>
Index: šablona/makra/tabulka.xsl
===================================================================
--- šablona/makra/tabulka.xsl	(revision 90:ae439159d833)
+++ šablona/makra/tabulka.xsl	(revision 111:d59023a42d4b)
@@ -40,4 +40,16 @@
 	</xsl:template>
 	
+	<!-- Skript je potřeba interpretovat ještě před tabulkou – ostatní makra budou interpretovat uvnitř buněk -->
+	<xsl:template match="m:tabulka[m:skript]">
+		<xsl:variable name="zadání">
+			<xsl:apply-templates select="*"/>
+		</xsl:variable>
+		<xsl:call-template name="vykresliTabulku">
+			<xsl:with-param name="zadání" select="$zadání"/>
+			<xsl:with-param name="oddělovač" select="(@oddělovač, '\t+')[1]"/>
+		</xsl:call-template>
+	</xsl:template>
+	
+	<!-- Tabulka načítaná ze souboru: -->
 	<xsl:template match="m:tabulka[@src]">
 		<xsl:call-template name="vykresliTabulku">
@@ -47,4 +59,5 @@
 	</xsl:template>
 	
+	<!-- TODO: Umožnit použití maker a značek uvnitř buněk tabulky. -->
 	<xsl:template name="vykresliTabulku">
 		<xsl:param name="zadání"/>
