--- a/šablona/makra/diagramy.xsl Fri Jan 06 20:48:42 2012 +0100
+++ b/šablona/makra/diagramy.xsl Fri Jan 06 21:58:52 2012 +0100
@@ -6,21 +6,36 @@
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
exclude-result-prefixes="m j">
- <!--
- Diagramy/grafy
- **************
- Můžeme vložit diagram – obrázek.
- Pro jejich vykreslování se používá Graphviz – diagramy zadáváme v jeho syntaxi.
- *
- @orientace „vodorovně“ nebo „svisle“ (výchozí)
- @nadpis můžeme uvést název diagramu
- -->
- <xsl:template match="m:diagram">
- <!--
- TODO: umožnit vkládání diagramů ze souboru (@src)
- -->
- <xsl:variable name="souborDiagramu" select="j:vytvořDiagram(text(), @orientace = 'vodorovně')"/>
- <xsl:choose>
+ <!--
+ Diagramy/grafy
+ **************
+ Můžeme vložit diagram – obrázek.
+ Pro jejich vykreslování se používá Graphviz – diagramy zadáváme v jeho syntaxi.
+ *
+ @orientace „vodorovně“ nebo „svisle“ (výchozí)
+ @nadpis můžeme uvést název diagramu
+ @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;“.
+ @src zadání diagramu načteme ze souboru (potom je výchozí kompletní = 'ne')
+ -->
+ <xsl:template match="m:diagram">
+ <xsl:call-template name="vložDiagram">
+ <xsl:with-param name="zadání" select="text()"/>
+ <xsl:with-param name="kompletní" select="@kompletní = 'ano'"/>
+ </xsl:call-template>
+ </xsl:template>
+
+ <xsl:template match="m:diagram[@src]">
+ <xsl:call-template name="vložDiagram">
+ <xsl:with-param name="zadání" select="unparsed-text(concat('../', $vstup, @src))"/>
+ <xsl:with-param name="kompletní" select="not(@kompletní) or @kompletní = 'ano'"/>
+ </xsl:call-template>
+ </xsl:template>
+
+ <xsl:template name="vložDiagram">
+ <xsl:param name="zadání"/>
+ <xsl:param name="kompletní"/>
+ <xsl:variable name="souborDiagramu" select="j:vytvořDiagram($zadání, @orientace = 'vodorovně', $kompletní)"/>
+ <xsl:choose>
<xsl:when test="$souborDiagramu">
<div class="diagram">
<a href="{$souborDiagramu}.svg">
@@ -33,10 +48,10 @@
TODO: SVG+PNG:
<xsl:variable name="svgDiagramu" select="document(concat($výstup, $souborDiagramu, '.svg'))/svg:svg"/>
<object
- data="{$souborDiagramu}.svg"
- type="image/svg+xml"
- style="width: {$svgDiagramu/@width}; height: {$svgDiagramu/@height}">
- <img src="{$souborDiagramu}.png" alt="Diagram {$souborDiagramu}"/>
+ data="{$souborDiagramu}.svg"
+ type="image/svg+xml"
+ style="width: {$svgDiagramu/@width}; height: {$svgDiagramu/@height}">
+ <img src="{$souborDiagramu}.png" alt="Diagram {$souborDiagramu}"/>
</object>
-->
<xsl:if test="@nadpis">
@@ -47,7 +62,7 @@
<xsl:otherwise>
<xsl:message terminate="yes">Při vytváření diagramu došlo k chybě.</xsl:message>
</xsl:otherwise>
- </xsl:choose>
- </xsl:template>
+ </xsl:choose>
+ </xsl:template>
</xsl:stylesheet>