insilmaril@219: <?xml version="1.0" encoding="UTF-8"?>
insilmaril@38: <!DOCTYPE xsl:stylesheet
insilmaril@38: [
insilmaril@38:    <!-- Namespace for XHTML -->
insilmaril@38:    <!ENTITY xhtmlns "http://www.w3.org/1999/xhtml">
insilmaril@38: ]>
insilmaril@38: 
insilmaril@38: <!--
insilmaril@38:     Document    : vym2xhtml.xsl
insilmaril@38:     Created     : 20040818
insilmaril@601: 	Changed		: 20051123
insilmaril@38:     License     : GPL
insilmaril@179:     Version     : 0.4.0
insilmaril@179:     VYM version : 1.7.5
insilmaril@38:     Author      : Thomas Schraitle <tom_schr@web.de>
insilmaril@601: 				  modified by Clemens Kraus (http://www.clemens-kraus.de)
insilmaril@38:     Description : transforms vym-files into XHTML.
insilmaril@38:     Bugs        : Many. ;) Produces at the moment not valid XHTML
insilmaril@38:                   Needs to checked.
insilmaril@179: 									- li/ul structure not ok
insilmaril@179: 		Changes			: - <br>s in headings removed
insilmaril@179: 									- error fixed in "alt" and "title"
insilmaril@38: -->
insilmaril@38: 
insilmaril@38: <xsl:stylesheet version="1.0"
insilmaril@38:     xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
insilmaril@38:     xmlns:date="http://exslt.org/dates-and-times"
insilmaril@38:     extension-element-prefixes="date"
insilmaril@38:     xmlns="&xhtmlns;">
insilmaril@38: 
insilmaril@38: 
insilmaril@38: <xsl:output method="xml"
insilmaril@38:     doctype-public="-//W3C//DTD XHTML 1.0 Transitional//EN"
insilmaril@38:     doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"
insilmaril@38:     encoding="UTF-8"
insilmaril@38:     indent="yes"
insilmaril@38:     media-type="application/xhtml+xml"/>
insilmaril@38: 
insilmaril@38: 
insilmaril@38: 
insilmaril@38: <!-- ====================================================================== -->
insilmaril@38: <!-- 1 = true, 0 = false -->
insilmaril@38: 
insilmaril@38: <!-- URL to CSS stylesheet -->
insilmaril@38: <xsl:param name="css.stylesheet" select="'vym.css'"/>
insilmaril@38: 
insilmaril@38: <!-- Should a default CSS stylesheet be used? -->
insilmaril@38: <xsl:param name="use.default.css.stylesheet" select="1"/>
insilmaril@38: 
insilmaril@38: <!-- Should textcolors be used? -->
insilmaril@38: <xsl:param name="use.textcolor" select="0"/>
insilmaril@38: 
insilmaril@38: <!-- Should an imagemap be generated? -->
insilmaril@38: <xsl:param name="use.imagemap" select="1"/>
insilmaril@38: 
insilmaril@38: <!-- URL to image for imagemap -->
insilmaril@38: <xsl:param name="imagemap" select="''"/>
insilmaril@38: 
insilmaril@38: <!-- This stylesheet is able to process the following VYM version -->
insilmaril@245: <xsl:param name="vym.version" select="'1.7.10'"/>
insilmaril@38: 
insilmaril@38: <!-- Should the VYM XML format be checked -->
insilmaril@38: <xsl:param name="checkvym.version" select="1"/>
insilmaril@38: 
insilmaril@38: <!-- Which is the image extension? -->
insilmaril@38: <xsl:param name="image.extension" select="'.png'"/>
insilmaril@38: 
insilmaril@38: <!-- Where are the flags? -->
insilmaril@38: <xsl:param name="image.flags.path" select="'flags/'"/>
insilmaril@38: 
insilmaril@38: <!-- Filename of the XML document -->
insilmaril@38: <xsl:param name="mapname" />
insilmaril@38: 
insilmaril@38: <!-- Should a footer be generated? -->
insilmaril@38: <xsl:param name="use.footer" select="1"/>
insilmaril@38: 
insilmaril@38: <!-- How should Links generated:
insilmaril@38:     name : Use only the name of the branch (default)
insilmaril@38:     url  : Use only the URL of the branch
insilmaril@38:     both : Use both
insilmaril@38: -->
insilmaril@38: <xsl:param name="link.style" select="'name'"/>
insilmaril@38: 
insilmaril@179: <!-- Accept different html-notes? 
insilmaril@179: 		Only for imported MindManager maps! -->
insilmaril@179: <xsl:param name="use.diffnotes" select="0"/>
insilmaril@38: 
insilmaril@38: <!-- Debuggin on/off? -->
insilmaril@38: <xsl:param name="debug" select="0"/>
insilmaril@179: 
insilmaril@179: 
insilmaril@38: <xsl:template name="generate.footer">
insilmaril@38:   <xsl:if test="$use.footer">
insilmaril@38:       <hr/>
insilmaril@38:       <table class="vym-footer">
insilmaril@38:          <tr >
insilmaril@38:          <td class="vym-footerL"><xsl:value-of select="$mapname"/></td>
insilmaril@38:          <td class="vym-footerC"><xsl:value-of select="vymmap/@date"/> </td>
insilmaril@38:          <!--<td class="vym-footerC"><xsl:value-of select="date:date()"/></td>-->
insilmaril@38:          <td class="vym-footerR">vym <xsl:value-of select="vymmap/@version"/></td>
insilmaril@38:          </tr>
insilmaril@38:       </table>
insilmaril@38:   </xsl:if>
insilmaril@38: </xsl:template>
insilmaril@38: 
insilmaril@38: 
insilmaril@38: 
insilmaril@38: 
insilmaril@38: 
insilmaril@38: <!-- ====================================================================== -->
insilmaril@38: <xsl:variable name="head.title">
insilmaril@38:    <xsl:choose>
insilmaril@38:       <xsl:when test="/vymmap/mapcenter/heading">
insilmaril@179: 			
insilmaril@179: 				<xsl:variable name="title">
insilmaril@179: 					<xsl:call-template name="gettitle" >
insilmaril@179: 						<xsl:with-param name="txt" select="/vymmap/mapcenter/heading" />
insilmaril@179: 					</xsl:call-template>
insilmaril@179: 				</xsl:variable>
insilmaril@179: 
insilmaril@179:         <xsl:value-of select="$title"/>
insilmaril@38:       </xsl:when>
insilmaril@38:       <xsl:otherwise></xsl:otherwise>
insilmaril@38:    </xsl:choose>
insilmaril@38: </xsl:variable>
insilmaril@38: 
insilmaril@38: <xsl:variable name="default.css.stylesheet">
insilmaril@38:    <xsl:text>
insilmaril@38: h1 {border-width: 1; border: solid; text-align: center}
insilmaril@38: div.imagemap { align: center; border: 0; }
insilmaril@38:    </xsl:text>
insilmaril@38: </xsl:variable>
insilmaril@38: 
insilmaril@38: 
insilmaril@38: <!-- ====================================================================== -->
insilmaril@38: <xsl:template name="generate.head">
insilmaril@38:    <head>
insilmaril@38:       <title><xsl:value-of select="$head.title"/></title>
insilmaril@38:       <xsl:if test="$use.default.css.stylesheet">
insilmaril@38:          <style type="text/css">
insilmaril@38:             <xsl:value-of select="$default.css.stylesheet"/>
insilmaril@38:          </style>
insilmaril@38:       </xsl:if>
insilmaril@38:       <xsl:if test="vymmap/@author!=''">
insilmaril@38:          <meta name="author" content="{vymmap/@author}"/>
insilmaril@38:       </xsl:if>
insilmaril@38:       <xsl:if test="vymmap/@comment!=''">
insilmaril@38:          <meta name="comment" content="{vymmap/@comment}"/>
insilmaril@38:       </xsl:if>
insilmaril@38:       <meta name="generator" content="vym"/>
insilmaril@38:       <xsl:if test="$css.stylesheet!=''">
insilmaril@38:          <link rel="stylesheet" id="css.stylesheet" href="{$css.stylesheet}"/>
insilmaril@38:       </xsl:if>
insilmaril@38:    </head>
insilmaril@38: </xsl:template>
insilmaril@38: 
insilmaril@38: 
insilmaril@38: <xsl:template name="check.vym.version">
insilmaril@38:    <xsl:if test="$checkvym.version">
insilmaril@38:       <xsl:if test="not(/vymmap/@version=$vym.version)">
insilmaril@38:          <xsl:message>
insilmaril@38:             <xsl:text>&#10;</xsl:text>
insilmaril@38:             <xsl:text>  WARNING:</xsl:text>
insilmaril@38:             <xsl:text> This stylesheet applies to VYM XML format v.</xsl:text>
insilmaril@38:             <xsl:value-of select="$vym.version"/>
insilmaril@38:             <xsl:text>.&#10;  Your XML format has v</xsl:text>
insilmaril@38:             <xsl:value-of select="/vymmap/@version"/>
insilmaril@38:             <xsl:text>.&#10;  Check your HTML output!</xsl:text>
insilmaril@38:             <xsl:text>&#10;&#10;</xsl:text>
insilmaril@38:          </xsl:message>
insilmaril@38:       </xsl:if>
insilmaril@38:    </xsl:if>
insilmaril@38: </xsl:template>
insilmaril@38: 
insilmaril@38: 
insilmaril@38: <!-- ====================================================================== -->
insilmaril@38: <xsl:template match="*">
insilmaril@38:    <xsl:message>
insilmaril@38:       <xsl:text>WARNING: Unknown tag "</xsl:text>
insilmaril@38:       <xsl:value-of select="local-name(.)"/>
insilmaril@38:       <xsl:text>": </xsl:text>
insilmaril@38:       <xsl:value-of select="normalize-space(.)"/>
insilmaril@38:       <xsl:text>&#10;</xsl:text>
insilmaril@38:    </xsl:message>
insilmaril@38: </xsl:template>
insilmaril@38: 
insilmaril@38: 
insilmaril@38: <xsl:template match="/">
insilmaril@38:    <xsl:call-template name="check.vym.version"/>
insilmaril@38: 
insilmaril@38:    <html xmlns="&xhtmlns;">
insilmaril@38:       <xsl:call-template name="generate.head"/>
insilmaril@38:       <body>
insilmaril@38:          <xsl:apply-templates/>
insilmaril@38:          <xsl:call-template name="generate.footer"/>
insilmaril@38:       </body>
insilmaril@38:    </html>
insilmaril@38: </xsl:template>
insilmaril@38: 
insilmaril@38: 
insilmaril@38: <xsl:template match="vymmap">
insilmaril@38:    <div class="vymmap">
insilmaril@38:       <xsl:apply-templates/>
insilmaril@38:    </div>
insilmaril@38: </xsl:template>
insilmaril@38: 
insilmaril@38: 
insilmaril@38: <xsl:template match="mapcenter">
insilmaril@38:    <div class="mapcenter">
insilmaril@38:       <xsl:apply-templates/>
insilmaril@38:    </div>
insilmaril@38: </xsl:template>
insilmaril@38: 
insilmaril@38: 
insilmaril@38: <xsl:template match="mapcenter/heading">
insilmaril@38:    <div class="vym-header">
insilmaril@38: 	   <xsl:apply-templates/>
insilmaril@38:    </div>
insilmaril@38:  
insilmaril@38:       <xsl:if test="$use.imagemap=1">
insilmaril@38:          <div class="vym-imagemap">
insilmaril@38:             <img src="{$imagemap}"
insilmaril@38:                alt="Imagemap"
insilmaril@38:                class="imagemap"
insilmaril@38:                usemap="#vym_imagemap"/>
insilmaril@38:          </div>
insilmaril@38:          <map name="vym_imagemap">
insilmaril@38:             <xsl:apply-templates select="../branch" mode="imagemap"/>
insilmaril@38:          </map>
insilmaril@38:       </xsl:if>
insilmaril@38: </xsl:template>
insilmaril@38: 
insilmaril@38: 
insilmaril@38: <xsl:template match="mapcenter/branch">
insilmaril@38:    <hr/>
insilmaril@38:    <ul class="branch">
insilmaril@38:       <xsl:apply-templates/>
insilmaril@38:    </ul>
insilmaril@38: </xsl:template>
insilmaril@38: 
insilmaril@38: 
insilmaril@38: <xsl:template match="branch">
insilmaril@38:    <ul class="branch">
insilmaril@38:       <xsl:apply-templates/>
insilmaril@38:    </ul>
insilmaril@38: </xsl:template>
insilmaril@38: 
insilmaril@38: 
insilmaril@38: <xsl:template match="heading">
insilmaril@38:    <li class="heading">
insilmaril@38: 	  <span id="{generate-id(..)}">
insilmaril@38:       <xsl:if test="@textColor!='' and $use.textcolor=1">
insilmaril@38:          <xsl:attribute name="style" >color: <xsl:value-of select="@textColor" />
insilmaril@38: 		 </xsl:attribute>
insilmaril@38:       </xsl:if>
insilmaril@38:       <xsl:choose>
insilmaril@38:          <xsl:when test="../@url">
insilmaril@38:             <xsl:variable name="url" select="../@url"/>
insilmaril@38: 
insilmaril@38:             <!-- Check, how links should be generated -->
insilmaril@38:             <xsl:choose>
insilmaril@38:                <xsl:when test="$link.style = 'name'">
insilmaril@38:                    <a href="{$url}">
insilmaril@306: 						<img src="{concat($image.flags.path,'flag-url-16x16.png')}" border="0" alt="URL"/>
insilmaril@179: 						<xsl:text> </xsl:text>
insilmaril@38: 						<xsl:apply-templates/>
insilmaril@38: 					</a>
insilmaril@38:                </xsl:when>
insilmaril@38:                <xsl:when test="$link.style = 'url'">
insilmaril@38: 					<a href="{$url}">
insilmaril@306: 						<img src="{concat($image.flags.path,'flag-url-16x16.png')}" border="0" alt="URL"/>
insilmaril@179: 						<xsl:text> </xsl:text>
insilmaril@38: 						<xsl:value-of select="$url"/>
insilmaril@38: 					</a>
insilmaril@38:                </xsl:when>
insilmaril@38:                <xsl:when test="$link.style = 'both'">
insilmaril@38:                   <a href="{$url}">
insilmaril@306: 						<img src="{concat($image.flags.path,'flag-url-16x16.png')}" border="0" alt="URL"/>
insilmaril@179: 						<xsl:text> </xsl:text>
insilmaril@179: 						<xsl:apply-templates/> (<xsl:value-of select="$url"/>)
insilmaril@38: 					</a>
insilmaril@38:                </xsl:when>
insilmaril@38:                <xsl:otherwise>
insilmaril@38:                   <xsl:message>
insilmaril@38:                      <xsl:text>WARNING: Parameter link.style doesn't contain the correct</xsl:text>
insilmaril@38:                      <xsl:text> value (name|url|both)</xsl:text>
insilmaril@38:                      <xsl:text>&#10; was "</xsl:text>
insilmaril@38:                      <xsl:value-of select="$link.style"/>
insilmaril@38:                      <xsl:text>"</xsl:text>
insilmaril@38:                   </xsl:message>
insilmaril@38:                   <a href="{$url}"><xsl:apply-templates/></a>
insilmaril@38:                </xsl:otherwise>
insilmaril@38:             </xsl:choose>
insilmaril@38: 
insilmaril@38:          </xsl:when>
insilmaril@38:          <xsl:otherwise>
insilmaril@179: 						<xsl:call-template name="gettitle" >
insilmaril@179: 							<xsl:with-param name="txt" select="." />
insilmaril@179: 						</xsl:call-template>
insilmaril@179: 						
insilmaril@38:          </xsl:otherwise>
insilmaril@38:       </xsl:choose>
insilmaril@38: 
insilmaril@38:       <xsl:for-each select="following-sibling::standardflag">
insilmaril@179:          <xsl:apply-templates select="current()" mode="standardflag"/><xsl:text> </xsl:text>
insilmaril@38:       </xsl:for-each>
insilmaril@38:       </span>
insilmaril@38:    </li>
insilmaril@38: </xsl:template>
insilmaril@38: 
insilmaril@38: 
insilmaril@38: <xsl:template match="floatimage">
insilmaril@38:    <xsl:variable name="filename">
insilmaril@38:       <xsl:choose>
insilmaril@38:          <xsl:when test="contains(@href,':')">
insilmaril@38:             <xsl:value-of select="substring-after(@href,':')"/>
insilmaril@38:          </xsl:when>
insilmaril@38:          <xsl:otherwise>
insilmaril@38:             <xsl:value-of select="@href"/>
insilmaril@38:          </xsl:otherwise>
insilmaril@38:       </xsl:choose>
insilmaril@38:    </xsl:variable>
insilmaril@38:    
insilmaril@38:   <xsl:if test="@floatExport='true'">
insilmaril@38:       <span><img src="{$filename}" alt="{$filename}"/></span>
insilmaril@38:   </xsl:if>
insilmaril@38: </xsl:template>
insilmaril@38: 
insilmaril@38: 
insilmaril@38: <xsl:template match="standardflag"/><!-- Do nothing in normal mode -->
insilmaril@38: 
insilmaril@38: <xsl:template match="standardflag" mode="standardflag">
insilmaril@38:    <span class="standardflag">
insilmaril@38:       <xsl:element name="img">
insilmaril@38:          <xsl:variable name="_srcimg">
insilmaril@38:          <xsl:choose>
insilmaril@38:             <xsl:when test="$image.flags.path">
insilmaril@38:                <xsl:value-of select="concat($image.flags.path,
insilmaril@38:                   .,
insilmaril@38:                   $image.extension)"/>
insilmaril@38:             </xsl:when>
insilmaril@38:             <xsl:otherwise>
insilmaril@38:                <xsl:value-of select="concat(., $image.extension)"/>
insilmaril@38:             </xsl:otherwise>
insilmaril@38:          </xsl:choose>
insilmaril@38:          </xsl:variable>
insilmaril@38:          <xsl:attribute name="src">
insilmaril@38:             <xsl:value-of select="$_srcimg"/>
insilmaril@38:          </xsl:attribute>
insilmaril@38:          <xsl:attribute name="alt">
insilmaril@38:             <xsl:value-of select="$_srcimg"/>
insilmaril@38:          </xsl:attribute>
insilmaril@38:       </xsl:element>
insilmaril@38:    </span>
insilmaril@38: </xsl:template>
insilmaril@38: 
insilmaril@38: <!-- Do nothing! -->
insilmaril@38: <xsl:template match="select"/>
insilmaril@38: <xsl:template match="setting"/>
insilmaril@38: 
insilmaril@38: 
insilmaril@38: <xsl:template match="htmlnote">
insilmaril@179:    <div class="vym-htmlnote">
insilmaril@179: 			<xsl:choose>
insilmaril@179: 				<xsl:when test="$use.diffnotes=1">
insilmaril@179: 	      	<xsl:copy-of select="."/>
insilmaril@179: 				</xsl:when>
insilmaril@179: 				<xsl:otherwise>
insilmaril@179: 					<xsl:apply-templates select=".//body/*"/><!-- Select only body elements -->
insilmaril@179: 				</xsl:otherwise>
insilmaril@179: 			</xsl:choose>
insilmaril@38:    </div>
insilmaril@38: </xsl:template>
insilmaril@38: 
insilmaril@38: <!-- Do nothing! We don't need some informational elements -->
insilmaril@38: <xsl:template match="htmlnote/html/*"/>
insilmaril@38: 
insilmaril@38: <xsl:template match="htmlnote/html/body">
insilmaril@38:    <xsl:copy-of select="."/>
insilmaril@38: </xsl:template>
insilmaril@38: 
insilmaril@38: <xsl:template match="htmlnote/html/body/*">
insilmaril@38:    <xsl:copy-of select="."/>
insilmaril@38: </xsl:template>
insilmaril@38: 
insilmaril@38: 
insilmaril@38: <!-- ====================================================================== -->
insilmaril@38: <xsl:template match="branch" mode="imagemap"> 
insilmaril@38:    <xsl:param name="node"/> 
insilmaril@38:    <xsl:variable name="title"> 
insilmaril@38:       <xsl:apply-templates mode="imagemap"/> 
insilmaril@38:    </xsl:variable> 
insilmaril@38:  
insilmaril@38:    <xsl:if test="$debug=1"> 
insilmaril@38:       <xsl:message> 
insilmaril@38:       branch/heading = "<xsl:value-of select="normalize-space($title)"/>" 
insilmaril@38:       </xsl:message> 
insilmaril@38:    </xsl:if> 
insilmaril@38:  
insilmaril@38:    <area shape="rect"> 
insilmaril@38:       <xsl:attribute name="href"> 
insilmaril@38:          <xsl:choose><!-- Fix begin (!) --> 
insilmaril@38:             <xsl:when test="$imagemap != ''"> 
insilmaril@38:                <xsl:value-of select="concat('#', generate-id(.))"/> 
insilmaril@38:             </xsl:when> 
insilmaril@38:             <xsl:when test="$imagemap and @url"> 
insilmaril@38:                <xsl:value-of select="@url"/> 
insilmaril@38:             </xsl:when> 
insilmaril@38:             <xsl:when test="$imagemap and @vymLink"> 
insilmaril@38:                <xsl:value-of select="concat( substring-before(@vymLink, 
insilmaril@38: '.vym'), '.html')"/> 
insilmaril@38:             </xsl:when> 
insilmaril@38:          </xsl:choose><!-- Fix end --> 
insilmaril@38:       </xsl:attribute> 
insilmaril@38:       <xsl:attribute name="alt"> 
insilmaril@179: 				 <xsl:call-template name="gettitle" >
insilmaril@179: 				 	<xsl:with-param name="txt" select="heading" />
insilmaril@179: 				 </xsl:call-template>
insilmaril@38:       </xsl:attribute> 
insilmaril@38:       <xsl:attribute name="title"> 
insilmaril@179: 				<xsl:call-template name="gettitle" >
insilmaril@179: 				 	<xsl:with-param name="txt" select="heading" />
insilmaril@179: 				</xsl:call-template>
insilmaril@38:       </xsl:attribute> 
insilmaril@38:       <xsl:attribute name="coords"> 
insilmaril@38:          <xsl:choose> 
insilmaril@38:             <xsl:when test="@x1!='' and @x2!='' and @y1!='' and @y2!=''"> 
insilmaril@38:                <xsl:value-of select="@x1"/> 
insilmaril@38:                <xsl:text>,</xsl:text> 
insilmaril@38:                <xsl:value-of select="@y1"/> 
insilmaril@38:                <xsl:text>,</xsl:text> 
insilmaril@38:                <xsl:value-of select="@x2"/> 
insilmaril@38:                <xsl:text>,</xsl:text> 
insilmaril@38:                <xsl:value-of select="@y2"/> 
insilmaril@38:             </xsl:when> 
insilmaril@38:             <xsl:otherwise> 
insilmaril@38:                <!-- 
insilmaril@38:                <xsl:message> 
insilmaril@38:                   <xsl:text>ERROR: Some coordinates in branch are 
insilmaril@38: missing!&#10;</xsl:text> 
insilmaril@38:                   <xsl:text>       See branch with </xsl:text> 
insilmaril@38:                   <xsl:value-of select="normalize-space($title)"/> 
insilmaril@179:                </xsl:message>
insilmaril@38:                //--> 
insilmaril@38:             </xsl:otherwise> 
insilmaril@38:          </xsl:choose> 
insilmaril@38:       </xsl:attribute> 
insilmaril@38:    </area> 
insilmaril@38:    <xsl:apply-templates select="./branch" mode="imagemap"/> 
insilmaril@38: </xsl:template> 
insilmaril@38: 
insilmaril@38: 
insilmaril@179: <xsl:template match="heading" mode="imagemap">
insilmaril@179: 		<xsl:call-template name="gettitle" >
insilmaril@179: 			<xsl:with-param name="txt" select="." />
insilmaril@179: 		</xsl:call-template>
insilmaril@179: 		<!--<xsl:message>title2: <xsl:value-of select="$title" /></xsl:message>-->
insilmaril@38: 
insilmaril@179:     <xsl:apply-templates mode="imagemap"/>
insilmaril@38: </xsl:template>
insilmaril@38: 
insilmaril@38: 
insilmaril@179: <xsl:template match="xlink">
insilmaril@179: 		<xsl:element name="a">
insilmaril@179: 			<xsl:attribute name="name">
insilmaril@179: 				<xsl:value-of select="translate(@beginBranch, ':,', '')"/>
insilmaril@179: 			</xsl:attribute>
insilmaril@179: 		</xsl:element>
insilmaril@179: 
insilmaril@179: 		<div class="xlink">
insilmaril@179: 			<xsl:text>See: </xsl:text>
insilmaril@179: 			<xsl:element name="a">
insilmaril@179: 				<xsl:attribute name="href">
insilmaril@179: 					<xsl:text>#</xsl:text><!--<xsl:value-of select="translate(@endBranch, ':,', '')"/>-->
insilmaril@179: 				</xsl:attribute>
insilmaril@179: 				<!--<xsl:value-of select="translate(@endBranch, ':,', '')"/>-->reference
insilmaril@179: 			</xsl:element>
insilmaril@179: 				<!--<xsl:apply-templates/>-->
insilmaril@179: 				<!--<xsl:message>->xlink: <xsl:value-of select="concat(@endBranch, ' ', position())" /></xsl:message>-->
insilmaril@179:    </div>
insilmaril@179: </xsl:template>
insilmaril@179: 
insilmaril@179: 
insilmaril@179: <xsl:template name="gettitle">
insilmaril@179: 		<xsl:param name="txt" select="." />
insilmaril@179: 		
insilmaril@179: 		<xsl:variable name="br">
insilmaril@179: 			<xsl:text disable-output-escaping="yes">&lt;br&gt;</xsl:text>
insilmaril@179: 		</xsl:variable>
insilmaril@179: 		
insilmaril@179: 		<xsl:choose>
insilmaril@179: 			<xsl:when test="contains($txt, $br)" >
insilmaril@179: 				<xsl:variable name="right" select="substring-after($txt, $br)" />
insilmaril@179: 				<xsl:variable name="left" select="substring-before($txt, $br)" />
insilmaril@179: 				<xsl:variable name="txt" select="concat( $left, ' ', $right )" />
insilmaril@179: 					<xsl:call-template name="gettitle" >
insilmaril@179: 						<xsl:with-param name="txt" select="$txt" />
insilmaril@179: 					</xsl:call-template>
insilmaril@179: 			</xsl:when>
insilmaril@179: 			<xsl:otherwise>
insilmaril@179: 				<xsl:value-of select="$txt" />
insilmaril@179: 			</xsl:otherwise>
insilmaril@179: 		</xsl:choose>
insilmaril@179: </xsl:template>
insilmaril@179: 
insilmaril@179: 
insilmaril@179: </xsl:stylesheet>