author | František Kučera <franta-hg@frantovo.cz> |
Sat, 07 Jan 2012 01:38:07 +0100 | |
changeset 55 | 7a6267709af8 |
parent 52 | a221785fe3ac |
child 61 | 9503eb8377f1 |
permissions | -rw-r--r-- |
franta-hg@51 | 1 |
<?xml version="1.0" encoding="UTF-8"?> |
franta-hg@51 | 2 |
<xsl:stylesheet version="2.0" |
franta-hg@51 | 3 |
xmlns="http://www.w3.org/1999/xhtml" |
franta-hg@51 | 4 |
xmlns:m="https://trac.frantovo.cz/xml-web-generator/wiki/xmlns/makro" |
franta-hg@51 | 5 |
xmlns:j="java:cz.frantovo.xmlWebGenerator.Funkce" |
franta-hg@51 | 6 |
xmlns:xsl="http://www.w3.org/1999/XSL/Transform" |
franta-hg@51 | 7 |
exclude-result-prefixes="m j"> |
franta-hg@51 | 8 |
|
franta-hg@52 | 9 |
<!-- |
franta-hg@52 | 10 |
Diagramy/grafy |
franta-hg@52 | 11 |
************** |
franta-hg@52 | 12 |
Můžeme vložit diagram – obrázek. |
franta-hg@52 | 13 |
Pro jejich vykreslování se používá Graphviz – diagramy zadáváme v jeho syntaxi. |
franta-hg@52 | 14 |
* |
franta-hg@52 | 15 |
@orientace „vodorovně“ nebo „svisle“ (výchozí) |
franta-hg@52 | 16 |
@nadpis můžeme uvést název diagramu |
franta-hg@52 | 17 |
@kompletní „ano“ → předpokládáme kompletní zdroják v GraphViz syntaxi (pak nemá smysl uvádět orientaci). Výchozí je však „ne“ → uživatel zadává jen „vnitřek“ grafu – např. „A -> B; B -> C;“. |
franta-hg@52 | 18 |
@src zadání diagramu načteme ze souboru (potom je výchozí kompletní = 'ne') |
franta-hg@52 | 19 |
--> |
franta-hg@52 | 20 |
<xsl:template match="m:diagram"> |
franta-hg@52 | 21 |
<xsl:call-template name="vložDiagram"> |
franta-hg@52 | 22 |
<xsl:with-param name="zadání" select="text()"/> |
franta-hg@52 | 23 |
<xsl:with-param name="kompletní" select="@kompletní = 'ano'"/> |
franta-hg@52 | 24 |
</xsl:call-template> |
franta-hg@52 | 25 |
</xsl:template> |
franta-hg@52 | 26 |
|
franta-hg@52 | 27 |
<xsl:template match="m:diagram[@src]"> |
franta-hg@52 | 28 |
<xsl:call-template name="vložDiagram"> |
franta-hg@52 | 29 |
<xsl:with-param name="zadání" select="unparsed-text(concat('../', $vstup, @src))"/> |
franta-hg@52 | 30 |
<xsl:with-param name="kompletní" select="not(@kompletní) or @kompletní = 'ano'"/> |
franta-hg@52 | 31 |
</xsl:call-template> |
franta-hg@52 | 32 |
</xsl:template> |
franta-hg@52 | 33 |
|
franta-hg@52 | 34 |
<xsl:template name="vložDiagram"> |
franta-hg@52 | 35 |
<xsl:param name="zadání"/> |
franta-hg@52 | 36 |
<xsl:param name="kompletní"/> |
franta-hg@52 | 37 |
<xsl:variable name="souborDiagramu" select="j:vytvořDiagram($zadání, @orientace = 'vodorovně', $kompletní)"/> |
franta-hg@52 | 38 |
<xsl:choose> |
franta-hg@51 | 39 |
<xsl:when test="$souborDiagramu"> |
franta-hg@51 | 40 |
<div class="diagram"> |
franta-hg@51 | 41 |
<a href="{$souborDiagramu}.svg"> |
franta-hg@51 | 42 |
<img |
franta-hg@51 | 43 |
src="{$souborDiagramu}.svg" |
franta-hg@55 | 44 |
alt="Diagram {(@nadpis, $souborDiagramu)[1]} | pokud nevidíte obrázek, váš prohlížeč stojí za starou bačkoru" |
franta-hg@51 | 45 |
title="{@nadpis} (klikněte pro zobrazení samotného diagramu)"/> |
franta-hg@51 | 46 |
</a> |
franta-hg@51 | 47 |
<!-- |
franta-hg@51 | 48 |
TODO: SVG+PNG: |
franta-hg@51 | 49 |
<xsl:variable name="svgDiagramu" select="document(concat($výstup, $souborDiagramu, '.svg'))/svg:svg"/> |
franta-hg@51 | 50 |
<object |
franta-hg@52 | 51 |
data="{$souborDiagramu}.svg" |
franta-hg@52 | 52 |
type="image/svg+xml" |
franta-hg@52 | 53 |
style="width: {$svgDiagramu/@width}; height: {$svgDiagramu/@height}"> |
franta-hg@52 | 54 |
<img src="{$souborDiagramu}.png" alt="Diagram {$souborDiagramu}"/> |
franta-hg@51 | 55 |
</object> |
franta-hg@51 | 56 |
--> |
franta-hg@51 | 57 |
<xsl:if test="@nadpis"> |
franta-hg@51 | 58 |
<p class="nadpis"><xsl:value-of select="@nadpis"/></p> |
franta-hg@51 | 59 |
</xsl:if> |
franta-hg@51 | 60 |
</div> |
franta-hg@51 | 61 |
</xsl:when> |
franta-hg@51 | 62 |
<xsl:otherwise> |
franta-hg@51 | 63 |
<xsl:message terminate="yes">Při vytváření diagramu došlo k chybě.</xsl:message> |
franta-hg@51 | 64 |
</xsl:otherwise> |
franta-hg@52 | 65 |
</xsl:choose> |
franta-hg@52 | 66 |
</xsl:template> |
franta-hg@51 | 67 |
|
franta-hg@51 | 68 |
</xsl:stylesheet> |