Changeset 37:2e4e7891a2f7

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

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

Files:
3 modified

Legend:

Unmodified
Added
Removed
  • vstup/služby.xml

    r31 r37  
    1515                <p>Účtováno měsíčním paušálem.</p> 
    1616                 
     17                <m:wiki> 
     18Pravidelné krmení savců 
     19----------------------- 
     20 
     21Tato služba je určena především pro pakoně a slony, vhodná je ale i pro jednorožce. _Vivamus nec dictum dolor_. Aliquam et tellus dolor. Curabitur et est sapien. Sed nec neque massa. Markdown 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. 
     22 
     23Aliquam erat volutpat. Quisque vitae libero est. Aliquam erat volutpat. [Integer](http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Integer.html) 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. 
     24 
     25Účtováno měsíčním paušálem. 
     26                </m:wiki> 
    1727                 
    18                 <h2>Pravidelné krmení savců</h2> 
    19                 <p>Tato služba je určena především pro pakoně a slony, vhodná je ale i pro jednorožce. 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.</p> 
    20                 <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> 
    21                 <p>Účtováno měsíčním paušálem.</p> 
     28                 
    2229                 
    2330                <h2>Jednorázová výměna podestýlky</h2> 
  • š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 
  • šablona/stránka.xsl

    r36 r37  
    170170        </xsl:choose> 
    171171    </xsl:template> 
     172     
     173    <!-- 
     174        Makro pro Wiki syntaxi 
     175    --> 
     176    <xsl:template match="m:wiki"> 
     177        <xsl:variable name="wikiXHTML" select="j:formátujWiki(text(), @syntaxe)"/> 
     178        <xsl:choose> 
     179                        <xsl:when test="$wikiXHTML"> 
     180                                <xsl:value-of select="$wikiXHTML" disable-output-escaping="yes"/> 
     181                        </xsl:when> 
     182                        <xsl:otherwise> 
     183                                <xsl:message terminate="yes">Při zpracování wiki syntaxe došlo k chybě.</xsl:message> 
     184                        </xsl:otherwise> 
     185                </xsl:choose> 
     186    </xsl:template> 
    172187 
    173188</xsl:stylesheet>