Changeset 27:037a9f20bf3a
- Timestamp:
- 08/22/11 00:23:38 (13 years ago)
- Branch:
- default
- Files:
-
- 3 modified
Legend:
- Unmodified
- Added
- Removed
-
vstup/produkty.xml
r18 r27 21 21 <p>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.</p> 22 22 23 <m:pre>#!/bin/bash 24 # tento kód nebude zvýrazněn 25 # <blee/></m:pre> 26 27 <m:pre jazyk="java">public class Pokus { 28 // komentář 29 // <blee/> 30 }</m:pre> 31 32 <m:pre jazyk="grrrrrrr">public class Pokus { 33 // komentář 34 // <blee/> 35 }</m:pre> 36 23 37 <p>Vhodnost zvířete do domácnosti:</p> 24 38 <m:měřák hodnota="80"/> -
šablona/funkce/src/cz/frantovo/xmlWebGenerator/Funkce.java
r21 r27 1 1 package cz.frantovo.xmlWebGenerator; 2 2 3 import java.io.BufferedReader; 3 4 import java.io.File; 5 import java.io.IOException; 6 import java.io.InputStream; 7 import java.io.InputStreamReader; 8 import java.io.PrintStream; 4 9 import java.util.Date; 5 10 import java.net.URI; … … 7 12 8 13 public class Funkce { 14 9 15 public static Date posledníZměna(String soubor) throws URISyntaxException { 10 16 return new Date(new File(new URI(soubor)).lastModified()); 11 17 } 18 19 /** 20 * Zvýrazňuje syntaxi zdrojového kódu. Používá k tomu externí program/knihovnu pygmentize. 21 * @param zdroják zdrojový kód, který předáme příkazu pygmentize na standardním vstupu 22 * @param jazyk předáme příkazu pygmentize jako parametr -l <lexer> 23 * @return TODO: použít (?) místo textu instanci com.icl.saxon.om.NodeInfo http://saxon.sourceforge.net/saxon6.5.3/extensibility.html 24 */ 25 public static String zvýrazniSyntaxi(String zdroják, String jazyk) throws IOException, InterruptedException { 26 String příkaz = "pygmentizexxx"; 27 28 if (isPrikazDostupny(příkaz)) { 29 Runtime r = Runtime.getRuntime(); 30 Process p = r.exec(new String[]{příkaz, "-f", "html", "-l", jazyk}); 31 32 PrintStream vstupProcesu = new PrintStream(p.getOutputStream()); 33 vstupProcesu.print(zdroják); 34 vstupProcesu.close(); 35 36 String výsledek = načtiProud(p.getInputStream()); 37 String chyby = načtiProud(p.getErrorStream()); 38 39 p.waitFor(); 40 41 if (chyby.length() == 0) { 42 return výsledek; 43 } else { 44 System.err.println("Při zvýrazňování syntaxe došlo k chybě: " + chyby); 45 return "______chyba_____"; 46 } 47 } else { 48 System.err.println("Příkaz " + příkaz + " není na vašem systému dostupný → zvýrazňování syntaxe nebude fungovat."); 49 System.err.println("Můžete ho nainstalovat pomocí: aptitude install python-pygments"); 50 // TODO: příkaz pro Fedoru/RedHat 51 // TODO: vracet escapovaný zdroják v <pre/> 52 return "__xxx____chyba_____"; 53 } 54 } 55 56 private static String načtiProud(InputStream proud) throws IOException { 57 StringBuilder výsledek = new StringBuilder(); 58 BufferedReader buf = new BufferedReader(new InputStreamReader(proud)); 59 while (true) { 60 String radek = buf.readLine(); 61 if (radek == null) { 62 break; 63 } else { 64 výsledek.append(radek); 65 výsledek.append("\n"); 66 } 67 } 68 return výsledek.toString(); 69 } 70 71 private static boolean isPrikazDostupny(String příkaz) { 72 try { 73 Runtime r = Runtime.getRuntime(); 74 Process p = r.exec(new String[]{"which", příkaz}); 75 p.waitFor(); 76 return p.exitValue() == 0; 77 } catch (Exception e) { 78 return false; 79 } 80 } 12 81 } 13 -
šablona/stránka.xsl
r20 r27 6 6 xmlns:k="https://trac.frantovo.cz/xml-web-generator/wiki/xmlns/konfigurace" 7 7 xmlns:m="https://trac.frantovo.cz/xml-web-generator/wiki/xmlns/makro" 8 xmlns:j="java:cz.frantovo.xmlWebGenerator.Funkce" 8 9 xmlns:xsl="http://www.w3.org/1999/XSL/Transform" 9 10 xmlns:fn="http://www.w3.org/2005/xpath-functions" 10 11 xmlns:svg="http://www.w3.org/2000/svg" 11 12 xmlns:xs="http://www.w3.org/2001/XMLSchema" 12 exclude-result-prefixes="fn h s k m xs">13 exclude-result-prefixes="fn h s k m j xs"> 13 14 <xsl:output 14 15 method="xml" … … 113 114 </a> 114 115 </xsl:template> 116 117 <!-- 118 Makro pro zvýraznění syntaxe: 119 --> 120 <xsl:template match="m:pre[@jazyk]"> 121 <xsl:value-of disable-output-escaping="yes" select="j:zvýrazniSyntaxi(text(), @jazyk)"/> 122 </xsl:template> 123 <xsl:template match="m:pre"> 124 <!-- Pokud jazyk uveden není, nic nezvýrazňujeme. --> 125 <pre><xsl:apply-templates/></pre> 126 </xsl:template> 127 115 128 116 129 </xsl:stylesheet>