c3d2-web/transformation/page2html/include/navigation.xsl

51 lines
1.7 KiB
XML

<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0"
xmlns="http://www.w3.org/1999/xhtml"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:rss="http://purl.org/rss/1.0/"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:date="http://exslt.org/dates-and-times"
xmlns:str="http://exslt.org/strings"
exclude-result-prefixes="xsl rss rdf date str">
<xsl:template name="navitem">
<xsl:param name="file"/>
<xsl:param name="baseurl"/>
<xsl:variable name="xml_file" select="document(concat($file, '.xml'))" />
<a href="{$baseurl}{$file}.html">
<xsl:choose>
<xsl:when test="$xml_file/page/@title">
<xsl:attribute name="title">
<xsl:value-of select="$xml_file/page/@title"/>
</xsl:attribute>
<xsl:value-of select="$xml_file/page/@title"/>
</xsl:when>
<xsl:otherwise>
MISSING TITLE
</xsl:otherwise>
</xsl:choose>
</a>
</xsl:template>
<xsl:template name="navitems">
<xsl:param name="active" />
<ul>
<xsl:for-each select="document('navigation.xml')/navigation/file">
<li>
<xsl:if test=". = $active">
<xsl:attribute name="class">
active
</xsl:attribute>
</xsl:if>
<xsl:call-template name="navitem">
<xsl:with-param name="file" select="."/>
<xsl:with-param name="baseurl" select="$baseurl"/>
</xsl:call-template>
</li>
</xsl:for-each>
</ul>
</xsl:template>
</xsl:stylesheet>