xml version="1.0" encoding="iso-8859-15"?>



<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"
xmlns:h="http://www.w3.org/1999/xhtml">
<xsl:output method="xml" encoding="iso-8859-15" indent="yes"
doctype-public="+//IDN python.org//DTD XML Bookmark Exchange Language 1.0//EN//XML"
doctype-system="http://www.python.org/topics/xml/dtds/xbel-1.0.dtd"
/>


<xsl:template match="/">
<xbel><folder><title>Linux at Home Linkstitle>
<xsl:for-each select="//*[@id='maincontents']//h:li">
<xsl:variable name="f" select="document(h:a/@href)/h:html"/>
<folder>
<title><xsl:value-of select="h:a/h:strong"/>title>
<desc><xsl:value-of select="normalize-space(h:a/text())"/>desc>
<xsl:for-each select="$f//h:div[@id='maincontents']">
<xsl:call-template name="getbookmarks"/>
xsl:for-each>

folder>
xsl:for-each>
folder>xbel>
xsl:template>



<xsl:template name="getbookmarks">

<xsl:choose>

<xsl:when test="self::h:li or self::h:p">
<xsl:variable name="t" select="normalize-space()"/>
<xsl:for-each select=".//h:a[1]">
<xsl:call-template name="bookmark">
<xsl:with-param name="desc" select="$t"/>
xsl:call-template>
xsl:for-each>
<xsl:for-each select=".//h:a[position()!=1]">
<xsl:call-template name="bookmark"/>
xsl:for-each>
xsl:when>


<xsl:otherwise>
<xsl:for-each select="*">
<xsl:call-template name="getbookmarks"/>
xsl:for-each>
xsl:otherwise>

xsl:choose>

xsl:template>


<xsl:template name="bookmark">
<xsl:param name="href" select="@href"/>
<xsl:param name="desc" select="''"/>
<xsl:param name="title" select="normalize-space()"/>

<xsl:variable name="realdesc">
<xsl:choose>
<xsl:when test="starts-with($desc,$title)">
<xsl:choose>
<xsl:when test="starts-with(translate(substring-after($desc,$title),',.;','...'),'.')">
<xsl:value-of select="substring($desc,string-length($title) + 2)"/>
xsl:when>
<xsl:otherwise>
<xsl:value-of select="substring-after($desc,$title)"/>
xsl:otherwise>
xsl:choose>
xsl:when>
<xsl:otherwise>
<xsl:value-of select="$desc"/>
xsl:otherwise>
xsl:choose>
xsl:variable>

<bookmark>
<xsl:attribute name="href">
<xsl:choose>
<xsl:when test="starts-with($href,'http://') or starts-with($href,'ftp://') or starts-with($href,'mailto:')">
<xsl:value-of select="$href"/>
xsl:when>
<xsl:otherwise>
<xsl:value-of select="concat('http://www.xs4all.nl/~wbsoft/linux/links/',$href)"/>
xsl:otherwise>
xsl:choose>
xsl:attribute>
<title><xsl:value-of select="normalize-space($title)"/>title>
<xsl:if test="normalize-space($realdesc) != ''">
<desc><xsl:value-of select="normalize-space($realdesc)"/>desc>
xsl:if>
bookmark>
xsl:template>



xsl:stylesheet>