Changeset 43:4a4364826e59

Show
Ignore:
Timestamp:
01/05/12 11:01:25 (13 years ago)
Author:
František Kučera <franta-hg@…>
Branch:
default
Message:

Zvýrazňování syntaxe #12: zdrojáky ze souborů budeme načítat už v XSLT ne až v Javě.

Files:
3 modified

Legend:

Unmodified
Added
Removed
  • vstup/matrixový-spořič.sh

    r40 r43  
    1414;; 
    1515esac 
    16  
  • šablona/funkce/src/cz/frantovo/xmlWebGenerator/Funkce.java

    r40 r43  
    8080                        return null; 
    8181                } 
    82         } 
    83  
    84         /** 
    85          * TODO: prohodit volání mezi zvýrazniSyntaxiSouboru() a zvýrazniSyntaxi(),  
    86          * aby se nepřeváděl proud na text a pak zase na proud. 
    87          *  
    88          * @param src cesta k souboru, jehož obsah se má zvýraznit a vložit 
    89          */ 
    90         public static String zvýrazniSyntaxiSouboru(String src, String jazyk) throws IOException, InterruptedException { 
    91                 String zdroják = načtiProud(new FileInputStream(new File(ADRESÁŘ_VSTUPNÍ, src))); 
    92                 return zvýrazniSyntaxi(zdroják, jazyk); 
    9382        } 
    9483 
  • šablona/stránka.xsl

    r41 r43  
    124124    -->     
    125125    <xsl:template match="m:pre"> 
    126         <xsl:call-template name="vypišPre"> 
    127                 <xsl:with-param name="zvýrazněnýText" select="j:zvýrazniSyntaxi(text(), @jazyk)"/> 
     126        <xsl:call-template name="zvýrazniZdroják"> 
     127                <xsl:with-param name="zdroják" select="text()"/> 
    128128        </xsl:call-template> 
    129129    </xsl:template> 
    130130     
    131131    <xsl:template match="m:pre[@src]"> 
    132         <xsl:call-template name="vypišPre"> 
    133                 <xsl:with-param name="zvýrazněnýText" select="j:zvýrazniSyntaxiSouboru(@src, @jazyk)"/> 
     132        <xsl:call-template name="zvýrazniZdroják"> 
     133                <xsl:with-param name="zdroják" select="unparsed-text(concat($vstup, @src))"/> 
    134134        </xsl:call-template> 
    135         <xsl:if test="@odkaz = 'ano'"> 
    136                 <p class="zdroják-ke-stažení"> 
    137                         <span>Stáhnout: <a href="{encode-for-uri(@src)}"><xsl:value-of select="@src"/></a></span> 
    138                 </p> 
    139         </xsl:if> 
    140     </xsl:template> 
    141      
    142     <xsl:template name="vypišPre"> 
    143         <xsl:param name="zvýrazněnýText"/> 
     135                <xsl:if test="@odkaz = 'ano'"> 
     136                        <p class="zdroják-ke-stažení"> 
     137                                <span>Stáhnout: <a href="{encode-for-uri(@src)}"><xsl:value-of select="@src"/></a></span> 
     138                        </p> 
     139                </xsl:if> 
     140    </xsl:template> 
     141     
     142    <xsl:template name="zvýrazniZdroják"> 
     143        <xsl:param name="zdroják"/> 
     144        <xsl:variable name="zvýrazněnýZdroják" select="j:zvýrazniSyntaxi($zdroják, @jazyk)"/> 
    144145        <xsl:choose> 
    145                 <xsl:when test="$zvýrazněnýText"> 
     146                <xsl:when test="$zvýrazněnýZdroják"> 
    146147                        <xsl:comment>Následující kód je v jazyce <xsl:value-of select="@jazyk"/></xsl:comment> 
    147                         <xsl:value-of disable-output-escaping="yes" select="$zvýrazněnýText"/>           
     148                        <xsl:value-of disable-output-escaping="yes" select="$zvýrazněnýZdroják"/> 
    148149                </xsl:when> 
    149150                <xsl:otherwise> 
    150151                        <xsl:message>Zvýraznění syntaxe se nezdařilo → bude vložen původní nezvýrazněný kód.</xsl:message> 
    151                         <pre><xsl:apply-templates/></pre> 
     152                        <pre><xsl:value-of select="$zdroják"/></pre> 
    152153                </xsl:otherwise> 
    153         </xsl:choose> 
     154        </xsl:choose>            
    154155    </xsl:template> 
    155156