--- a
+++ b/templates/menu.xsl
@@ -0,0 +1,129 @@
+<?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:myxsl="http://www.w3.org/1999/XSL/TransformAlias"
+		xmlns:exslt="http://exslt.org/common"
+		xmlns:xhtml="http://www.w3.org/1999/xhtml"
+		xmlns:xi="http://www.w3.org/2001/XInclude"
+		extension-element-prefixes="exslt"
+		exclude-result-prefixes="xhtml xi #default">
+
+<xsl:output omit-xml-declaration="yes" method="xml" />
+
+<xsl:preserve-space elements="*" />
+
+<xsl:template match="@xml:base"/>
+
+<!-- from http://dev.ektron.com/kb_article.aspx?id=492 -->
+<xsl:template match="*">
+  <xsl:element name="{name()}">
+    <xsl:apply-templates select="@*|node()"/>
+  </xsl:element>
+</xsl:template>
+<xsl:template match="@*|text()|comment()|processing-instruction()">
+  <xsl:copy>
+    <xsl:apply-templates select="@*|node()"/>
+  </xsl:copy>
+</xsl:template>
+
+<xsl:namespace-alias stylesheet-prefix="myxsl" result-prefix="xsl" />
+<!-- xsl:namespace-alias stylesheet-prefix="myxmlns" result-prefix="xmlns" / -->
+
+<xsl:template match="/">
+  <myxsl:stylesheet version="1.0"
+		    xmlns="http://www.w3.org/1999/xhtml"
+		    xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+		    xmlns:exslt="http://exslt.org/common"
+		    xmlns:xhtml="http://www.w3.org/1999/xhtml"
+		    extension-element-prefixes="exslt"
+		    exclude-result-prefixes="#default">
+
+  <myxsl:output omit-xml-declaration="yes" method="text" />
+
+  <myxsl:strip-space elements="*" />
+
+  <myxsl:template match="@xml:base"/>
+
+  <!-- from http://dev.ektron.com/kb_article.aspx?id=492 -->
+  <myxsl:template match="*">
+    <myxsl:element name="{{name()}}">
+      <myxsl:apply-templates select="@*|node()"/>
+    </myxsl:element>
+  </myxsl:template>
+  <myxsl:template match="@*|text()|comment()|processing-instruction()">
+    <myxsl:copy>
+      <myxsl:apply-templates select="@*|node()"/>
+    </myxsl:copy>
+  </myxsl:template>
+
+  <myxsl:template name="xine-menu">
+    <myxsl:param name="category" />
+    <myxsl:param name="id" />
+    <ul xmlns="http://www.w3.org/1999/xhtml" id="menu-list">
+      <xsl:apply-templates />
+    </ul>
+  </myxsl:template>
+
+  </myxsl:stylesheet>
+</xsl:template>
+
+<xsl:template match="pages">
+  <xsl:apply-templates />
+</xsl:template>
+
+<xsl:template match="page">
+  <a>
+    <xsl:attribute name="href">
+      <xsl:text>/</xsl:text>
+      <xsl:value-of select="./@id" />
+    </xsl:attribute>
+    <xsl:value-of select="./@title" />
+  </a>
+</xsl:template>
+
+<xsl:template match="page-xhtml10-transitional">
+  <a>
+    <xsl:attribute name="href">
+      <xsl:text>/</xsl:text>
+      <xsl:value-of select="./@id" />
+    </xsl:attribute>
+    <xsl:value-of select="./@title" />
+  </a>
+</xsl:template>
+
+<xsl:template match="link">
+  <a>
+    <xsl:attribute name="href">
+      <xsl:value-of select="./@src" />
+    </xsl:attribute>
+    <xsl:value-of select="./@title" />
+  </a>
+</xsl:template>
+
+<xsl:template match="menuitem">
+  <li>
+    <myxsl:if test="'{@id}' and contains($id, '{@id}')">
+      <myxsl:attribute name="class">current</myxsl:attribute>
+    </myxsl:if>
+    <xsl:apply-templates />
+  </li>
+</xsl:template>
+
+<xsl:template match="menugroup">
+  <ul>
+    <myxsl:attribute name="class">
+      <myxsl:choose>
+        <myxsl:when test="contains($category, '{@category}')">
+          <myxsl:text>current</myxsl:text>
+        </myxsl:when>
+        <myxsl:otherwise>
+          <myxsl:text>other</myxsl:text>
+        </myxsl:otherwise>
+      </myxsl:choose>
+    </myxsl:attribute>
+    <xsl:apply-templates />
+  </ul>
+</xsl:template>
+
+</xsl:stylesheet>