Changeset 37:2e4e7891a2f7
- 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:
-
Legend:
- Unmodified
- Added
- Removed
-
r31
|
r37
|
|
15 | 15 | <p>Účtováno měsíčním paušálem.</p> |
16 | 16 | |
| 17 | <m:wiki> |
| 18 | Pravidelné krmení savců |
| 19 | ----------------------- |
| 20 | |
| 21 | 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. 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 | |
| 23 | Aliquam 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> |
17 | 27 | |
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 | |
22 | 29 | |
23 | 30 | <h2>Jednorázová výměna podestýlky</h2> |
-
r36
|
r37
|
|
24 | 24 | private static final String PŘÍKAZ_PYGMENTIZE = "pygmentize"; |
25 | 25 | private static final String PŘÍKAZ_DOT = "dot"; |
| 26 | private static final String PŘÍKAZ_MARKDOWN = "markdown"; |
26 | 27 | private static final String PŘÍKAZ_WHICH = "which"; |
27 | 28 | private static final String ADRESÁŘ_VÝSTUPNÍ = "výstup"; |
… |
… |
|
148 | 149 | |
149 | 150 | /** |
| 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 | /** |
150 | 188 | * Čte proud dat dokud to jde a výsledek pak vrátí jako text. |
151 | 189 | * @param proud vstupní proud |
-
r36
|
r37
|
|
170 | 170 | </xsl:choose> |
171 | 171 | </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> |
172 | 187 | |
173 | 188 | </xsl:stylesheet> |