vstup/skriptování.xml
changeset 94 4b3ba32f613c
child 95 eea9c4713045
equal deleted inserted replaced
93:5b55827de220 94:4b3ba32f613c
       
     1 <stránka
       
     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>
       
     6 
       
     7 	<text xmlns="http://www.w3.org/1999/xhtml">
       
     8 	
       
     9 		<p>
       
    10 			Na stránkách můžeme používat skripty.
       
    11 			Spouští se při generování a jejich standardní výstup se vloží do stránky.
       
    12 			Třeba doprostřed ostavce nebo do jiného elementu.
       
    13 		</p>
       
    14 		<p>
       
    15 			Příklad:
       
    16 			Tyto stránky byly vygenerované v systému <m:skript jazyk="bash">uname -o</m:skript>.
       
    17 		</p>
       
    18 		
       
    19 		<p>
       
    20 			V současnosti jsou podporované tyto jazyky:
       
    21 		</p>
       
    22 		
       
    23 		<pre><m:skript jazyk="perl"><![CDATA[
       
    24 use strict;
       
    25 
       
    26 open(JAVA, "<", "šablona/funkce/src/cz/frantovo/xmlWebGenerator/makra/Skriptování.java") or die $!;
       
    27 
       
    28 while (<JAVA>) {
       
    29 #i.put("bash", "/bin/bash");
       
    30 	if (/podporovanýJazyk\.put\("(\w+)",\s*"(.*)"\);/) {
       
    31 		print "$1\n";
       
    32 	}
       
    33 }
       
    34 			]]></m:skript></pre>
       
    35 
       
    36 		<h2>Perl</h2>
       
    37 		<p>Jazyky použité nebo citované na této stránce:</p>
       
    38 		<pre><m:skript jazyk="perl"><![CDATA[
       
    39 use strict;
       
    40 
       
    41 open(XML, "<", $ENV{"XWG_STRANKA_SOUBOR"});
       
    42 my %skripty;
       
    43 
       
    44 while (<XML>) {
       
    45 	if (/m:skript\s+jazyk="(\w+)"/) {
       
    46 		$skripty{$1}++;
       
    47 	}
       
    48 }
       
    49 
       
    50 for(keys(%skripty)) {
       
    51 	print "$skripty{$_}×\t $_\n";
       
    52 }
       
    53 			]]></m:skript></pre>
       
    54 
       
    55 			<h2>BASH</h2>
       
    56 		<pre><m:skript jazyk="bash"><![CDATA[
       
    57 echo -n "Právě je: ";
       
    58 date;
       
    59 echo -n "Operační systém: ";
       
    60 uname -sir;
       
    61 echo -n "SHA-1 otisk zdrojáku této stránky: ";
       
    62 sha1sum < $XWG_STRANKA_SOUBOR;
       
    63 			]]></m:skript></pre>
       
    64 
       
    65 			<!--
       
    66 			<h2>PHP</h2>
       
    67 			<pre style="max-height: 200px;"><m:skript jazyk="php"><![CDATA[
       
    68 <?php
       
    69 phpinfo();
       
    70 ?>
       
    71 			]]></m:skript></pre>
       
    72 			-->
       
    73 
       
    74 			<h2>Proměnné prostředí</h2>
       
    75 			<p>
       
    76 				Ve skriptech máme dostupné následující proměnné prostředí:
       
    77 			</p>
       
    78 			
       
    79 			<ul>
       
    80 				<li><code>XWG_STRANKA_URI</code> – URI aktuálně zpracovávané stránky</li>
       
    81 				<li><code>XWG_STRANKA_SOUBOR</code> – absolutní cesta k souboru</li>
       
    82 				<li><code>XWG_STRANKA_NADPIS</code> – nadpis stránky</li>
       
    83 				<li><code>XWG_STRANKA_PEREX</code> – perex stránky</li>
       
    84 			</ul>
       
    85 			
       
    86 			<p>
       
    87 				Kód:
       
    88 			</p>
       
    89 			
       
    90 			<m:pre jazyk="xml"><![CDATA[<m:skript jazyk="bash">
       
    91 echo "URI:    $XWG_STRANKA_URI";
       
    92 echo "Soubor: $XWG_STRANKA_SOUBOR";
       
    93 echo "Nadpis: $XWG_STRANKA_NADPIS";
       
    94 echo "Perex:  $XWG_STRANKA_PEREX";
       
    95 </m:skript>]]></m:pre>
       
    96 			
       
    97 			<p>nám vypíše:</p>
       
    98 			
       
    99 			<pre><m:skript jazyk="bash"><![CDATA[
       
   100 echo "URI:    $XWG_STRANKA_URI" | sed s/\\/home\\/$USER/\\/home\\/xwg/g;
       
   101 echo "Soubor: $XWG_STRANKA_SOUBOR" | sed s/\\/home\\/$USER/\\/home\\/xwg/g;
       
   102 echo "Nadpis: $XWG_STRANKA_NADPIS";
       
   103 echo "Perex:  $XWG_STRANKA_PEREX";
       
   104 		]]></m:skript></pre>
       
   105 
       
   106 	</text>
       
   107 
       
   108 </stránka>
       
   109