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

Wiki syntaxe #7 – základ, podpora Markdown syntaxe.

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • šablona/funkce/src/cz/frantovo/xmlWebGenerator/Funkce.java

    r36 r37  
    2424        private static final String PŘÍKAZ_PYGMENTIZE = "pygmentize"; 
    2525        private static final String PŘÍKAZ_DOT = "dot"; 
     26        private static final String PŘÍKAZ_MARKDOWN = "markdown"; 
    2627        private static final String PŘÍKAZ_WHICH = "which"; 
    2728        private static final String ADRESÁŘ_VÝSTUPNÍ = "výstup"; 
     
    148149 
    149150        /** 
     151         * Převede text ve wiki syntaxi do XHTML. 
     152         * @param wiki vstupní text v dané wiki syntaxi 
     153         * @param syntaxe null nebo volitelně syntaxe (markdown, texy) 
     154         * @return naformátované XHTML 
     155         */ 
     156        public static String formátujWiki(String wiki, String syntaxe) throws IOException { 
     157                if (isPříkazDostupný(PŘÍKAZ_MARKDOWN)) { 
     158                        Runtime r = Runtime.getRuntime(); 
     159                        Process p = r.exec(new String[]{PŘÍKAZ_MARKDOWN}); 
     160 
     161                        /** 
     162                         * TODO: oříznout mezery na začátcích řádků, pokud je jich všude stejně? 
     163                         * (odsazení v XML) 
     164                         */ 
     165                        PrintStream vstupProcesu = new PrintStream(p.getOutputStream()); 
     166                        vstupProcesu.print(wiki); 
     167                        vstupProcesu.close(); 
     168 
     169                        String chyby = načtiProud(p.getErrorStream()); 
     170                        String xhtml = načtiProud(p.getInputStream()); 
     171 
     172                        if (chyby.length() == 0) { 
     173                                return xhtml; 
     174                        } else { 
     175                                System.err.print("Při zpracování wiki syntaxe došlo k chybě: " + chyby); 
     176                                return null; 
     177                        } 
     178                } else { 
     179                        System.err.println("Příkaz " + PŘÍKAZ_MARKDOWN + " není na vašem systému dostupný → nelze formátovat texty ve wiki syntaxi."); 
     180                        System.err.println("Můžete ho nainstalovat pomocí:"); 
     181                        System.err.println("\t$ aptitude install markdown         # (Debian/Ubuntu)"); 
     182                        System.err.println("\t$ yum install perl-Text-Markdown    # (Fedora/RedHat)"); 
     183                        return null; 
     184                } 
     185        } 
     186 
     187        /** 
    150188         * Čte proud dat dokud to jde a výsledek pak vrátí jako text. 
    151189         * @param proud vstupní proud