Changeset 112:7d4b23ccf144

Show
Ignore:
Timestamp:
07/06/12 13:41:35 (8 years ago)
Author:
František Kučera <franta-hg@…>
Branch:
default
Message:

#20 Skriptování: kód ke zvýraznění syntaxe generovaný skriptem

Files:
4 modified

Legend:

Unmodified
Added
Removed
  • vstup/skriptování.xml

    r111 r112  
    287287                </p> 
    288288 
     289                <p> 
     290                        Skriptování lze použít i pro generování zdrojového kódu, který bude následně zvýrazněn 
     291                        pomocí značky <code>&lt;m:pre jazyk="…"/&gt;</code>. 
     292                        Toho využíváme na stránce <m:a href="zdrojáky">Zdrojové kódy</m:a> v případě SQL a XML ukázek. 
     293                        Skript můžeme použít mj. i ke zkrácení zdrojáku – když chceme vypsat jen jeho relevantní část. 
     294                </p> 
     295 
    289296        </text> 
    290297 
  • vstup/zdrojáky.xml

    r87 r112  
    4242                <h2>Java</h2> 
    4343 
    44                 <m:pre jazyk="java">public class Pokus { 
    45         // komentář 
    46         // &lt;JavaRulezz/&gt; 
    47 }</m:pre> 
     44                <m:pre jazyk="java" src="../šablona/funkce/src/cz/frantovo/xmlWebGenerator/Xmlns.java"/> 
    4845 
    4946                <h2>XML</h2> 
    5047 
    51                 <m:pre jazyk="xml"><![CDATA[<xmlDokument> 
    52         <element1>toto je <strong>pěkné</strong> XML!!!</element1> 
    53 </xmlDokument>]]></m:pre> 
     48                <p> 
     49                        Zdroják aktuální stránky – <abbr title="diakritika byla odstraněna, protože v Pygmentize je chyba – neumí značky s diakritikou, přestože to je platné XML">upravený</abbr> a zkrácený pomocí <m:a href="skriptování">skriptu</m:a>: 
     50                </p> 
     51                <m:pre jazyk="xml"><m:skript jazyk="bash"> 
     52# V zvýrazňovači Pygmentize je chyba: nepodporuje znaky s diakritikou, přestože v daném jazyce můžou být. 
     53# TODO: opravit to tam (zřejmě špatný regulární výraz). 
     54 
     55cat $XWG_STRANKA_SOUBOR | iconv -t ASCII//TRANSLIT -f UTF-8 | head -n 8; 
     56echo -e "\t\t… zkráceno …"; 
     57cat $XWG_STRANKA_SOUBOR | iconv -t ASCII//TRANSLIT -f UTF-8 | tail -n 4; 
     58 
     59# Případně: 
     60# cat $XWG_STRANKA_SOUBOR | sed s/á/a/g | sed s/ř/r/g | sed s/í/i/g | head -n 8; 
     61# echo -e "\t\t… zkráceno …"; 
     62# cat $XWG_STRANKA_SOUBOR | sed s/á/a/g | sed s/ř/r/g | sed s/í/i/g | tail -n 4; 
     63                </m:skript></m:pre> 
    5464 
    5565                <p>Další ukázka XML: <m:a href="šablona/makra/tabulka.xsl" typ="zdroják" řádek="25">tabulka.xsl</m:a>.</p> 
     
    5868 
    5969                <m:pre jazyk="bash" src="matrixový-spořič.sh" odkaz="ano"/> 
     70 
     71                <h2>SQL</h2> 
     72 
     73                <p> 
     74                        Tento SQL kód není zapsán přímo ve stránce, ale byl vygenerován pomocí <m:a href="skriptování">skriptu</m:a>, 
     75                        a poté zvýrazněn. 
     76                </p> 
     77 
     78                <m:pre jazyk="sql"><m:skript jazyk="perl"><![CDATA[ 
     79use strict; 
     80use warnings; 
     81 
     82for (my $i = 0; $i < 10; $i++) { 
     83        print "INSERT INTO tabulka VALUES ('abc $i', 'def ". $i*($i+1) . "', " . 2**$i . ");\n"; 
     84} 
     85                ]]></m:skript></m:pre> 
    6086 
    6187                <h2>Chyby</h2> 
  • šablona/funkce/src/cz/frantovo/xmlWebGenerator/Xmlns.java

    r107 r112  
    99 
    1010        public static final String XHTML = "http://www.w3.org/1999/xhtml"; 
    11         public static final String MAKRO = "https://trac.frantovo.cz/xml-web-generator/wiki/xmlns/makro"; 
     11        public static final String MAKRO = 
     12                        "https://trac.frantovo.cz/xml-web-generator/wiki/xmlns/makro"; 
    1213 
    1314        private Xmlns() { 
  • šablona/makra/zvýraznění-syntaxe.xsl

    r87 r112  
    3434        --> 
    3535        <xsl:template match="m:pre"> 
     36                <xsl:variable name="zadání"> 
     37                        <xsl:apply-templates select="*|text()"/> 
     38                </xsl:variable> 
    3639                <xsl:call-template name="zvýrazniZdroják"> 
    37                         <xsl:with-param name="zdroják" select="text()"/> 
     40                        <xsl:with-param name="zdroják" select="$zadání/text()"/> 
    3841                </xsl:call-template> 
    3942        </xsl:template>