# HG changeset patch # User František Kučera # Date 1314014240 -7200 # Node ID da6ae32853cb837f74bac70de45de13f8bf35c83 # Parent cefd5fe75cb8b909e19fb8640fc19af8ec3651d1 Zvýrazňování syntaxe #12 – prakticky hotové. diff -r cefd5fe75cb8 -r da6ae32853cb build.xml --- a/build.xml Mon Aug 22 01:26:23 2011 +0200 +++ b/build.xml Mon Aug 22 13:57:20 2011 +0200 @@ -13,7 +13,7 @@ - + @@ -27,6 +27,16 @@ + + + + + + + + + + diff -r cefd5fe75cb8 -r da6ae32853cb vstup/css/styl.css --- a/vstup/css/styl.css Mon Aug 22 01:26:23 2011 +0200 +++ b/vstup/css/styl.css Mon Aug 22 13:57:20 2011 +0200 @@ -55,3 +55,8 @@ text-align: center; } +pre { + background-color: #ddf; + padding: 6px; + border-radius: 4px; +} diff -r cefd5fe75cb8 -r da6ae32853cb vstup/produkty.xml --- a/vstup/produkty.xml Mon Aug 22 01:26:23 2011 +0200 +++ b/vstup/produkty.xml Mon Aug 22 13:57:20 2011 +0200 @@ -20,23 +20,6 @@

Vivamus nec dictum dolor. Aliquam et tellus dolor. Curabitur et est sapien. Sed nec neque massa. Integer luctus erat vel arcu molestie ac dapibus dolor pretium. Curabitur eget augue non ipsum pulvinar venenatis eget et lectus. Proin fringilla aliquet sapien, non luctus est lobortis vel. Nunc vehicula volutpat varius. Aliquam suscipit accumsan sollicitudin. Morbi ultricies, mauris id elementum pellentesque, nunc dolor viverra nisl, sit amet consequat velit libero at ligula. Nulla luctus rhoncus tortor nec sollicitudin. Vivamus posuere sodales ipsum, hendrerit cursus felis pharetra sit amet. Nunc interdum facilisis massa ac congue.

Aliquam erat volutpat. Quisque vitae libero est. Aliquam erat volutpat. Integer elementum, nisl nec lacinia facilisis, dolor tellus varius eros, sit amet facilisis sem sapien vitae nulla. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Integer rutrum sodales venenatis. Donec mollis aliquet enim, id venenatis urna faucibus sed. Suspendisse pharetra neque et nibh tincidunt suscipit. Morbi ut justo sit amet lectus faucibus tempor quis non libero. Aenean in dolor sem, in lacinia sem.

- - - public class Pokus { - // komentář - // <blee/> -} - - - toto je pěkné XML!!! -]]> - - chybný jazyk → syntaxe nebude zvýrazněna - - #!/bin/bash -# tento kód nebude zvýrazněn, protože atribut „jazyk“ chybí -# <blee/> -

Vhodnost zvířete do domácnosti:

diff -r cefd5fe75cb8 -r da6ae32853cb vstup/služby.xml --- a/vstup/služby.xml Mon Aug 22 01:26:23 2011 +0200 +++ b/vstup/služby.xml Mon Aug 22 13:57:20 2011 +0200 @@ -1,4 +1,6 @@ - + Služby Co poskytujeme. 30 @@ -6,7 +8,7 @@

Naše služby jsou ty nejlepší ze všech. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed mi nisl, tincidunt in viverra vitae, pharetra nec urna. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Integer gravida gravida convallis. Phasellus erat ligula, vestibulum vel commodo ac, fringilla quis lorem. Morbi a massa a ligula tincidunt mattis et et felis. Vivamus a quam nulla, at vulputate nisi. Duis gravida placerat luctus. Phasellus vehicula lobortis arcu vitae hendrerit. Maecenas ut molestie elit. Aliquam erat volutpat. Curabitur sed euismod nisl. Mauris molestie tristique nulla, eu pellentesque sem tincidunt non.

-

Morbi et magna a ligula pulvinar posuere. Pellentesque sit amet sem sed orci convallis tincidunt sed sed nisl. Aenean id nibh lorem, eget tempor mauris. Duis diam dui, ullamcorper quis iaculis eget, blandit non dolor. Vestibulum pretium lorem aliquet libero tristique vehicula. Quisque sit amet odio risus, sed tincidunt augue. Proin tincidunt eros eu sem sodales sit amet sollicitudin libero vestibulum. Proin sed nunc elit. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam mollis, nisl ut sodales sodales, quam lacus elementum magna, nec blandit leo enim id odio. Integer risus leo, sagittis vitae vestibulum vitae, elementum eu eros.

+

Morbi et magna a ligula pulvinar posuere. Podívejte se také na naše zdrojové kódy. Pellentesque sit amet sem sed orci convallis tincidunt sed sed nisl. Aenean id nibh lorem, eget tempor mauris. Duis diam dui, ullamcorper quis iaculis eget, blandit non dolor. Vestibulum pretium lorem aliquet libero tristique vehicula. Quisque sit amet odio risus, sed tincidunt augue. Proin tincidunt eros eu sem sodales sit amet sollicitudin libero vestibulum. Proin sed nunc elit. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam mollis, nisl ut sodales sodales, quam lacus elementum magna, nec blandit leo enim id odio. Integer risus leo, sagittis vitae vestibulum vitae, elementum eu eros.

Pravidelné krmení ptáků

Fusce eu libero sit amet mauris molestie suscipit. Integer porttitor euismod luctus. Sed elementum quam et quam pharetra tincidunt. Pellentesque vitae augue quis mi blandit dapibus. Vestibulum iaculis magna sit amet nisl tristique at consectetur odio blandit. Proin aliquam lectus ac arcu condimentum tempus. Suspendisse potenti. Suspendisse porttitor euismod accumsan. Sed nibh lacus, laoreet id consequat gravida, eleifend eget lectus. Curabitur accumsan, nisi at elementum aliquam, nisl nulla volutpat lorem, ac elementum metus lacus eget lectus. Praesent odio nulla, porttitor vitae hendrerit vel, ullamcorper in velit. Sed in est ipsum, iaculis accumsan sem. Integer pretium ultrices justo a mattis. Nullam id lacus in lectus bibendum tempor. Nulla non viverra eros. Praesent scelerisque, nisi et placerat convallis, nisi nulla lobortis mauris, eu ultricies est mi ac orci. Suspendisse ullamcorper dapibus interdum. Curabitur ac metus eros, sed venenatis sapien.

diff -r cefd5fe75cb8 -r da6ae32853cb vstup/web.conf --- a/vstup/web.conf Mon Aug 22 01:26:23 2011 +0200 +++ b/vstup/web.conf Mon Aug 22 13:57:20 2011 +0200 @@ -22,6 +22,7 @@ Můžeme jich uvést libovolné množství. --> css/styl.css + css/syntaxe.css js/skript.js diff -r cefd5fe75cb8 -r da6ae32853cb vstup/zdrojáky.xml --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/vstup/zdrojáky.xml Mon Aug 22 13:57:20 2011 +0200 @@ -0,0 +1,85 @@ + + Zdrojové kódy + Ukázka našich zdrojových kódů. + + + +

Zde je malá ukázka našich zdrojových kódů. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed mi nisl, tincidunt in viverra vitae, pharetra nec urna. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Integer gravida gravida convallis. Phasellus erat ligula, vestibulum vel commodo ac, fringilla quis lorem. Morbi a massa a ligula tincidunt mattis et et felis. Vivamus a quam nulla, at vulputate nisi. Duis gravida placerat luctus. Phasellus vehicula lobortis arcu vitae hendrerit. Maecenas ut molestie elit. Aliquam erat volutpat. Curabitur sed euismod nisl. Mauris molestie tristique nulla, eu pellentesque sem tincidunt non.

+

Morbi et magna a ligula pulvinar posuere. Pellentesque sit amet sem sed orci convallis tincidunt sed sed nisl. Aenean id nibh lorem, eget tempor mauris. Duis diam dui, ullamcorper quis iaculis eget, blandit non dolor. Vestibulum pretium lorem aliquet libero tristique vehicula. Quisque sit amet odio risus, sed tincidunt augue. Proin tincidunt eros eu sem sodales sit amet sollicitudin libero vestibulum. Proin sed nunc elit. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam mollis, nisl ut sodales sodales, quam lacus elementum magna, nec blandit leo enim id odio. Integer risus leo, sagittis vitae vestibulum vitae, elementum eu eros.

+ +

C++

+

Ukázka převzatá ze stránky Zdrojový kód:

+ + +using namespace std; + +int main(int argc, char *argv[]) { + + cout << "Chcete slyšet vtip?" << endl; + char odpoved = cin.get(); + cin.get(); + + if (odpoved == 'a') { + cout + << "Lidé se dělí do 10 skupin." << endl + << "Na ty, kteří rozumějí binárnímu kódu, " + << "a na ty ostatní." << endl; + return 0; + } else if (odpoved == 'n') { + cout << "Dobře, tak ne." << endl; + return 0; + } else { + cout + << "Nerozumím odpovědi " + << "– očekávám „ano“ nebo „ne“." << endl; + return 1; + } +}]]> + +

Java

+ + public class Pokus { + // komentář + // <JavaRulezz/> +} + +

XML

+ + + toto je pěkné XML!!! +]]> + +

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 + +

Chyby

+ +

Následující ukázky kódu nebudou zvýrazněné:

+ + Nepodporovaný jazyk → syntaxe nebude zvýrazněna <blee/> + + #!/bin/bash +# tento kód nebude zvýrazněn, protože atribut „jazyk“ chybí +# <blee/> + + +
+ +
diff -r cefd5fe75cb8 -r da6ae32853cb šablona/funkce/src/cz/frantovo/xmlWebGenerator/Funkce.java --- a/šablona/funkce/src/cz/frantovo/xmlWebGenerator/Funkce.java Mon Aug 22 01:26:23 2011 +0200 +++ b/šablona/funkce/src/cz/frantovo/xmlWebGenerator/Funkce.java Mon Aug 22 13:57:20 2011 +0200 @@ -39,7 +39,9 @@ * @param zdroják zdrojový kód, který předáme příkazu pygmentize na standardním vstupu * @param jazyk předáme příkazu pygmentize jako parametr -l <lexer> * @return zvýrazněný text nebo null, pokud došlo k chybě. - * TODO: použít (?) místo textu instanci com.icl.saxon.om.NodeInfo http://saxon.sourceforge.net/saxon6.5.3/extensibility.html + * TODO: + * - použít (?) místo textu instanci com.icl.saxon.om.NodeInfo http://saxon.sourceforge.net/saxon6.5.3/extensibility.html + * - nebo kontrolovat validitu vygenerovaného kódu (v současnosti se spoléháme na bezchybnost pygmentize) */ public static String zvýrazniSyntaxi(String zdroják, String jazyk) throws IOException, InterruptedException { if (jazyk == null || jazyk.length() == 0) { @@ -75,6 +77,20 @@ } /** + * Vygeneruje CSS styl pro zvýrazňování syntaxe. + * @return obsah CSS souboru nebo null, pokud generování nebylo možné + */ + public static String generujCssSyntaxe() throws IOException, InterruptedException { + if (isPrikazDostupny(PŘÍKAZ_PYGMENTIZE)) { + Runtime r = Runtime.getRuntime(); + Process p = r.exec(new String[]{PŘÍKAZ_PYGMENTIZE, "-S", "default", "-f", "html"}); + return načtiProud(p.getInputStream()); + } else { + return null; + } + } + + /** * Čte proud dat dokud to jde a výsledek pak vrátí jako text. * @param proud vstupní proud * @return obsah proudu jako text diff -r cefd5fe75cb8 -r da6ae32853cb šablona/syntaxe.xsl --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/šablona/syntaxe.xsl Mon Aug 22 13:57:20 2011 +0200 @@ -0,0 +1,13 @@ + + + + + + + + +