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>

</xsl:text> insilmaril@37: insilmaril@37: insilmaril@37: <xsl:value-of select="vymmap/mapcenter/heading"/> insilmaril@37: <xsl:text>

</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>
</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>
</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: