#20 Skriptování: kód ke zvýraznění syntaxe generovaný skriptem
authorFrantišek Kučera <franta-hg@frantovo.cz>
Fri Jul 06 13:41:35 2012 +0200 (2012-07-06)
changeset 1127d4b23ccf144
parent 111 d59023a42d4b
child 113 18bf0044f5ab
#20 Skriptování: kód ke zvýraznění syntaxe generovaný skriptem
vstup/skriptování.xml
vstup/zdrojáky.xml
šablona/funkce/src/cz/frantovo/xmlWebGenerator/Xmlns.java
šablona/makra/zvýraznění-syntaxe.xsl
     1.1 --- a/vstup/skriptování.xml	Thu Jul 05 23:31:49 2012 +0200
     1.2 +++ b/vstup/skriptování.xml	Fri Jul 06 13:41:35 2012 +0200
     1.3 @@ -286,6 +286,13 @@
     1.4  			Někdy se ale může hodit ve skriptu nastavovat atributy elementů nebo elementy vytvářet dynamicky.
     1.5  		</p>
     1.6  
     1.7 +		<p>
     1.8 +			Skriptování lze použít i pro generování zdrojového kódu, který bude následně zvýrazněn
     1.9 +			pomocí značky <code>&lt;m:pre jazyk="…"/&gt;</code>.
    1.10 +			Toho využíváme na stránce <m:a href="zdrojáky">Zdrojové kódy</m:a> v případě SQL a XML ukázek.
    1.11 +			Skript můžeme použít mj. i ke zkrácení zdrojáku – když chceme vypsat jen jeho relevantní část.
    1.12 +		</p>
    1.13 +
    1.14  	</text>
    1.15  
    1.16  </stránka>
     2.1 --- a/vstup/zdrojáky.xml	Thu Jul 05 23:31:49 2012 +0200
     2.2 +++ b/vstup/zdrojáky.xml	Fri Jul 06 13:41:35 2012 +0200
     2.3 @@ -41,16 +41,26 @@
     2.4  
     2.5  		<h2>Java</h2>
     2.6  
     2.7 -		<m:pre jazyk="java">public class Pokus {
     2.8 -	// komentář
     2.9 -	// &lt;JavaRulezz/&gt;
    2.10 -}</m:pre>
    2.11 +		<m:pre jazyk="java" src="../šablona/funkce/src/cz/frantovo/xmlWebGenerator/Xmlns.java"/>
    2.12  
    2.13  		<h2>XML</h2>
    2.14  
    2.15 -		<m:pre jazyk="xml"><![CDATA[<xmlDokument>
    2.16 -	<element1>toto je <strong>pěkné</strong> XML!!!</element1>
    2.17 -</xmlDokument>]]></m:pre>
    2.18 +		<p>
    2.19 +			Zdroják aktuální stránky – <abbr title="diakritika byla odstraněna, protože v Pygmentize je chyba – neumí značky s diakritikou, přestože to je platné XML">upravený</abbr> a zkrácený pomocí <m:a href="skriptování">skriptu</m:a>:
    2.20 +		</p>
    2.21 +		<m:pre jazyk="xml"><m:skript jazyk="bash">
    2.22 +# V zvýrazňovači Pygmentize je chyba: nepodporuje znaky s diakritikou, přestože v daném jazyce můžou být.
    2.23 +# TODO: opravit to tam (zřejmě špatný regulární výraz).
    2.24 +
    2.25 +cat $XWG_STRANKA_SOUBOR | iconv -t ASCII//TRANSLIT -f UTF-8 | head -n 8;
    2.26 +echo -e "\t\t… zkráceno …";
    2.27 +cat $XWG_STRANKA_SOUBOR | iconv -t ASCII//TRANSLIT -f UTF-8 | tail -n 4;
    2.28 +
    2.29 +# Případně:
    2.30 +# cat $XWG_STRANKA_SOUBOR | sed s/á/a/g | sed s/ř/r/g | sed s/í/i/g | head -n 8;
    2.31 +# echo -e "\t\t… zkráceno …";
    2.32 +# cat $XWG_STRANKA_SOUBOR | sed s/á/a/g | sed s/ř/r/g | sed s/í/i/g | tail -n 4;
    2.33 +		</m:skript></m:pre>
    2.34  
    2.35  		<p>Další ukázka XML: <m:a href="šablona/makra/tabulka.xsl" typ="zdroják" řádek="25">tabulka.xsl</m:a>.</p>
    2.36  
    2.37 @@ -58,6 +68,22 @@
    2.38  
    2.39  		<m:pre jazyk="bash" src="matrixový-spořič.sh" odkaz="ano"/>
    2.40  
    2.41 +		<h2>SQL</h2>
    2.42 +
    2.43 +		<p>
    2.44 +			Tento SQL kód není zapsán přímo ve stránce, ale byl vygenerován pomocí <m:a href="skriptování">skriptu</m:a>,
    2.45 +			a poté zvýrazněn.
    2.46 +		</p>
    2.47 +
    2.48 +		<m:pre jazyk="sql"><m:skript jazyk="perl"><![CDATA[
    2.49 +use strict;
    2.50 +use warnings;
    2.51 +
    2.52 +for (my $i = 0; $i < 10; $i++) {
    2.53 +	print "INSERT INTO tabulka VALUES ('abc $i', 'def ". $i*($i+1) . "', " . 2**$i . ");\n";
    2.54 +}
    2.55 +		]]></m:skript></m:pre>
    2.56 +
    2.57  		<h2>Chyby</h2>
    2.58  
    2.59  		<p>Následující ukázky kódu nebudou zvýrazněné:</p>
     3.1 --- a/šablona/funkce/src/cz/frantovo/xmlWebGenerator/Xmlns.java	Thu Jul 05 23:31:49 2012 +0200
     3.2 +++ b/šablona/funkce/src/cz/frantovo/xmlWebGenerator/Xmlns.java	Fri Jul 06 13:41:35 2012 +0200
     3.3 @@ -8,7 +8,8 @@
     3.4  public class Xmlns {
     3.5  
     3.6  	public static final String XHTML = "http://www.w3.org/1999/xhtml";
     3.7 -	public static final String MAKRO = "https://trac.frantovo.cz/xml-web-generator/wiki/xmlns/makro";
     3.8 +	public static final String MAKRO =
     3.9 +			"https://trac.frantovo.cz/xml-web-generator/wiki/xmlns/makro";
    3.10  
    3.11  	private Xmlns() {
    3.12  	}
     4.1 --- a/šablona/makra/zvýraznění-syntaxe.xsl	Thu Jul 05 23:31:49 2012 +0200
     4.2 +++ b/šablona/makra/zvýraznění-syntaxe.xsl	Fri Jul 06 13:41:35 2012 +0200
     4.3 @@ -33,8 +33,11 @@
     4.4  		@odkaz nastavíme hodnotu „ano“, pokud chceme vložit odkaz na soubor je stažení
     4.5  	-->
     4.6  	<xsl:template match="m:pre">
     4.7 +		<xsl:variable name="zadání">
     4.8 +			<xsl:apply-templates select="*|text()"/>
     4.9 +		</xsl:variable>
    4.10  		<xsl:call-template name="zvýrazniZdroják">
    4.11 -			<xsl:with-param name="zdroják" select="text()"/>
    4.12 +			<xsl:with-param name="zdroják" select="$zadání/text()"/>
    4.13  		</xsl:call-template>
    4.14  	</xsl:template>
    4.15