Mercurial > hg > nginx-site
diff xslt/link.xslt @ 170:cd2698ea00ab
Added generated XSLTs.
author | Ruslan Ermilov <ru@nginx.com> |
---|---|
date | Wed, 02 Nov 2011 19:31:11 +0000 |
parents | |
children | e179a6487bbd |
line wrap: on
line diff
new file mode 100644 --- /dev/null +++ b/xslt/link.xslt @@ -0,0 +1,109 @@ +<?xml version="1.0" encoding="utf-8"?> +<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"> + + <xsl:template match="a[starts-with(@href, '/') and string() = '' and contains(@href, '.xml')]"> + + <a> + + <xsl:attribute name="href"> + <xsl:choose> + + <xsl:when test="starts-with(@href, $DIRNAME)"> + + <xsl:value-of select=" substring-after(document(concat($XML, @href))/article/@link |document(concat($XML, @href))/module/@link, $DIRNAME)"/> + </xsl:when> + + <xsl:otherwise> + + <xsl:value-of select=" concat($ROOT, document(concat($XML, @href))/article/@link |document(concat($XML, @href))/module/@link)"/> + </xsl:otherwise> + </xsl:choose> + </xsl:attribute> + + <xsl:value-of select=" document(concat($XML, @href))/article/@name |document(concat($XML, @href))/module/@name"/> + + </a> + </xsl:template> + + <xsl:template match="a[starts-with(@href, '/') and string() and contains(@href, '.xml')]"> + + <a> + + <xsl:attribute name="href"> + <xsl:choose> + + <xsl:when test="starts-with(@href, $DIRNAME)"> + + <xsl:value-of select=" substring-after(document(concat($XML, @href))/article/@link |document(concat($XML, @href))/module/@link, $DIRNAME)"/> + </xsl:when> + + <xsl:otherwise> + + <xsl:value-of select=" concat($ROOT, document(concat($XML, @href))/article/@link |document(concat($XML, @href))/module/@link)"/> + </xsl:otherwise> + </xsl:choose> + </xsl:attribute> + + <xsl:apply-templates/> + + </a> + </xsl:template> + + <xsl:template match="a"> + <a href="{@href}"> + <xsl:apply-templates/> + </a> + </xsl:template> + + <xsl:template match="img"> + <img src="{@href}"> + <xsl:apply-templates/> + </img> + </xsl:template> + + <xsl:template match="link[@url]"> + <a href="{@url}"> + <xsl:apply-templates/> + </a> + </xsl:template> + + <xsl:template match="link[@id and not(@doc)]"> + + <a href="#{@id}"> + <xsl:choose> + + <xsl:when test="count(node()) != 0"> + <xsl:apply-templates/> + </xsl:when> + <xsl:otherwise> + <xsl:value-of select="@id"/> + </xsl:otherwise> + </xsl:choose> + + </a> + </xsl:template> + + <xsl:template match="link[@doc and not(@id)]"> + + <a href="{substring-before(@doc, '.xml')}.html"> + <xsl:apply-templates/> + </a> + </xsl:template> + + <xsl:template match="link[@id and @doc]"> + + <a href="{substring-before(@doc, '.xml')}.html#{@id}"> + <xsl:choose> + + <xsl:when test="count(node()) != 0"> + <xsl:apply-templates/> + </xsl:when> + <xsl:otherwise> + <xsl:value-of select="@id"/> + </xsl:otherwise> + </xsl:choose> + + </a> + </xsl:template> + +</xsl:stylesheet>