Zvýrazňování syntaxe #12: zdrojáky ze souborů budeme načítat už v XSLT ne až v Javě.
authorFrantišek Kučera <franta-hg@frantovo.cz>
Thu, 05 Jan 2012 11:01:25 +0100
changeset 434a4364826e59
parent 42 be907afcf4f6
child 44 5a556e708f75
Zvýrazňování syntaxe #12: zdrojáky ze souborů budeme načítat už v XSLT ne až v Javě.
vstup/matrixový-spořič.sh
šablona/funkce/src/cz/frantovo/xmlWebGenerator/Funkce.java
šablona/stránka.xsl
     1.1 --- a/vstup/matrixový-spořič.sh	Sat Dec 31 18:55:19 2011 +0100
     1.2 +++ b/vstup/matrixový-spořič.sh	Thu Jan 05 11:01:25 2012 +0100
     1.3 @@ -13,4 +13,3 @@
     1.4          $0 start;
     1.5  ;;
     1.6  esac
     1.7 -
     2.1 --- a/šablona/funkce/src/cz/frantovo/xmlWebGenerator/Funkce.java	Sat Dec 31 18:55:19 2011 +0100
     2.2 +++ b/šablona/funkce/src/cz/frantovo/xmlWebGenerator/Funkce.java	Thu Jan 05 11:01:25 2012 +0100
     2.3 @@ -82,17 +82,6 @@
     2.4  	}
     2.5  
     2.6  	/**
     2.7 -	 * TODO: prohodit volání mezi zvýrazniSyntaxiSouboru() a zvýrazniSyntaxi(), 
     2.8 -	 * aby se nepřeváděl proud na text a pak zase na proud.
     2.9 -	 * 
    2.10 -	 * @param src cesta k souboru, jehož obsah se má zvýraznit a vložit
    2.11 -	 */
    2.12 -	public static String zvýrazniSyntaxiSouboru(String src, String jazyk) throws IOException, InterruptedException {
    2.13 -		String zdroják = načtiProud(new FileInputStream(new File(ADRESÁŘ_VSTUPNÍ, src)));
    2.14 -		return zvýrazniSyntaxi(zdroják, jazyk);
    2.15 -	}
    2.16 -
    2.17 -	/**
    2.18  	 * Vygeneruje CSS styl pro zvýrazňování syntaxe.
    2.19  	 * @return obsah CSS souboru nebo null, pokud generování nebylo možné
    2.20  	 */
     3.1 --- a/šablona/stránka.xsl	Sat Dec 31 18:55:19 2011 +0100
     3.2 +++ b/šablona/stránka.xsl	Thu Jan 05 11:01:25 2012 +0100
     3.3 @@ -123,34 +123,35 @@
     3.4      	Makro pro zvýraznění syntaxe:
     3.5      -->    
     3.6      <xsl:template match="m:pre">
     3.7 -    	<xsl:call-template name="vypišPre">
     3.8 -    		<xsl:with-param name="zvýrazněnýText" select="j:zvýrazniSyntaxi(text(), @jazyk)"/>
     3.9 +    	<xsl:call-template name="zvýrazniZdroják">
    3.10 +    		<xsl:with-param name="zdroják" select="text()"/>
    3.11      	</xsl:call-template>
    3.12      </xsl:template>
    3.13      
    3.14      <xsl:template match="m:pre[@src]">
    3.15 -    	<xsl:call-template name="vypišPre">
    3.16 -    		<xsl:with-param name="zvýrazněnýText" select="j:zvýrazniSyntaxiSouboru(@src, @jazyk)"/>
    3.17 +    	<xsl:call-template name="zvýrazniZdroják">
    3.18 +    		<xsl:with-param name="zdroják" select="unparsed-text(concat($vstup, @src))"/>
    3.19      	</xsl:call-template>
    3.20 -    	<xsl:if test="@odkaz = 'ano'">
    3.21 -    		<p class="zdroják-ke-stažení">
    3.22 -    			<span>Stáhnout: <a href="{encode-for-uri(@src)}"><xsl:value-of select="@src"/></a></span>
    3.23 -    		</p>
    3.24 -    	</xsl:if>
    3.25 +		<xsl:if test="@odkaz = 'ano'">
    3.26 +			<p class="zdroják-ke-stažení">
    3.27 +				<span>Stáhnout: <a href="{encode-for-uri(@src)}"><xsl:value-of select="@src"/></a></span>
    3.28 +			</p>
    3.29 +		</xsl:if>
    3.30      </xsl:template>
    3.31      
    3.32 -    <xsl:template name="vypišPre">
    3.33 -    	<xsl:param name="zvýrazněnýText"/>
    3.34 +    <xsl:template name="zvýrazniZdroják">
    3.35 +    	<xsl:param name="zdroják"/>
    3.36 +    	<xsl:variable name="zvýrazněnýZdroják" select="j:zvýrazniSyntaxi($zdroják, @jazyk)"/>
    3.37      	<xsl:choose>
    3.38 -    		<xsl:when test="$zvýrazněnýText">
    3.39 +    		<xsl:when test="$zvýrazněnýZdroják">
    3.40      			<xsl:comment>Následující kód je v jazyce <xsl:value-of select="@jazyk"/></xsl:comment>
    3.41 -    			<xsl:value-of disable-output-escaping="yes" select="$zvýrazněnýText"/>		
    3.42 +    			<xsl:value-of disable-output-escaping="yes" select="$zvýrazněnýZdroják"/>
    3.43      		</xsl:when>
    3.44      		<xsl:otherwise>
    3.45      			<xsl:message>Zvýraznění syntaxe se nezdařilo → bude vložen původní nezvýrazněný kód.</xsl:message>
    3.46 -    			<pre><xsl:apply-templates/></pre>
    3.47 +    			<pre><xsl:value-of select="$zdroják"/></pre>
    3.48      		</xsl:otherwise>
    3.49 -    	</xsl:choose>
    3.50 +    	</xsl:choose>    	
    3.51      </xsl:template>
    3.52      
    3.53      <!--