Changeset 92:8d34f2020884
- Timestamp:
- 02/09/12 12:54:49 (13 years ago)
- Branch:
- default
- Files:
-
- 2 modified
Legend:
- Unmodified
- Added
- Removed
-
vstup/css/styl.css
r91 r92 120 120 border-collapse:collapse; 121 121 box-shadow: 3px 3px 3px grey; 122 } 123 td { 122 margin-top: 10px; 123 margin-bottom: 10px; 124 } 125 td, th { 124 126 border: 1px solid black; 125 127 padding-top: 4px; … … 127 129 padding-left: 6px; 128 130 padding-right: 6px; 131 font-weight: normal; 129 132 } 130 133 td.číslo { … … 191 194 } 192 195 196 197 blockquote { 198 background-color: #ddf; 199 padding-top: 3px; 200 padding-bottom: 3px; 201 padding-left: 16px; 202 padding-right: 16px; 203 border-radius: 4px; 204 } 205 -
šablona/funkce/src/cz/frantovo/xmlWebGenerator/makra/Wiki.java
r87 r92 2 2 * XML Web generátor – program na generování webových stránek 3 3 * Copyright © 2012 František Kučera (frantovo.cz) 4 * 4 * 5 5 * This program is free software: you can redistribute it and/or modify 6 6 * it under the terms of the GNU General Public License as published by 7 7 * the Free Software Foundation, either version 3 of the License, or 8 8 * (at your option) any later version. 9 * 9 * 10 10 * This program is distributed in the hope that it will be useful, 11 11 * but WITHOUT ANY WARRANTY; without even the implied warranty of 12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 13 * GNU General Public License for more details. 14 * 14 * 15 15 * You should have received a copy of the GNU General Public License 16 * along with this program. 16 * along with this program. If not, see <http://www.gnu.org/licenses/>. 17 17 */ 18 18 package cz.frantovo.xmlWebGenerator.makra; … … 21 21 import java.io.PrintStream; 22 22 import static cz.frantovo.xmlWebGenerator.NástrojeCLI.*; 23 import java.io.BufferedReader; 24 import java.io.InputStreamReader; 25 import java.io.OutputStreamWriter; 26 import java.net.URL; 27 import java.net.URLConnection; 28 import java.net.URLEncoder; 23 29 24 30 /** 25 31 * Wiki syntaxe 26 * 32 * 27 33 * @author František Kučera (frantovo.cz) 28 34 */ 29 35 public class Wiki { 30 36 37 public enum SYNTAXE { 38 39 markdown, 40 texy 41 } 31 42 private static final String PŘÍKAZ_MARKDOWN = "markdown"; 43 /** 44 * Zde číhá tento PHP skript: 45 * https://hg.frantovo.cz/nekurak.net/file/tip/php/texy/http/index.php 46 */ 47 private static final String URL_TEXY = "http://nekurak.net/texy/http/"; 32 48 33 49 /** 34 50 * Převede text ve wiki syntaxi do XHTML. 51 * 35 52 * @param wiki vstupní text v dané wiki syntaxi 36 53 * @param syntaxe null nebo volitelně syntaxe (markdown, texy) 37 54 * @return naformátované XHTML 38 * TODO: 39 * - vracet místo textu instanci com.icl.saxon.om.NodeInfo http://saxon.sourceforge.net/saxon6.5.3/extensibility.html 40 * - nebo kontrolovat validitu vygenerovaného kódu (v současnosti se spoléháme na bezchybnost markdownu) 41 55 * TODO: 56 * - vracet místo textu instanci com.icl.saxon.om.NodeInfo 57 * http://saxon.sourceforge.net/saxon6.5.3/extensibility.html 58 * - nebo kontrolovat validitu vygenerovaného kódu (v současnosti se spoléháme na bezchybnost 59 * markdownu případně texy) 60 * 42 61 */ 43 62 public static String formátujWiki(String wiki, String syntaxe) throws IOException { 63 if (syntaxe == null || SYNTAXE.valueOf(syntaxe) == SYNTAXE.markdown) { 64 return formátujMarkdown(wiki); 65 } else if (SYNTAXE.valueOf(syntaxe) == SYNTAXE.texy) { 66 return formátujTexy(wiki); 67 } else { 68 throw new IllegalArgumentException("Syntaxe není podporovaná: " + syntaxe); 69 } 70 } 71 72 private static String formátujMarkdown(String wiki) throws IOException { 44 73 if (isPříkazDostupný(PŘÍKAZ_MARKDOWN)) { 45 74 Runtime r = Runtime.getRuntime(); … … 71 100 } 72 101 } 102 103 /** 104 * Texy! syntaxe je experimentální a oficiálně nepodporovaná. 105 * 106 * TODO: až bude balíček texy pro GNU/Linuxové distribuce: 107 * http://forum.texy.info/cs/873-balicek-pro-linuxove-distribuce 108 * řešit stejně jako Markdown. 109 */ 110 private static String formátujTexy(String wiki) throws IOException { 111 System.out.println("Pozor: Texy! wiki syntaxe je experimentální a oficiálně nepodporovaná."); 112 System.out.println("Pozor: používáte na vlastní nebezpečí!"); 113 System.out.println("Pozor: text k interpretování bude odeslán na vzdálené URL: " + URL_TEXY); 114 System.out.println("Pokračovat? [a/N]"); 115 int pokračovat = System.in.read(); 116 117 if (pokračovat == 'a') { 118 OutputStreamWriter požadavek = null; 119 BufferedReader odpověď = null; 120 final String kódování = "UTF-8"; 121 try { 122 URL url = new URL(URL_TEXY); 123 URLConnection spojeni = url.openConnection(); 124 spojeni.setDoOutput(true); 125 126 /** Odešleme data */ 127 požadavek = new OutputStreamWriter(spojeni.getOutputStream()); 128 požadavek.write(URLEncoder.encode(wiki, kódování)); 129 požadavek.flush(); 130 131 /** Přijmeme odpověď */ 132 odpověď = new BufferedReader(new InputStreamReader(spojeni.getInputStream(), kódování)); 133 StringBuilder vysledek = new StringBuilder(); 134 String radka; 135 while ((radka = odpověď.readLine()) != null) { 136 vysledek.append(radka); 137 vysledek.append("\n"); 138 } 139 140 return vysledek.toString(); 141 } catch (Exception e) { 142 throw new RuntimeException("Chyba při zpracovávání Texy! syntaxe: " + wiki, e); 143 } finally { 144 try { 145 požadavek.close(); 146 } catch (IOException e) { 147 e.printStackTrace(System.err); 148 } 149 try { 150 odpověď.close(); 151 } catch (IOException e) { 152 e.printStackTrace(System.err); 153 } 154 } 155 } else { 156 String hláška = "Texy! wiki syntaxe nebyla interpretována. Zdrojový text nebyl nikam odeslán."; 157 System.out.println(hláška); 158 return "<!-- " + hláška + " -->"; 159 } 160 } 73 161 } 74