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".
--- a/.hgignore Tue Sep 13 18:57:24 2011 +0200
+++ b/.hgignore Sat Dec 31 17:52:21 2011 +0100
@@ -3,3 +3,4 @@
šablona/funkce/build/*
vstup/.seznam.xml
analýza/princip.png
+nbproject/private
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/vstup/matrixový-spořič.sh Sat Dec 31 17:52:21 2011 +0100
@@ -0,0 +1,16 @@
+#!/bin/bash
+# Matrixový spořič :-)
+
+case "$1" in
+ start)
+ echo -e "\033[22;32m";
+ cat /dev/urandom | hexdump;
+;;
+ stop)
+ echo -e "\033[0m";
+;;
+ *)
+ $0 start;
+;;
+esac
+
--- a/vstup/zdrojáky.xml Tue Sep 13 18:57:24 2011 +0200
+++ b/vstup/zdrojáky.xml Sat Dec 31 17:52:21 2011 +0100
@@ -53,21 +53,7 @@
<h2>BASH</h2>
- <m:pre jazyk="bash">#!/bin/bash
-# Matrixový spořič :-)
-
-case "$1" in
- start)
- echo -e "\033[22;32m";
- cat /dev/urandom | hexdump;
-;;
- stop)
- echo -e "\033[0m";
-;;
- *)
- $0 start;
-;;
-esac</m:pre>
+ <m:pre jazyk="bash" src="matrixový-spořič.sh"/>
<h2>Chyby</h2>
--- a/šablona/funkce/src/cz/frantovo/xmlWebGenerator/Funkce.java Tue Sep 13 18:57:24 2011 +0200
+++ b/šablona/funkce/src/cz/frantovo/xmlWebGenerator/Funkce.java Sat Dec 31 17:52:21 2011 +0100
@@ -1,6 +1,7 @@
package cz.frantovo.xmlWebGenerator;
import java.io.File;
+import java.io.FileInputStream;
import java.io.IOException;
import java.io.PrintStream;
import java.util.Date;
@@ -22,6 +23,7 @@
private static final String PŘÍKAZ_PYGMENTIZE = "pygmentize";
private static final String PŘÍKAZ_DOT = "dot";
private static final String PŘÍKAZ_MARKDOWN = "markdown";
+ private static final String ADRESÁŘ_VSTUPNÍ = "vstup";
private static final String ADRESÁŘ_VÝSTUPNÍ = "výstup";
private static int počítadloDiagramů = 0;
@@ -80,6 +82,17 @@
}
/**
+ * 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 Tue Sep 13 18:57:24 2011 +0200
+++ b/šablona/stránka.xsl Sat Dec 31 17:52:21 2011 +0100
@@ -123,7 +123,19 @@
Makro pro zvýraznění syntaxe:
-->
<xsl:template match="m:pre">
- <xsl:variable name="zvýrazněnýText" select="j:zvýrazniSyntaxi(text(), @jazyk)"/>
+ <xsl:call-template name="vypišPre">
+ <xsl:with-param name="zvýrazněnýText" select="j:zvýrazniSyntaxi(text(), @jazyk)"/>
+ </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>
+ </xsl:template>
+
+ <xsl:template name="vypišPre">
+ <xsl:param name="zvýrazněnýText"/>
<xsl:choose>
<xsl:when test="$zvýrazněnýText">
<xsl:comment>Následující kód je v jazyce <xsl:value-of select="@jazyk"/></xsl:comment>