Changeset 32:6bc25517ac4f
- Timestamp:
- 08/23/11 16:45:30 (13 years ago)
- Branch:
- default
- Files:
-
- 4 modified
Legend:
- Unmodified
- Added
- Removed
-
vstup/css/styl.css
r31 r32 61 61 border-radius: 4px; 62 62 } 63 64 .diagram { 65 background-color: #ddf; 66 padding: 6px; 67 border-radius: 4px; 68 text-align: center; 69 max-width: 100%; 70 overflow: auto; 71 } 72 73 .diagram .nadpis { 74 font-size: 60%; 75 padding: 4px; 76 margin-top: 6px; 77 margin-bottom: -6px; 78 margin-left: -6px; 79 margin-right: -6px; 80 background-color: #d0d0f0; 81 border-radius: 0px 0px 4px 4px; 82 } -
vstup/kontakt.xml
r18 r32 1 <stránka xmlns="https://trac.frantovo.cz/xml-web-generator/wiki/xmlns/strana"> 1 <stránka 2 xmlns="https://trac.frantovo.cz/xml-web-generator/wiki/xmlns/strana" 3 xmlns:m="https://trac.frantovo.cz/xml-web-generator/wiki/xmlns/makro"> 2 4 <nadpis>Kontakt</nadpis> 3 5 <perex>Kde nás najdete.</perex> … … 13 15 Česká republika 14 16 </p> 17 18 <h2>Organizační struktura</h2> 19 20 <p> 21 Zde je orgranizační struktura naší skvělé firmy: 22 </p> 23 24 <m:diagram nadpis="Naše organizační struktura"> 25 tovarnik[label="pan továrník\n(majitel)"]; 26 reditel[label="pan ředitel"]; 27 sekretarka[label="slečna sekretářka"]; 28 root[label="Linuxový guru"]; 29 architekt[label="Softwarový architekt"]; 30 31 tovarnik -> reditel; 32 33 reditel -> sekretarka; 34 reditel -> architekt; 35 reditel -> root; 36 </m:diagram> 37 38 <h2>Procesy</h2> 39 40 <p> 41 Ve firmě máme spoustu procesů. Jeden z nich vypadá takto: 42 </p> 43 44 <m:diagram orientace="vodorovně"> 45 A -> B; 46 B -> C; 47 </m:diagram> 48 49 <p> 50 Ale protože je to tajné, tak vám neřekneme, co A, B a C znamenají. 51 </p> 52 15 53 </text> 16 54 -
šablona/funkce/src/cz/frantovo/xmlWebGenerator/Funkce.java
r31 r32 14 14 * Knihovna funkcí volaných z XSLT. 15 15 * 16 * TODO: časem rozdělit na více modulů (jmenných prostorů). 16 * TODO: 17 * - rozdělit na více modulů (jmenných prostorů). 18 * - CLI konektor 17 19 * 18 20 * @author fiki … … 21 23 22 24 private static final String PŘÍKAZ_PYGMENTIZE = "pygmentize"; 25 private static final String PŘÍKAZ_DOT = "dot"; 23 26 private static final String PŘÍKAZ_WHICH = "which"; 27 private static final String ADRESÁŘ_VÝSTUPNÍ = "výstup"; 28 private static int počítadloDiagramů = 0; 24 29 25 30 /** … … 92 97 93 98 /** 99 * Vytvoří obrázek s diagramem. 100 * @param zadání definice diagramu ve formátu dot 101 * @param vodorovně zda má být graf orientovaný vodorovně 102 * @return název souboru bez přípony, který byl vytvořen, nebo null, pokud došlo k chybě. 103 */ 104 public static String vytvořDiagram(String zadání, boolean vodorovně) throws IOException, InterruptedException { 105 if (isPrikazDostupny(PŘÍKAZ_DOT)) { 106 počítadloDiagramů++; 107 String soubor = "diagram-" + počítadloDiagramů; 108 String souborSložka = ADRESÁŘ_VÝSTUPNÍ + File.separator + soubor; 109 110 StringBuilder zdroják = new StringBuilder(zadání.length() + 200); 111 112 zdroják.append("digraph d {\n"); 113 zdroják.append("\tbgcolor=\"transparent\";\n"); 114 if (vodorovně) { 115 zdroják.append("\trankdir=LR;"); 116 } 117 zdroják.append(zadání); 118 zdroják.append("}\n"); 119 120 Runtime r = Runtime.getRuntime(); 121 Process p = r.exec(new String[]{PŘÍKAZ_DOT, "-T", "svg", "-o", souborSložka + ".svg"}); 122 123 /** 124 * TODO: generovat i PNG bitmapu 125 */ 126 PrintStream vstupProcesu = new PrintStream(p.getOutputStream()); 127 vstupProcesu.print(zdroják.toString()); 128 vstupProcesu.close(); 129 130 String chyby = načtiProud(p.getErrorStream()); 131 132 p.waitFor(); 133 134 if (chyby.length() == 0) { 135 return soubor; 136 } else { 137 System.err.print("Při vytváření diagramu došlo k chybě: " + chyby); 138 return null; 139 } 140 } else { 141 System.err.println("Příkaz " + PŘÍKAZ_DOT + " není na vašem systému dostupný → diagramy nelze vygreslit."); 142 System.err.println("Můžete ho nainstalovat pomocí:"); 143 System.err.println("\t$ aptitude install graphviz # (Debian/Ubuntu)"); 144 System.err.println("\t$ yum install graphviz # (Fedora/RedHat)"); 145 return null; 146 } 147 } 148 149 /** 94 150 * Čte proud dat dokud to jde a výsledek pak vrátí jako text. 95 151 * @param proud vstupní proud -
šablona/stránka.xsl
r29 r32 130 130 </xsl:otherwise> 131 131 </xsl:choose> 132 </xsl:template> 132 </xsl:template> 133 134 <!-- 135 Makro pro diagramy/grafy 136 --> 137 <xsl:template match="m:diagram"> 138 <xsl:variable name="souborDiagramu" select="j:vytvořDiagram(text(), @orientace = 'vodorovně')"/> 139 <xsl:choose> 140 <xsl:when test="$souborDiagramu"> 141 <div class="diagram"> 142 <a href="{$souborDiagramu}.svg"> 143 <img src="{$souborDiagramu}.svg" alt="Diagram {$souborDiagramu}"/> 144 </a> 145 <!-- TODO: SVG+PNG 146 <object data="{$souborDiagramu}.svg" type="image/svg+xml"> 147 <img src="{$souborDiagramu}.png" alt="Diagram {$souborDiagramu}"/> 148 </object> 149 --> 150 <xsl:if test="@nadpis"> 151 <p class="nadpis"><xsl:value-of select="@nadpis"/></p> 152 </xsl:if> 153 </div> 154 </xsl:when> 155 <xsl:otherwise> 156 <xsl:message terminate="yes">Při vytváření diagramu došlo k chybě.</xsl:message> 157 </xsl:otherwise> 158 </xsl:choose> 159 </xsl:template> 133 160 134 161 </xsl:stylesheet>