insilmaril@37: <?xml version="1.0" encoding="UTF-8" ?>
insilmaril@37: 
insilmaril@37: <!--
insilmaril@37:     Document   : vym2txt.xsl
insilmaril@37:     Created on : 20040317
insilmaril@37: 	Modified   : 20040417
insilmaril@37: 	Version    : 0.1
insilmaril@37:     Author     : Clemens Kraus (http://www.clemens-kraus.de)
insilmaril@37:     Description: transforms vym-files into text-format.
insilmaril@37:     
insilmaril@37: -->
insilmaril@37: 
insilmaril@37: <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
insilmaril@37: 
insilmaril@37:   <xsl:output method="text" indent="no" encoding="UTF-8"/> 
insilmaril@37:   <xsl:param name="filenamep" />
insilmaril@37:   <xsl:variable name="filename" select="$filenamep"/>
insilmaril@37:   
insilmaril@37:   <xsl:variable name="fn" >
insilmaril@37: 	<xsl:call-template name="getfn" >
insilmaril@37: 		<xsl:with-param name="txt" select="$filename" />
insilmaril@37: 	</xsl:call-template>
insilmaril@37:   </xsl:variable>
insilmaril@37: 
insilmaril@37:   <xsl:variable name="path" >
insilmaril@37: 	  <xsl:value-of select="normalize-space( substring($filename, 1, number(string-length($filename)-string-length($fn))) )" />
insilmaril@37:   </xsl:variable>
insilmaril@37: 
insilmaril@37: 
insilmaril@37:   <xsl:template match="/">
insilmaril@37:   
insilmaril@37:     <xsl:text>#VYM-Export VYM-Version:</xsl:text><xsl:value-of select="vymmap/@version"/>
insilmaril@37:     <xsl:text>&#xA;&#xA;</xsl:text>
insilmaril@37: 	  
insilmaril@37: 	
insilmaril@37:     <xsl:value-of select="vymmap/mapcenter/heading"/>
insilmaril@37: 	<xsl:text>&#xA;&#xA;</xsl:text>
insilmaril@37: 		
insilmaril@37: 	
insilmaril@37: 	<xsl:apply-templates select="vymmap/mapcenter/branch" >
insilmaril@37: 		<xsl:with-param name="indent" select="''" />
insilmaril@37: 	</xsl:apply-templates>
insilmaril@37: 
insilmaril@37:   </xsl:template>
insilmaril@37: 
insilmaril@37: 	
insilmaril@37:   
insilmaril@37:   
insilmaril@37:   <xsl:template match="branch">
insilmaril@37:     <xsl:param name="width" select="70" />
insilmaril@37: 	
insilmaril@37: 	
insilmaril@37: 	<xsl:call-template name="gen-anchor-tag" >
insilmaril@37: 		<xsl:with-param name="indent" select="$indent" />
insilmaril@37: 	</xsl:call-template>
insilmaril@37: 	  
insilmaril@37: 	
insilmaril@37: 	<xsl:apply-templates select="branch" >
insilmaril@37: 		<xsl:with-param name="indent" select="concat($indent, ' ')" />
insilmaril@37: 	</xsl:apply-templates>
insilmaril@37: 
insilmaril@37:   </xsl:template>
insilmaril@37: 
insilmaril@37: 
insilmaril@37:   
insilmaril@37:   
insilmaril@37:   <xsl:template name="gen-anchor-tag">
insilmaril@37:     <xsl:param name="indent"/>
insilmaril@37: 
insilmaril@37: 	<xsl:value-of select="$indent"/><xsl:text>- </xsl:text><xsl:value-of select="heading"/>
insilmaril@37: 
insilmaril@37: 	
insilmaril@37:     <xsl:if test="@url != ''"> (<xsl:value-of select="@url"/>)</xsl:if>
insilmaril@37: 	
insilmaril@37: 	
insilmaril@37: 	<xsl:apply-templates select="note/@href" >
insilmaril@37: 		<xsl:with-param name="indent" select="$indent" />
insilmaril@37: 	</xsl:apply-templates>
insilmaril@37: 
insilmaril@37:     <xsl:text>&#xA;</xsl:text>
insilmaril@37:   </xsl:template>
insilmaril@37: 
insilmaril@37: 
insilmaril@37:   
insilmaril@37:   
insilmaril@37:   
insilmaril@37:   <xsl:template match="note/@href">
insilmaril@37:     <xsl:param name="indent"/>
insilmaril@37:     
insilmaril@37:     <xsl:variable name="actualnotename">
insilmaril@37:       <xsl:value-of select="substring-after(current(),':')"/>
insilmaril@37:     </xsl:variable>
insilmaril@37: 
insilmaril@37:     <xsl:variable name="note-name">
insilmaril@37: 	    <xsl:if test="$path = ''">
insilmaril@37: 			<xsl:value-of select="$actualnotename"/>
insilmaril@37: 		</xsl:if>
insilmaril@37: 	    <xsl:if test="not($path = '')">
insilmaril@37: 			<xsl:value-of select="concat($path, '/', $actualnotename)"/>
insilmaril@37: 		</xsl:if>
insilmaril@37: 	</xsl:variable>
insilmaril@37: 	
insilmaril@37: 	
insilmaril@37: 	<xsl:variable name="currentID" select="@id" />
insilmaril@37: 	
insilmaril@37:     <xsl:text>&#xA;</xsl:text>
insilmaril@37:   
insilmaril@37: 	<xsl:for-each select="document($note-name)/note/line">
insilmaril@37: 		<xsl:value-of select="$indent"/><xsl:text>  </xsl:text><xsl:value-of select="."/>
insilmaril@37: 	</xsl:for-each>
insilmaril@37: 		
insilmaril@37:   </xsl:template>
insilmaril@37: 
insilmaril@37:   
insilmaril@37:   
insilmaril@37:   
insilmaril@37:   
insilmaril@37:   <xsl:template name="getfn">
insilmaril@37: 	  <xsl:param name="txt" select="." />
insilmaril@37: 	  
insilmaril@37: 	  <xsl:choose>
insilmaril@37: 		  <xsl:when test="contains($txt, '/')" >
insilmaril@37: 		  	<xsl:variable name="right" select="substring-after($txt, '/')" />
insilmaril@37: 			<xsl:if test="string-length($right)>1" >
insilmaril@37: 			  <xsl:call-template name="getfn" >
insilmaril@37: 				  <xsl:with-param name="txt" select="$right" />
insilmaril@37: 			  </xsl:call-template>
insilmaril@37: 			</xsl:if>
insilmaril@37: 		  </xsl:when>
insilmaril@37: 		  <xsl:otherwise>
insilmaril@37: 			  <xsl:value-of select="$txt" />
insilmaril@37: 		  </xsl:otherwise>
insilmaril@37: 	  </xsl:choose>
insilmaril@37: 	  
insilmaril@37:   </xsl:template>
insilmaril@37:   
insilmaril@37: </xsl:stylesheet>
insilmaril@37: