2 xmlns="https://trac.frantovo.cz/xml-web-generator/wiki/xmlns/strana"
3 xmlns:m="https://trac.frantovo.cz/xml-web-generator/wiki/xmlns/makro">
4 <nadpis>Skriptování</nadpis>
5 <perex>Na stránku můžeme vložit výstup skriptů.</perex>
8 <text xmlns="http://www.w3.org/1999/xhtml">
11 Na stránkách můžeme používat skripty.
12 Spouští se při generování a jejich standardní výstup se vloží do stránky.
13 Třeba doprostřed textu ostavce nebo do jiného elementu.
18 Tyto stránky byly vygenerované v systému
19 <span title="tento text pochází ze skriptu"><m:skript jazyk="bash">uname -o</m:skript></span>.
24 Díky skriptování můžeme stránky obohatit o prakticky libovolný obsah.
25 Tato funkce ale může být nebezpečná – pokud byste spustili generátor na stránkách,
26 které psal někdo nedůvěryhodný a vložil do nich škodlivý kód.
27 Proto je skriptování ve výchozím stavu vypnuté – je potřeba ho povolit v souboru <code>web.conf</code>.
30 <h2>Podporované jazyky</h2>
32 V současnosti jsou podporované tyto jazyky:
43 <m:skript jazyk="perl" výstup="xml"><![CDATA[
46 open(JAVA, "<", $ENV{"XWG_SKRIPTOVANI_JAVA"}) or die $!;
49 #i.put("bash", "/bin/bash");
50 if (/podporovanýJazyk\.put\("(\w+)",\s*"(.*)"\);/) {
51 print "<tr><td><code>$1</code></td><td><code>$2</code></td></tr>\n";
59 <p>Jazyky použité nebo citované na této stránce:</p>
61 Lepšího výsledku bychom samozřejmě dosáhli pomocí XPath dotazu,
62 ale toto je příklad na Perl :-)
64 <pre><m:skript jazyk="perl"><![CDATA[
67 open(XML, "<", $ENV{"XWG_STRANKA_SOUBOR"});
71 if (/m:skript\s+jazyk="(\w+)"/) {
77 print "$skripty{$_}×\t $_\n";
82 <pre><m:skript jazyk="bash"><![CDATA[
85 echo -n "Operační systém: ";
87 echo -n "SHA-1 otisk zdrojáku této stránky: ";
88 sha1sum "$XWG_STRANKA_SOUBOR" | cut -f 1 -d " ";
93 <pre style="max-height: 200px;"><m:skript jazyk="php"><![CDATA[
100 <h2>Proměnné prostředí</h2>
102 Ve skriptech máme dostupné následující proměnné prostředí:
113 <m:skript jazyk="perl" výstup="xml"><![CDATA[
116 open(JAVA, "<", $ENV{"XWG_SKRIPTOVANI_JAVA"}) or die $!;
119 #i.put("bash", "/bin/bash");
120 if (/"(.*)=".*\/\/\s+env:(.*)/) {
121 print "<tr><td><code>$1</code></td><td>$2</td></tr>\n";
132 <m:pre jazyk="xml"><![CDATA[<m:skript jazyk="bash">
133 echo "URI: $XWG_STRANKA_URI";
134 echo "Soubor: $XWG_STRANKA_SOUBOR";
135 echo "Nadpis: $XWG_STRANKA_NADPIS";
136 echo "Perex: $XWG_STRANKA_PEREX";
137 </m:skript>]]></m:pre>
141 <pre><m:skript jazyk="bash"><![CDATA[
142 echo "URI: $XWG_STRANKA_URI" | 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";
145 echo "Perex: $XWG_STRANKA_PEREX";