Zvýrazňování syntaxe #12: zdrojáky ze souborů budeme načítat už v XSLT ne až v Javě.
--- a/vstup/matrixový-spořič.sh Sat Dec 31 18:55:19 2011 +0100
+++ b/vstup/matrixový-spořič.sh Thu Jan 05 11:01:25 2012 +0100
@@ -13,4 +13,3 @@
$0 start;
;;
esac
-
--- a/šablona/funkce/src/cz/frantovo/xmlWebGenerator/Funkce.java Sat Dec 31 18:55:19 2011 +0100
+++ b/šablona/funkce/src/cz/frantovo/xmlWebGenerator/Funkce.java Thu Jan 05 11:01:25 2012 +0100
@@ -82,17 +82,6 @@
}
/**
- * TODO: prohodit volání mezi zvýrazniSyntaxiSouboru() a zvýrazniSyntaxi(),
- * aby se nepřeváděl proud na text a pak zase na proud.
- *
- * @param src cesta k souboru, jehož obsah se má zvýraznit a vložit
- */
- public static String zvýrazniSyntaxiSouboru(String src, String jazyk) throws IOException, InterruptedException {
- String zdroják = načtiProud(new FileInputStream(new File(ADRESÁŘ_VSTUPNÍ, src)));
- return zvýrazniSyntaxi(zdroják, jazyk);
- }
-
- /**
* Vygeneruje CSS styl pro zvýrazňování syntaxe.
* @return obsah CSS souboru nebo null, pokud generování nebylo možné
*/
--- a/šablona/stránka.xsl Sat Dec 31 18:55:19 2011 +0100
+++ b/šablona/stránka.xsl Thu Jan 05 11:01:25 2012 +0100
@@ -123,34 +123,35 @@
Makro pro zvýraznění syntaxe:
-->
<xsl:template match="m:pre">
- <xsl:call-template name="vypišPre">
- <xsl:with-param name="zvýrazněnýText" select="j:zvýrazniSyntaxi(text(), @jazyk)"/>
+ <xsl:call-template name="zvýrazniZdroják">
+ <xsl:with-param name="zdroják" select="text()"/>
</xsl:call-template>
</xsl:template>
<xsl:template match="m:pre[@src]">
- <xsl:call-template name="vypišPre">
- <xsl:with-param name="zvýrazněnýText" select="j:zvýrazniSyntaxiSouboru(@src, @jazyk)"/>
+ <xsl:call-template name="zvýrazniZdroják">
+ <xsl:with-param name="zdroják" select="unparsed-text(concat($vstup, @src))"/>
</xsl:call-template>
- <xsl:if test="@odkaz = 'ano'">
- <p class="zdroják-ke-stažení">
- <span>Stáhnout: <a href="{encode-for-uri(@src)}"><xsl:value-of select="@src"/></a></span>
- </p>
- </xsl:if>
+ <xsl:if test="@odkaz = 'ano'">
+ <p class="zdroják-ke-stažení">
+ <span>Stáhnout: <a href="{encode-for-uri(@src)}"><xsl:value-of select="@src"/></a></span>
+ </p>
+ </xsl:if>
</xsl:template>
- <xsl:template name="vypišPre">
- <xsl:param name="zvýrazněnýText"/>
+ <xsl:template name="zvýrazniZdroják">
+ <xsl:param name="zdroják"/>
+ <xsl:variable name="zvýrazněnýZdroják" select="j:zvýrazniSyntaxi($zdroják, @jazyk)"/>
<xsl:choose>
- <xsl:when test="$zvýrazněnýText">
+ <xsl:when test="$zvýrazněnýZdroják">
<xsl:comment>Následující kód je v jazyce <xsl:value-of select="@jazyk"/></xsl:comment>
- <xsl:value-of disable-output-escaping="yes" select="$zvýrazněnýText"/>
+ <xsl:value-of disable-output-escaping="yes" select="$zvýrazněnýZdroják"/>
</xsl:when>
<xsl:otherwise>
<xsl:message>Zvýraznění syntaxe se nezdařilo → bude vložen původní nezvýrazněný kód.</xsl:message>
- <pre><xsl:apply-templates/></pre>
+ <pre><xsl:value-of select="$zdroják"/></pre>
</xsl:otherwise>
- </xsl:choose>
+ </xsl:choose>
</xsl:template>
<!--