Mercurial > hg > nginx-site
view xslt/menu.xslt @ 1763:a7974b8d2a23
Updated docs for the upcoming NGINX Plus release.
author | Ruslan Ermilov <ru@nginx.com> |
---|---|
date | Mon, 22 Aug 2016 14:20:57 +0300 |
parents | c454373427ef |
children |
line wrap: on
line source
<?xml version="1.0" encoding="utf-8"?> <!-- Copyright (C) Igor Sysoev Copyright (C) Nginx, Inc. --> <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"> <xsl:template match="menu/item"> <!-- .. variables are not allowed in a template match predicate, .. therefore, we have to use ugly "if"s instead of elegant .. "menu/item[@href = $LINK]", etc. --> <xsl:choose><xsl:when test="@href = $LINK"> <xsl:choose><xsl:when test="$YEAR and @href='/'"> <a href="./"> news </a> <br/> </xsl:when><xsl:otherwise> <xsl:value-of select=" normalize-space(text()) "/><br/> </xsl:otherwise></xsl:choose> </xsl:when><xsl:otherwise> <!-- .. If a menu item has the switchlang attribute, then it will point .. to the same document in the specified language. --> <xsl:choose><xsl:when test="$TRANS and @switchlang"> <!-- .. Check if list of available translations ($TRANS) contains .. the language we are going to generate link to. .. If yes - generate link, otherwise just name the language. --> <xsl:choose><xsl:when test="contains($TRANS, @switchlang)"> <a> <xsl:attribute name="href"> <xsl:value-of select=" concat($ROOT, '/', @switchlang, '/', substring-after($LINK, concat('/', $LANG, '/'))) "/> </xsl:attribute> <xsl:value-of select=" normalize-space(text()) "/> </a> </xsl:when><xsl:otherwise> <a class="notrans"> <xsl:value-of select=" normalize-space(text()) "/> </a> </xsl:otherwise></xsl:choose> </xsl:when><xsl:otherwise> <a> <xsl:attribute name="href"> <xsl:choose><xsl:when test="starts-with(@href, $DIRNAME)"> <xsl:choose><xsl:when test="substring-after(@href, $DIRNAME) = ''"> <xsl:text>./</xsl:text> </xsl:when><xsl:otherwise> <xsl:value-of select=" substring-after(@href, $DIRNAME) "/> </xsl:otherwise></xsl:choose> </xsl:when><xsl:otherwise> <xsl:value-of select=" concat($ROOT, @href) "/> </xsl:otherwise></xsl:choose> </xsl:attribute> <xsl:value-of select=" normalize-space(text()) "/> </a> <xsl:if test="@lang"> <xsl:text> [</xsl:text> <xsl:value-of select="@lang"/> <xsl:text>]</xsl:text></xsl:if> </xsl:otherwise></xsl:choose> <br/> </xsl:otherwise></xsl:choose> </xsl:template> <xsl:template match="menu/item[@year]"> <xsl:if test="$YEAR or $LINK='/'"> <xsl:choose><xsl:when test="$YEAR=@year"> <xsl:value-of select="@year"/> <br/> </xsl:when><xsl:otherwise> <xsl:if test="@href"> <a href="{@href}"> <xsl:value-of select="@year"/> </a> </xsl:if> <br/> </xsl:otherwise></xsl:choose> </xsl:if> </xsl:template> <xsl:template match="menu/item[starts-with(@href, 'http://') or starts-with(@href, 'https://')]"> <a href="{@href}"> <xsl:value-of select=" normalize-space(text()) "/> </a> <xsl:if test="@lang"> <xsl:text> [</xsl:text> <xsl:value-of select="@lang"/> <xsl:text>]</xsl:text></xsl:if> <br/> </xsl:template> <xsl:template match="menu/item[not(@href) and not(@year)]"> <xsl:value-of select=" normalize-space(text()) "/> <br/> </xsl:template> </xsl:stylesheet>