| 82 | | <!-- Varování pro případ, že jsme v režimu podpory pro zaostalé prohlížeče --> |
| 83 | | <xsl:template name="varováníRetardace"> |
| 84 | | <xsl:if test="$podporaZaostalýchProhlížečů"> |
| 85 | | <xsl:comment> |
| 86 | | Generátor byl spuštěn v režimu podpory zaostalých prohlížečů. |
| 87 | | Uživatelům doporučujeme upgrade na skutečný WWW prohlížeč, |
| 88 | | jako je např. Firefox nebo Chromium (případně Opera či Safari). |
| 89 | | </xsl:comment> |
| 90 | | </xsl:if> |
| 91 | | </xsl:template> |
| 92 | | |
| 93 | | <!-- Odkazy na JavaScript a kaskádové styly --> |
| 94 | | <xsl:template match="k:web/k:js"> |
| 95 | | <script src="{text()}" type="text/javascript"> |
| 96 | | <xsl:call-template name="varováníRetardace"/> |
| 97 | | </script> |
| 98 | | </xsl:template> |
| 99 | | <xsl:template match="k:web/k:css"> |
| 100 | | <link href="{text()}" type="text/css" rel="StyleSheet" /> |
| 101 | | </xsl:template> |
| 102 | | |
| 103 | | <!-- |
| 104 | | TODO: makra vyčlenit do samostatných souborů |
| 105 | | --> |
| 106 | | |
| 107 | | <!-- |
| 108 | | Makro pro převod interních odkazů: |
| 109 | | - doplnění správné přípony |
| 110 | | - URL kódování znaků |
| 111 | | --> |
| 112 | | <xsl:template match="m:a"> |
| 113 | | <a> |
| 114 | | <xsl:copy-of select="@*"/> |
| 115 | | <xsl:attribute name="href"> |
| 116 | | <xsl:value-of select="fn:encode-for-uri(concat(@href, $výstupníPřípona))"/> |
| 117 | | </xsl:attribute> |
| 118 | | <xsl:apply-templates/> |
| 119 | | </a> |
| 120 | | </xsl:template> |
| 121 | | |
| 122 | | <!-- |
| 123 | | Makro pro zvýraznění syntaxe: |
| 124 | | --> |
| 125 | | <xsl:template match="m:pre"> |
| 126 | | <xsl:call-template name="zvýrazniZdroják"> |
| 127 | | <xsl:with-param name="zdroják" select="text()"/> |
| 128 | | </xsl:call-template> |
| 129 | | </xsl:template> |
| 130 | | |
| 131 | | <xsl:template match="m:pre[@src]"> |
| 132 | | <xsl:call-template name="zvýrazniZdroják"> |
| 133 | | <xsl:with-param name="zdroják" select="unparsed-text(concat($vstup, @src))"/> |
| 134 | | </xsl:call-template> |
| 135 | | <xsl:if test="@odkaz = 'ano'"> |
| 136 | | <p class="zdroják-ke-stažení"> |
| 137 | | <span>Stáhnout: <a href="{encode-for-uri(@src)}"><xsl:value-of select="@src"/></a></span> |
| 138 | | </p> |
| 139 | | </xsl:if> |
| 140 | | </xsl:template> |
| 141 | | |
| 142 | | <xsl:template name="zvýrazniZdroják"> |
| 143 | | <xsl:param name="zdroják"/> |
| 144 | | <xsl:variable name="zvýrazněnýZdroják" select="j:zvýrazniSyntaxi($zdroják, @jazyk)"/> |
| 145 | | <xsl:choose> |
| 146 | | <xsl:when test="$zvýrazněnýZdroják"> |
| 147 | | <xsl:comment>Následující kód je v jazyce <xsl:value-of select="@jazyk"/></xsl:comment> |
| 148 | | <xsl:value-of disable-output-escaping="yes" select="$zvýrazněnýZdroják"/> |
| 149 | | </xsl:when> |
| 150 | | <xsl:otherwise> |
| 151 | | <xsl:message>Zvýraznění syntaxe se nezdařilo → bude vložen původní nezvýrazněný kód.</xsl:message> |
| 152 | | <pre><xsl:value-of select="$zdroják"/></pre> |
| 153 | | </xsl:otherwise> |
| 154 | | </xsl:choose> |
| 155 | | </xsl:template> |
| 156 | | |
| 157 | | <!-- |
| 158 | | Makro pro diagramy/grafy |
| 159 | | --> |
| 160 | | <xsl:template match="m:diagram"> |
| 161 | | <xsl:variable name="souborDiagramu" select="j:vytvořDiagram(text(), @orientace = 'vodorovně')"/> |
| 162 | | <xsl:choose> |
| 163 | | <xsl:when test="$souborDiagramu"> |
| 164 | | <div class="diagram"> |
| 165 | | <a href="{$souborDiagramu}.svg"> |
| 166 | | <img |
| 167 | | src="{$souborDiagramu}.svg" |
| 168 | | alt="Diagram {$souborDiagramu} | pokud nevidíte obrázek, váš prohlížeč stojí za starou bačkoru" |
| 169 | | title="{@nadpis} (klikněte pro zobrazení samotného diagramu)"/> |
| 170 | | </a> |
| 171 | | <!-- TODO: SVG+PNG |
| 172 | | <xsl:variable name="svgDiagramu" select="document(concat($výstup, $souborDiagramu, '.svg'))/svg:svg"/> |
| 173 | | <object |
| 174 | | data="{$souborDiagramu}.svg" |
| 175 | | type="image/svg+xml" |
| 176 | | style="width: {$svgDiagramu/@width}; height: {$svgDiagramu/@height}"> |
| 177 | | <img src="{$souborDiagramu}.png" alt="Diagram {$souborDiagramu}"/> |
| 178 | | </object> |
| 179 | | --> |
| 180 | | <xsl:if test="@nadpis"> |
| 181 | | <p class="nadpis"><xsl:value-of select="@nadpis"/></p> |
| 182 | | </xsl:if> |
| 183 | | </div> |
| 184 | | </xsl:when> |
| 185 | | <xsl:otherwise> |
| 186 | | <xsl:message terminate="yes">Při vytváření diagramu došlo k chybě.</xsl:message> |
| 187 | | </xsl:otherwise> |
| 188 | | </xsl:choose> |
| 189 | | </xsl:template> |
| 190 | | |
| 191 | | <!-- |
| 192 | | Makro pro Wiki syntaxi |
| 193 | | --> |
| 194 | | <xsl:template match="m:wiki"> |
| 195 | | <xsl:variable name="wikiXHTML" select="j:formátujWiki(text(), @syntaxe)"/> |
| 196 | | <xsl:choose> |
| 197 | | <xsl:when test="$wikiXHTML"> |
| 198 | | <xsl:value-of select="$wikiXHTML" disable-output-escaping="yes"/> |
| 199 | | </xsl:when> |
| 200 | | <xsl:otherwise> |
| 201 | | <xsl:message terminate="yes">Při zpracování wiki syntaxe došlo k chybě.</xsl:message> |
| 202 | | </xsl:otherwise> |
| 203 | | </xsl:choose> |
| 204 | | </xsl:template> |
| 205 | | |
| 206 | | <!-- |
| 207 | | Makro pro vycpávkový text |
| 208 | | --> |
| 209 | | <xsl:template match="m:vycpávka"> |
| 210 | | <!-- |
| 211 | | TODO: stáhnout jen jednou, uložit do souboru a při dalších generováních brát z něj. |
| 212 | | --> |
| 213 | | <xsl:message>Stahuji vycpávkový text z http://lipsum.lipsum.com/</xsl:message> |
| 214 | | <xsl:variable name="prostýText" select="document(concat('http://lipsum.lipsum.com/feed/xml?amount=', @odstavců, '&what=paragraphs'))/feed/lipsum"/> |
| 215 | | <xsl:for-each select="fn:tokenize($prostýText, '\n')"> |
| 216 | | <p><xsl:value-of select="."/></p> |
| 217 | | </xsl:for-each> |
| 218 | | </xsl:template> |
| 219 | | |
| 220 | | <!-- |
| 221 | | Makro pro jednoduché tabulky |
| 222 | | --> |
| 223 | | <xsl:template match="m:tabulka"> |
| 224 | | <table> |
| 225 | | <xsl:variable name="data" select="replace(replace(text(), '^\s+', ''),'\s+$','')"/> |
| 226 | | <xsl:variable name="hlavička" select="substring-before($data, ' ')"/> |
| 227 | | <xsl:variable name="tělo" select="substring-after($data, ' ')"/> |
| 228 | | <thead> |
| 229 | | <tr> |
| 230 | | <xsl:for-each select="tokenize($hlavička, '\t+')"> |
| 231 | | <xsl:if test="normalize-space(.)"> |
| 232 | | <td><xsl:value-of select="normalize-space(.)"/></td> |
| 233 | | </xsl:if> |
| 234 | | </xsl:for-each> |
| 235 | | </tr> |
| 236 | | </thead> |
| 237 | | <tbody> |
| 238 | | <xsl:for-each select="tokenize($tělo, '\n')"> |
| 239 | | <xsl:if test="normalize-space(.)"> |
| 240 | | <tr> |
| 241 | | <xsl:for-each select="tokenize(., '\t+')"> |
| 242 | | <xsl:if test="normalize-space(.)"> |
| 243 | | <td><xsl:value-of select="normalize-space(.)"/></td> |
| 244 | | </xsl:if> |
| 245 | | </xsl:for-each> |
| 246 | | </tr> |
| 247 | | </xsl:if> |
| 248 | | </xsl:for-each> |
| 249 | | </tbody> |
| 250 | | </table> |
| 251 | | </xsl:template> |
| 252 | | |