diff options
Diffstat (limited to 'xsl/deep.xsl')
-rw-r--r-- | xsl/deep.xsl | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/xsl/deep.xsl b/xsl/deep.xsl new file mode 100644 index 0000000..670c28b --- /dev/null +++ b/xsl/deep.xsl @@ -0,0 +1,35 @@ +<?xml version="1.0" encoding="UTF-8"?> +<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" + xmlns:dyn="http://exslt.org/dynamic" + extension-element-prefixes="dyn" +> +<xsl:output method="xml"/> +<xsl:include href="identity.xsl"/> + +<xsl:param name="sitemapuri"/> +<xsl:variable name="nav" select="document($sitemapuri,document(''))"/> +<xsl:param name="active"/> +<xsl:variable name="activenode" select="dyn:evaluate(concat('$nav',$active))"/> + +<xsl:variable name="lang" select="/html/@xml_lang"/> + +<xsl:template match="/"> + <html> + <xsl:copy-of select="html/@*"/> + <xsl:apply-templates select="/html/head"/> + <xsl:apply-templates select="/html/body"/> + <navigation> + <xsl:for-each select="$nav/sitemap/section[@name=$lang]/section"> + <xsl:if test="count($activenode|.//main|.//page)=count(.//main|.//page)"> + <link rel="same" href="resolve:{main/@name}" text="{@name}"/> + </xsl:if> + </xsl:for-each> + <xsl:for-each select="$nav/sitemap/section[@name and @title]"> + <xsl:variable name="this" select="$activenode/@name"/> + <link rel="lang" href="{concat('resolve:',@name,':',$this)}" text="{@title}"/> + </xsl:for-each> + </navigation> + </html> +</xsl:template> + +</xsl:stylesheet> |