insilmaril@12: <?xml version="1.0" encoding="UTF-8"?>
insilmaril@12: <!DOCTYPE xsl:stylesheet
insilmaril@12: [
insilmaril@12:    <!-- Namespace for XHTML -->
insilmaril@12:    <!ENTITY xhtmlns "http://www.w3.org/1999/xhtml">
insilmaril@12: ]>
insilmaril@12: 
insilmaril@12: <!--
insilmaril@12:     Author      : Uwe Drechsel  <vym@InSilmaril.de>
insilmaril@12: 	Credits to  : Thomas Schraitle for his patience in explaining XSL to me
insilmaril@12:     Description : transforms vym maps into KDE Bookmarks
insilmaril@12: -->
insilmaril@12: 
insilmaril@12: <xsl:stylesheet version="1.0"
insilmaril@12:     xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
insilmaril@12:     xmlns:date="http://exslt.org/dates-and-times"
insilmaril@12:     extension-element-prefixes="date">
insilmaril@12: 
insilmaril@12: 
insilmaril@12: <xsl:output method="xml"
insilmaril@12:     doctype-public="-//W3C//DTD XHTML 1.0 Transitional//EN"
insilmaril@12:     doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"
insilmaril@12:     encoding="UTF-8"
insilmaril@12:     indent="yes"
insilmaril@12:     media-type="application/xhtml+xml"/>
insilmaril@12: 
insilmaril@12: <!-- ======================================= -->
insilmaril@12: 
insilmaril@12: <xsl:template match="/">
insilmaril@12:   <xsl:apply-templates/>
insilmaril@12: </xsl:template>
insilmaril@12: 
insilmaril@12: 
insilmaril@12: <xsl:template match="text()"/>
insilmaril@12: 
insilmaril@12: 
insilmaril@12: <xsl:template match="vymmap">
insilmaril@12:   <xbel>
insilmaril@12:     <xsl:apply-templates/>
insilmaril@12:   </xbel>
insilmaril@12: </xsl:template>
insilmaril@12: 
insilmaril@12: 
insilmaril@12: <xsl:template match="mapcenter">
insilmaril@12: 
insilmaril@12:   <xsl:apply-templates/>
insilmaril@12: </xsl:template>
insilmaril@12: 
insilmaril@12: 
insilmaril@12: <xsl:template match="branch">
insilmaril@12:    <xsl:choose>
insilmaril@12:      <xsl:when test="heading='KDE'">
insilmaril@12:         <xsl:apply-templates select="branch" mode="kde"/>
insilmaril@12:      </xsl:when>
insilmaril@12:      <xsl:when test=". = 'Firefox'">
insilmaril@12:         <xsl:apply-templates mode="firefox"/>
insilmaril@12:      </xsl:when>
insilmaril@12:      <!-- ... -->
insilmaril@12:      <xsl:otherwise>
insilmaril@12:        <xsl:apply-templates/>
insilmaril@12:      </xsl:otherwise>
insilmaril@12:    </xsl:choose>
insilmaril@12: 
insilmaril@12:   <xsl:apply-templates/>
insilmaril@12: </xsl:template>
insilmaril@12: 
insilmaril@12: <xsl:template match="heading" mode="kde">
insilmaril@12:       <title>		
insilmaril@12:       <xsl:value-of select="normalize-space (.)"/>
insilmaril@12: 	  </title>
insilmaril@12: 
insilmaril@12:    <xsl:choose>
insilmaril@12:      <xsl:when test=". = 'KDE'">
insilmaril@12:         <xsl:apply-templates mode="kde"/>
insilmaril@12:      </xsl:when>
insilmaril@12:      <xsl:otherwise>
insilmaril@12:        <xsl:apply-templates/>
insilmaril@12:      </xsl:otherwise>
insilmaril@12:    </xsl:choose>
insilmaril@12: 
insilmaril@12:   <xsl:apply-templates/>
insilmaril@12: </xsl:template>
insilmaril@12: 
insilmaril@12: 
insilmaril@12: <xsl:template match="branch" mode="kde">
insilmaril@12: 	<xsl:choose>
insilmaril@12: 		<xsl:when test="@url">
insilmaril@12: 			<xsl:element name="bookmark">	
insilmaril@12: 				<xsl:attribute name="href" ><xsl:value-of select="@url" />
insilmaril@12: 				</xsl:attribute>
insilmaril@12: 				<xsl:apply-templates mode="kde"/>
insilmaril@12: 			</xsl:element>
insilmaril@12: 		</xsl:when>
insilmaril@12: 		<xsl:otherwise>
insilmaril@12: 			<xsl:choose>
insilmaril@12: 				<xsl:when test="contains(heading,'***')">
insilmaril@12: 					<separator folded="yes" />
insilmaril@12: 				</xsl:when>
insilmaril@12: 				<xsl:otherwise>
insilmaril@12: 					<folder folded="yes" icon="bookmark_folder">
insilmaril@12: 						<xsl:apply-templates mode="kde"/>
insilmaril@12: 					</folder>
insilmaril@12: 				</xsl:otherwise>
insilmaril@12: 			</xsl:choose>	
insilmaril@12: 
insilmaril@12: 	</xsl:otherwise>
insilmaril@12: 	</xsl:choose>
insilmaril@12: </xsl:template>
insilmaril@12: 
insilmaril@12: <!--
insilmaril@12: 		  <xsl:text>&#10;</xsl:text>
insilmaril@12: 
insilmaril@12: 				<xsl:message> WARNING: No @url attribute given of "<xsl:value-of select="normalize-space(heading)"/>"</xsl:message>
insilmaril@12: 
insilmaril@12: <xsl:template match="branch">
insilmaril@12:   <xsl:choose>
insilmaril@12:     <xsl:when test="@url">
insilmaril@12:       <xsl:text> *nokde* </xsl:text>
insilmaril@12:       <xsl:value-of select="@url"/>
insilmaril@12:       <xsl:text>&#10;</xsl:text>
insilmaril@12:     </xsl:when>
insilmaril@12:     <xsl:otherwise>
insilmaril@12:       <xsl:message> WARNING: No @url attribute given of "<xsl:value-of select="normalize-space(heading)"/>"</xsl:message>
insilmaril@12:     </xsl:otherwise>
insilmaril@12:   </xsl:choose>
insilmaril@12: 
insilmaril@12:   <xsl:apply-templates/>
insilmaril@12: 
insilmaril@12: </xsl:template>
insilmaril@12: -->
insilmaril@12: 
insilmaril@12: 
insilmaril@12: </xsl:stylesheet>