--- a/vstup/skriptování.xml Fri Jul 06 13:41:35 2012 +0200
+++ b/vstup/skriptování.xml Fri Jul 06 14:52:05 2012 +0200
@@ -145,7 +145,7 @@
echo "Perex: $XWG_STRANKA_PEREX";
]]></m:skript></pre>
- <h2 id="makraVeSkriptech">Makra ve skriptech</h2>
+ <h2 id="makraZeSkriptů">Makra ze skriptů</h2>
<p>
XML generované skriptem může také obsahovat makra, která se následně interptetují.
<m:skript jazyk="bash" výstup="xhtml"><![CDATA[
@@ -214,9 +214,38 @@
Známá chyba: ve skriptech zatím nefungují poznámky pod čarou (a není jisté, jestli kdy fungovat budou – pravděpodobně by to vyžadovalo vícefázové zpracování).
</p>
+ <h2>Makra ve skriptech</h2>
+
+ <p>
+ Uvnitř zdrojového kódu skriptu můžeme používat jiná makra.
+ Např. tento kód:
+ </p>
+
+ <m:pre jazyk="xml"><![CDATA[<pre>
+ <m:skript jazyk="bash">
+ echo "Náš podnik se jmenuje <m:firma/>";
+ </m:skript>
+</pre>]]></m:pre>
+
+ <p>
+ nám vygeneruje:
+ </p>
+
+ <pre><m:skript jazyk="bash">
+ echo "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).
+ </p>
+
<h2>Skripty v makrech</h2>
<p>
- Uvnitř maker můžeme volat<m:podČarou>
+ Uvnitř definic maker můžeme volat<m:podČarou>
Ovšem trochu jiným způsobem, než ve stránkách –
nacházíme se totiž v <em>programu</em> (XSL šablona definující makro)
nikoli v <em>datovém souboru</em> (XML stránka).
@@ -281,7 +310,7 @@
-->
<p>
- Podobně bychom mohli postupovat i u <a href="#makraVeSkriptech">diagramu</a> –
+ Podobně bychom mohli postupovat i u <a href="#makraZeSkriptů">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>