Zvýrazňování syntaxe: zdroják nemusí být vložen uvnitř značky <m:pre/>, ale může být v souboru určeném atributem src="název-souboru".
authorFrantišek Kučera <franta-hg@frantovo.cz>
Sat, 31 Dec 2011 17:52:21 +0100
changeset 40487f13126b62
parent 39 58921872e53b
child 41 035e690ce9c6
Zvýrazňování syntaxe: zdroják nemusí být vložen uvnitř značky <m:pre/>, ale může být v souboru určeném atributem src="název-souboru".
.hgignore
vstup/matrixový-spořič.sh
vstup/zdrojáky.xml
šablona/funkce/src/cz/frantovo/xmlWebGenerator/Funkce.java
šablona/stránka.xsl
     1.1 --- a/.hgignore	Tue Sep 13 18:57:24 2011 +0200
     1.2 +++ b/.hgignore	Sat Dec 31 17:52:21 2011 +0100
     1.3 @@ -3,3 +3,4 @@
     1.4  šablona/funkce/build/*
     1.5  vstup/.seznam.xml
     1.6  analýza/princip.png
     1.7 +nbproject/private
     2.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     2.2 +++ b/vstup/matrixový-spořič.sh	Sat Dec 31 17:52:21 2011 +0100
     2.3 @@ -0,0 +1,16 @@
     2.4 +#!/bin/bash
     2.5 +# Matrixový spořič :-)
     2.6 +
     2.7 +case "$1" in
     2.8 +    start)
     2.9 +        echo -e "\033[22;32m";
    2.10 +        cat /dev/urandom | hexdump;
    2.11 +;;
    2.12 +    stop)
    2.13 +        echo -e "\033[0m";
    2.14 +;;
    2.15 +    *)
    2.16 +        $0 start;
    2.17 +;;
    2.18 +esac
    2.19 +
     3.1 --- a/vstup/zdrojáky.xml	Tue Sep 13 18:57:24 2011 +0200
     3.2 +++ b/vstup/zdrojáky.xml	Sat Dec 31 17:52:21 2011 +0100
     3.3 @@ -53,21 +53,7 @@
     3.4  
     3.5  		<h2>BASH</h2>
     3.6  		
     3.7 -		<m:pre jazyk="bash">#!/bin/bash
     3.8 -# Matrixový spořič :-)
     3.9 -
    3.10 -case "$1" in
    3.11 -    start)
    3.12 -        echo -e "\033[22;32m";
    3.13 -        cat /dev/urandom | hexdump;
    3.14 -;;
    3.15 -    stop)
    3.16 -        echo -e "\033[0m";
    3.17 -;;
    3.18 -    *)
    3.19 -        $0 start;
    3.20 -;;
    3.21 -esac</m:pre>
    3.22 +		<m:pre jazyk="bash" src="matrixový-spořič.sh"/>
    3.23  
    3.24  		<h2>Chyby</h2>
    3.25  		
     4.1 --- a/šablona/funkce/src/cz/frantovo/xmlWebGenerator/Funkce.java	Tue Sep 13 18:57:24 2011 +0200
     4.2 +++ b/šablona/funkce/src/cz/frantovo/xmlWebGenerator/Funkce.java	Sat Dec 31 17:52:21 2011 +0100
     4.3 @@ -1,6 +1,7 @@
     4.4  package cz.frantovo.xmlWebGenerator;
     4.5  
     4.6  import java.io.File;
     4.7 +import java.io.FileInputStream;
     4.8  import java.io.IOException;
     4.9  import java.io.PrintStream;
    4.10  import java.util.Date;
    4.11 @@ -22,6 +23,7 @@
    4.12  	private static final String PŘÍKAZ_PYGMENTIZE = "pygmentize";
    4.13  	private static final String PŘÍKAZ_DOT = "dot";
    4.14  	private static final String PŘÍKAZ_MARKDOWN = "markdown";
    4.15 +	private static final String ADRESÁŘ_VSTUPNÍ = "vstup";
    4.16  	private static final String ADRESÁŘ_VÝSTUPNÍ = "výstup";
    4.17  	private static int počítadloDiagramů = 0;
    4.18  
    4.19 @@ -80,6 +82,17 @@
    4.20  	}
    4.21  
    4.22  	/**
    4.23 +	 * TODO: prohodit volání mezi zvýrazniSyntaxiSouboru() a zvýrazniSyntaxi(), 
    4.24 +	 * aby se nepřeváděl proud na text a pak zase na proud.
    4.25 +	 * 
    4.26 +	 * @param src cesta k souboru, jehož obsah se má zvýraznit a vložit
    4.27 +	 */
    4.28 +	public static String zvýrazniSyntaxiSouboru(String src, String jazyk) throws IOException, InterruptedException {
    4.29 +		String zdroják = načtiProud(new FileInputStream(new File(ADRESÁŘ_VSTUPNÍ, src)));
    4.30 +		return zvýrazniSyntaxi(zdroják, jazyk);
    4.31 +	}
    4.32 +
    4.33 +	/**
    4.34  	 * Vygeneruje CSS styl pro zvýrazňování syntaxe.
    4.35  	 * @return obsah CSS souboru nebo null, pokud generování nebylo možné
    4.36  	 */
     5.1 --- a/šablona/stránka.xsl	Tue Sep 13 18:57:24 2011 +0200
     5.2 +++ b/šablona/stránka.xsl	Sat Dec 31 17:52:21 2011 +0100
     5.3 @@ -123,7 +123,19 @@
     5.4      	Makro pro zvýraznění syntaxe:
     5.5      -->    
     5.6      <xsl:template match="m:pre">
     5.7 -    	<xsl:variable name="zvýrazněnýText" select="j:zvýrazniSyntaxi(text(), @jazyk)"/>
     5.8 +    	<xsl:call-template name="vypišPre">
     5.9 +    		<xsl:with-param name="zvýrazněnýText" select="j:zvýrazniSyntaxi(text(), @jazyk)"/>
    5.10 +    	</xsl:call-template>
    5.11 +    </xsl:template>
    5.12 +    
    5.13 +    <xsl:template match="m:pre[@src]">
    5.14 +    	<xsl:call-template name="vypišPre">
    5.15 +    		<xsl:with-param name="zvýrazněnýText" select="j:zvýrazniSyntaxiSouboru(@src, @jazyk)"/>
    5.16 +    	</xsl:call-template>
    5.17 +    </xsl:template>
    5.18 +    
    5.19 +    <xsl:template name="vypišPre">
    5.20 +    	<xsl:param name="zvýrazněnýText"/>
    5.21      	<xsl:choose>
    5.22      		<xsl:when test="$zvýrazněnýText">
    5.23      			<xsl:comment>Následující kód je v jazyce <xsl:value-of select="@jazyk"/></xsl:comment>