šablona/makra/diagramy.xsl
changeset 52 a221785fe3ac
parent 51 df1f942f7b69
child 55 7a6267709af8
     1.1 --- a/šablona/makra/diagramy.xsl	Fri Jan 06 20:48:42 2012 +0100
     1.2 +++ b/šablona/makra/diagramy.xsl	Fri Jan 06 21:58:52 2012 +0100
     1.3 @@ -6,21 +6,36 @@
     1.4  	xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
     1.5  	exclude-result-prefixes="m j">
     1.6      
     1.7 -    <!--
     1.8 -    	Diagramy/grafy
     1.9 -    	**************
    1.10 -    	Můžeme vložit diagram – obrázek.
    1.11 -    	Pro jejich vykreslování se používá Graphviz – diagramy zadáváme v jeho syntaxi.
    1.12 -    	*
    1.13 -    	@orientace „vodorovně“ nebo „svisle“ (výchozí)
    1.14 -    	@nadpis můžeme uvést název diagramu
    1.15 -    -->
    1.16 -    <xsl:template match="m:diagram">
    1.17 -    	<!-- 
    1.18 -    		TODO: umožnit vkládání diagramů ze souboru (@src) 
    1.19 -    	-->
    1.20 -    	<xsl:variable name="souborDiagramu" select="j:vytvořDiagram(text(), @orientace = 'vodorovně')"/>
    1.21 -    	<xsl:choose>
    1.22 +	<!--
    1.23 +		Diagramy/grafy
    1.24 +		**************
    1.25 +		Můžeme vložit diagram – obrázek.
    1.26 +		Pro jejich vykreslování se používá Graphviz – diagramy zadáváme v jeho syntaxi.
    1.27 +		*
    1.28 +		@orientace „vodorovně“ nebo „svisle“ (výchozí)
    1.29 +		@nadpis můžeme uvést název diagramu
    1.30 +		@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;“.  
    1.31 +		@src zadání diagramu načteme ze souboru (potom je výchozí kompletní = 'ne')
    1.32 +	-->
    1.33 +	<xsl:template match="m:diagram">
    1.34 +		<xsl:call-template name="vložDiagram">
    1.35 +			<xsl:with-param name="zadání" select="text()"/>
    1.36 +			<xsl:with-param name="kompletní" select="@kompletní = 'ano'"/>
    1.37 +		</xsl:call-template>
    1.38 +	</xsl:template>
    1.39 +	
    1.40 +	<xsl:template match="m:diagram[@src]">
    1.41 +		<xsl:call-template name="vložDiagram">
    1.42 +			<xsl:with-param name="zadání" select="unparsed-text(concat('../', $vstup, @src))"/>
    1.43 +			<xsl:with-param name="kompletní" select="not(@kompletní) or @kompletní = 'ano'"/>
    1.44 +		</xsl:call-template>
    1.45 +	</xsl:template>
    1.46 +    
    1.47 +    <xsl:template name="vložDiagram">
    1.48 +		<xsl:param name="zadání"/>
    1.49 +		<xsl:param name="kompletní"/>
    1.50 +		<xsl:variable name="souborDiagramu" select="j:vytvořDiagram($zadání, @orientace = 'vodorovně', $kompletní)"/>
    1.51 +		<xsl:choose>
    1.52  			<xsl:when test="$souborDiagramu">
    1.53  				<div class="diagram">
    1.54  					<a href="{$souborDiagramu}.svg">
    1.55 @@ -33,10 +48,10 @@
    1.56  						TODO: SVG+PNG:
    1.57  						<xsl:variable name="svgDiagramu" select="document(concat($výstup, $souborDiagramu, '.svg'))/svg:svg"/>
    1.58  						<object
    1.59 -							data="{$souborDiagramu}.svg"
    1.60 -							type="image/svg+xml"
    1.61 -							style="width: {$svgDiagramu/@width}; height: {$svgDiagramu/@height}">
    1.62 -								<img src="{$souborDiagramu}.png" alt="Diagram {$souborDiagramu}"/>
    1.63 +						data="{$souborDiagramu}.svg"
    1.64 +						type="image/svg+xml"
    1.65 +						style="width: {$svgDiagramu/@width}; height: {$svgDiagramu/@height}">
    1.66 +						<img src="{$souborDiagramu}.png" alt="Diagram {$souborDiagramu}"/>
    1.67  						</object>
    1.68  					-->
    1.69  					<xsl:if test="@nadpis">
    1.70 @@ -47,7 +62,7 @@
    1.71  			<xsl:otherwise>
    1.72  				<xsl:message terminate="yes">Při vytváření diagramu došlo k chybě.</xsl:message>
    1.73  			</xsl:otherwise>
    1.74 -    	</xsl:choose>
    1.75 -    </xsl:template>
    1.76 +		</xsl:choose>
    1.77 +	</xsl:template>
    1.78  
    1.79  </xsl:stylesheet>