vstup/skriptování.xml
changeset 113 18bf0044f5ab
parent 112 7d4b23ccf144
child 114 9302cf6856ea
equal deleted inserted replaced
112:7d4b23ccf144 113:18bf0044f5ab
   143 echo "Soubor: $XWG_STRANKA_SOUBOR" | sed s/\\/home\\/$USER/\\/home\\/xwg/g;
   143 echo "Soubor: $XWG_STRANKA_SOUBOR" | sed s/\\/home\\/$USER/\\/home\\/xwg/g;
   144 echo "Nadpis: $XWG_STRANKA_NADPIS";
   144 echo "Nadpis: $XWG_STRANKA_NADPIS";
   145 echo "Perex:  $XWG_STRANKA_PEREX";
   145 echo "Perex:  $XWG_STRANKA_PEREX";
   146 		]]></m:skript></pre>
   146 		]]></m:skript></pre>
   147 
   147 
   148 		<h2 id="makraVeSkriptech">Makra ve skriptech</h2>
   148 		<h2 id="makraZeSkriptů">Makra ze skriptů</h2>
   149 		<p>
   149 		<p>
   150 			XML generované skriptem může také obsahovat makra, která se následně interptetují.
   150 			XML generované skriptem může také obsahovat makra, která se následně interptetují.
   151 			<m:skript jazyk="bash" výstup="xhtml"><![CDATA[
   151 			<m:skript jazyk="bash" výstup="xhtml"><![CDATA[
   152 echo '<m:skript jazyk="bash">'; # Ty zrůdo! :-)
   152 echo '<m:skript jazyk="bash">'; # Ty zrůdo! :-)
   153 echo 'echo "Takže můžeš skriptovat, když skriptuješ,";';
   153 echo 'echo "Takže můžeš skriptovat, když skriptuješ,";';
   212 		</p>
   212 		</p>
   213 		<p>
   213 		<p>
   214 			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í).
   214 			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í).
   215 		</p>
   215 		</p>
   216 
   216 
       
   217 		<h2>Makra ve skriptech</h2>
       
   218 		
       
   219 		<p>
       
   220 			Uvnitř zdrojového kódu skriptu můžeme používat jiná makra.
       
   221 			Např. tento kód:
       
   222 		</p>
       
   223 
       
   224 		<m:pre jazyk="xml"><![CDATA[<pre>
       
   225 	<m:skript jazyk="bash">
       
   226 		echo "Náš podnik se jmenuje <m:firma/>";
       
   227 	</m:skript>
       
   228 </pre>]]></m:pre>
       
   229 
       
   230 		<p>
       
   231 			nám vygeneruje:
       
   232 		</p>
       
   233 
       
   234 		<pre><m:skript jazyk="bash">
       
   235 				echo "Náš podnik se jmenuje <m:firma/>";
       
   236 		</m:skript></pre>
       
   237 
       
   238 		<p>
       
   239 			Můžete si tak vytvořit makra pro opakující se části
       
   240 			a používat je jak v textu stránek, tak ve skriptech nebo diagramech.
       
   241 			Jen pozor na ošetření zvláštních znaků – pokud text takové znaky obsahuje,
       
   242 			je dobré ho zabalit ještě do jedné značky, která se postará o <em>escapování</em> 
       
   243 			pro daný kontext (skriptovací jazyk a prostředí v něm – např. apostrofy vs. uvozovky).
       
   244 		</p>
       
   245 
   217 		<h2>Skripty v makrech</h2>
   246 		<h2>Skripty v makrech</h2>
   218 		<p>
   247 		<p>
   219 			Uvnitř maker můžeme volat<m:podČarou>
   248 			Uvnitř definic maker můžeme volat<m:podČarou>
   220 				Ovšem trochu jiným způsobem, než ve stránkách –
   249 				Ovšem trochu jiným způsobem, než ve stránkách –
   221 				nacházíme se totiž v <em>programu</em> (XSL šablona definující makro)
   250 				nacházíme se totiž v <em>programu</em> (XSL šablona definující makro)
   222 				nikoli v <em>datovém souboru</em> (XML stránka).
   251 				nikoli v <em>datovém souboru</em> (XML stránka).
   223 			</m:podČarou>
   252 			</m:podČarou>
   224 			jiná makra – mj. skripty.
   253 			jiná makra – mj. skripty.
   279 			cat /etc/services | perl -ne 'if (/(\w+)\s+(21|22|25|80)\/(tcp)/) { print "$2\t$1\t$3\n";}'
   308 			cat /etc/services | perl -ne 'if (/(\w+)\s+(21|22|25|80)\/(tcp)/) { print "$2\t$1\t$3\n";}'
   280 			a vložit do tabulky jako BASH skript :-)
   309 			a vložit do tabulky jako BASH skript :-)
   281 		-->
   310 		-->
   282 
   311 
   283 		<p>
   312 		<p>
   284 			Podobně bychom mohli postupovat i u <a href="#makraVeSkriptech">diagramu</a> –
   313 			Podobně bychom mohli postupovat i u <a href="#makraZeSkriptů">diagramu</a> –
   285 			negenerovat skriptem značky makra, ale pouze jeho obsah – zadání diagramu, nebo jen jeho část.
   314 			negenerovat skriptem značky makra, ale pouze jeho obsah – zadání diagramu, nebo jen jeho část.
   286 			Někdy se ale může hodit ve skriptu nastavovat atributy elementů nebo elementy vytvářet dynamicky.
   315 			Někdy se ale může hodit ve skriptu nastavovat atributy elementů nebo elementy vytvářet dynamicky.
   287 		</p>
   316 		</p>
   288 
   317 
   289 		<p>
   318 		<p>