Mercurial > hg > nginx-site
changeset 1085:c454373427ef
Regenerated.
author | Maxim Dounin <mdounin@mdounin.ru> |
---|---|
date | Fri, 28 Feb 2014 20:12:47 +0400 |
parents | be1d72ba7e5f |
children | 710767011227 |
files | xslt/article.xslt xslt/body.xslt xslt/books.xslt xslt/content.xslt xslt/directive.xslt xslt/dirindex.xslt xslt/dirname.xslt xslt/donate.xslt xslt/download.xslt xslt/error.xslt xslt/ga.xslt xslt/link.xslt xslt/menu.xslt xslt/news.xslt xslt/rss.xslt xslt/security.xslt xslt/style.xslt xslt/versions.xslt |
diffstat | 18 files changed, 1030 insertions(+), 1793 deletions(-) [+] |
line wrap: on
line diff
--- a/xslt/article.xslt Fri Feb 21 20:15:37 2014 +0400 +++ b/xslt/article.xslt Fri Feb 28 20:12:47 2014 +0400 @@ -1,83 +1,57 @@ <?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:output indent="no" version="4.0" encoding="utf-8" method="html"/> - - <xsl:strip-space elements="article section"/> - - <xsl:param select="'../xml'" name="XML"/> - - <xsl:param name="YEAR"/> +<xsl:output method="html" version="4.0" indent="no" encoding="utf-8"/> - <xsl:param name="ORIGIN"/> - - <xsl:param name="TRANS"/> - - <xsl:variable select="/article/@link | /module/@link" name="LINK"/> - - <xsl:variable select="/article/@lang | /module/@lang" name="LANG"/> - - <xsl:include href="dirname.xslt"/> +<xsl:strip-space elements="article section"/> - <xsl:include href="link.xslt"/> - - <xsl:include href="style.xslt"/> - - <xsl:include href="body.xslt"/> - - <xsl:include href="menu.xslt"/> - - <xsl:include href="ga.xslt"/> +<!-- + .. a current directory of a XSLT script is where the script is stored, + .. but not where XSLT processor has been started to run the script + --> +<xsl:param select="'../xml'" name="XML"/> +<xsl:param name="YEAR"/> +<xsl:param name="ORIGIN"/> +<xsl:param name="TRANS"/> - <xsl:include href="content.xslt"/> - - <xsl:include href="books.xslt"/> - - <xsl:include href="directive.xslt"/> - - <xsl:include href="donate.xslt"/> - - <xsl:include href="download.xslt"/> +<xsl:variable select="/article/@link | /module/@link" name="LINK"/> +<xsl:variable select="/article/@lang | /module/@lang" name="LANG"/> - <xsl:include href="security.xslt"/> - - <xsl:include href="versions.xslt"/> - - <xsl:template match="/article | /module"> - - <html> +<xsl:include href="dirname.xslt"/> +<xsl:include href="link.xslt"/> +<xsl:include href="style.xslt"/> +<xsl:include href="body.xslt"/> +<xsl:include href="menu.xslt"/> +<xsl:include href="ga.xslt"/> +<xsl:include href="content.xslt"/> +<xsl:include href="books.xslt"/> +<xsl:include href="directive.xslt"/> +<xsl:include href="donate.xslt"/> +<xsl:include href="download.xslt"/> +<xsl:include href="security.xslt"/> +<xsl:include href="versions.xslt"/> - <xsl:if test="@lang = 'he'"> - <xsl:attribute name="dir"> - <xsl:text>rtl</xsl:text> - </xsl:attribute> - </xsl:if> - - <xsl:if test="@lang = 'cn'"> - <xsl:attribute name="lang"> - <xsl:text>zh-CN</xsl:text> - </xsl:attribute> - </xsl:if> - <head> +<xsl:template match="/article | /module"> + <html> - <title> - <xsl:value-of select="@name"/> - </title> + <xsl:if test="@lang = 'he'"> <xsl:attribute name="dir"> <xsl:text>rtl</xsl:text> </xsl:attribute> </xsl:if> - <xsl:call-template name="style"> - <xsl:with-param select="@lang" name="lang"/> - </xsl:call-template> + <xsl:if test="@lang = 'cn'"> <xsl:attribute name="lang"> <xsl:text>zh-CN</xsl:text> </xsl:attribute> </xsl:if> - <xsl:call-template name="ga"/> + <head> - </head> + <title> <xsl:value-of select="@name"/> </title> - <xsl:call-template name="body"> - <xsl:with-param select="@lang" name="lang"/> - </xsl:call-template> + <xsl:call-template name="style"><xsl:with-param select="@lang" name="lang"/></xsl:call-template><xsl:call-template name="ga"/></head> - </html> - </xsl:template> + <xsl:call-template name="body"><xsl:with-param select="@lang" name="lang"/></xsl:call-template></html> +</xsl:template> + </xsl:stylesheet>
--- a/xslt/body.xslt Fri Feb 21 20:15:37 2014 +0400 +++ b/xslt/body.xslt Fri Feb 28 20:12:47 2014 +0400 @@ -1,248 +1,139 @@ <?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 name="body"> - <xsl:param name="lang"/> - - <xsl:variable name="MENU_ALIGN"> - <xsl:choose> - - <xsl:when test="$lang = 'he'"> - <xsl:text>left</xsl:text> - </xsl:when> - <xsl:otherwise> - <xsl:text>right</xsl:text> - </xsl:otherwise> - </xsl:choose> - </xsl:variable> - - <xsl:variable name="INDEX_ALIGN"> - <xsl:choose> - - <xsl:when test="$lang = 'he'"> - <xsl:text>right</xsl:text> - </xsl:when> - <xsl:otherwise> - <xsl:text>left</xsl:text> - </xsl:otherwise> - </xsl:choose> - </xsl:variable> - - <body> +<xsl:template name="body"><xsl:param name="lang"/> - <table width="100%"> - - <tr> - - <td width="70%"> - - <div id="banner"> - - <xsl:if test="@lang = 'he'"> - <xsl:attribute name="class"> - <xsl:text>ltr</xsl:text> - </xsl:attribute> - </xsl:if> - - <center> + <xsl:variable name="MENU_ALIGN"> + <xsl:choose><xsl:when test="$lang = 'he'"> <xsl:text>left</xsl:text> </xsl:when><xsl:otherwise> <xsl:text>right</xsl:text> </xsl:otherwise></xsl:choose> + </xsl:variable> - <table> - - <tr> - - <td align="center"> - - <strong>Looking to make your web app faster? Look no further!</strong> - - </td> - - </tr> - - <tr> - - <td align="center"> + <xsl:variable name="INDEX_ALIGN"> + <xsl:choose><xsl:when test="$lang = 'he'"> <xsl:text>right</xsl:text> </xsl:when><xsl:otherwise> <xsl:text>left</xsl:text> </xsl:otherwise></xsl:choose> + </xsl:variable> - <i>NGINX Plus for HTTP load balancing, caching and SSL offload — - - <a href="http://nginx.com/products/">Free 30-Day Trial</a>. - </i> - - </td> - - </tr> - - </table> - - </center> - - </div> - - </td> - - <td align="right"> - - <xsl:if test="@lang = 'he'"> - <xsl:attribute name="align"> - <xsl:text>left</xsl:text> - </xsl:attribute> - </xsl:if> - - <a href="http://nginx.org"> - - <img src="http://nginx.org/nginx.gif" alt="nginx" border="0"/> + <body> + <table width="100%"> + <tr> + <td width="70%"> + <div id="banner"> + <xsl:if test="@lang = 'he'"> <xsl:attribute name="class"> <xsl:text>ltr</xsl:text> </xsl:attribute> </xsl:if> + <center> + <table> + <tr> + <td align="center"> + <strong>Looking to make your web app faster? Look no further!</strong> + </td> + </tr> + <tr> + <td align="center"> + <i>NGINX Plus for HTTP load balancing, caching and SSL offload — + <a href="http://nginx.com/products/">Free 30-Day Trial</a>.</i> + </td> + </tr> + </table> + </center> + </div> + </td> + <td align="right"> + <xsl:if test="@lang = 'he'"> <xsl:attribute name="align"> <xsl:text>left</xsl:text> </xsl:attribute> </xsl:if> + <a href="http://nginx.org"> + <img src="http://nginx.org/nginx.gif" alt="nginx" border="0"/> + </a> + </td> + </tr> - </a> - - </td> - - </tr> + <tr> + <td width="70%"><center><h3> + <xsl:value-of select="@name"/> <xsl:if test="$YEAR"> <xsl:text>: </xsl:text> <xsl:value-of select="$YEAR"/> </xsl:if> + </h3></center></td> - <tr> - - <td width="70%"> - <center> - <h3> + <td rowspan="2" align="{$MENU_ALIGN}" valign="top"> + <br/> - <xsl:value-of select="@name"/> - <xsl:if test="$YEAR"> - <xsl:text>: </xsl:text> - <xsl:value-of select="$YEAR"/> - </xsl:if> + <xsl:apply-templates select="document(concat($XML, '/menu.xml')) + /menus/menu[@lang = $lang]/item"/> + </td> - </h3> - </center> - </td> + </tr> - <td rowspan="2" align="{$MENU_ALIGN}" valign="top"> - - <br/> + <tr><td valign="top"> - <xsl:apply-templates select="document(concat($XML, '/menu.xml')) /menus/menu[@lang = $lang]/item"/> + <xsl:if test="$ORIGIN and document(concat($XML, '/', $ORIGIN))/*/@rev and + (not(@rev) or + @rev != document(concat($XML, '/', $ORIGIN))/*/@rev)"> + <span> - </td> - - </tr> + <xsl:if test="@lang = 'he'"> <xsl:attribute name="class"> <xsl:text>ltr</xsl:text> </xsl:attribute> </xsl:if> - <tr> - <td valign="top"> - - <xsl:if test="$ORIGIN and document(concat($XML, '/', $ORIGIN))/*/@rev and (not(@rev) or @rev != document(concat($XML, '/', $ORIGIN))/*/@rev)"> - - <span> - - <xsl:if test="@lang = 'he'"> - <xsl:attribute name="class"> - <xsl:text>ltr</xsl:text> - </xsl:attribute> - </xsl:if> + <blockquote class="note"> - <blockquote class="note"> - <xsl:choose> - - <xsl:when test="document(concat($XML, '/i18n.xml')) /i18n/text[@lang = $lang]/item[@id='outdated']"> - - <xsl:apply-templates select="document(concat($XML, '/i18n.xml')) /i18n/text[@lang = $lang]/item[@id='outdated']"/> - </xsl:when> + <xsl:choose><xsl:when test="document(concat($XML, '/i18n.xml')) + /i18n/text[@lang = $lang]/item[@id='outdated']"> + <xsl:apply-templates select="document(concat($XML, '/i18n.xml')) + /i18n/text[@lang = $lang]/item[@id='outdated']"/> + </xsl:when><xsl:otherwise> + <xsl:apply-templates select="document(concat($XML, '/i18n.xml')) + /i18n/text[@lang = 'en']/item[@id='outdated']"/> + </xsl:otherwise></xsl:choose> - <xsl:otherwise> - - <xsl:apply-templates select="document(concat($XML, '/i18n.xml')) /i18n/text[@lang = 'en']/item[@id='outdated']"/> - </xsl:otherwise> - </xsl:choose> - - </blockquote> + </blockquote> + </span> + </xsl:if> - </span> - </xsl:if> - - <xsl:if test="@toc = 'yes' and section[@id and @name]"> - - <table width="100%"> - <tr> - <td align="{$INDEX_ALIGN}"> - - <xsl:for-each select="section[@id and @name]"> - - <a href="#{@id}"> - <xsl:value-of select="@name"/> - </a> - <br/> - - <xsl:for-each select="section[@id and @name]"> - - <xsl:text> </xsl:text> - - <a href="#{@id}"> - <xsl:value-of select="@name"/> - </a> - <br/> - </xsl:for-each> - - <xsl:if test="@id = 'directives'"> - - <xsl:for-each select="directive[@name]"> - - <xsl:text> </xsl:text> + <xsl:if test="@toc = 'yes' and section[@id and @name]"> + <table width="100%"><tr><td align="{$INDEX_ALIGN}"> + <xsl:for-each select="section[@id and @name]"> + <a href="#{@id}"> <xsl:value-of select="@name"/> </a><br/> + <xsl:for-each select="section[@id and @name]"> + <xsl:text>     </xsl:text> + <a href="#{@id}"> <xsl:value-of select="@name"/> </a><br/> + </xsl:for-each> + <xsl:if test="@id = 'directives'"> + <xsl:for-each select="directive[@name]"> + <xsl:text>     </xsl:text> + <a href="#{@name}"> <xsl:value-of select="@name"/> </a><br/> + </xsl:for-each> + </xsl:if> + </xsl:for-each> + </td></tr></table> + </xsl:if> - <a href="#{@name}"> - <xsl:value-of select="@name"/> - </a> - <br/> - </xsl:for-each> - </xsl:if> - </xsl:for-each> + <xsl:apply-templates/> - </td> - </tr> - </table> - </xsl:if> - - <xsl:apply-templates/> + <xsl:if test="@author or @editor or @translator"> + <table width="100%"><tr><td align="right"> - <xsl:if test="@author or @editor or @translator"> - - <table width="100%"> - <tr> - <td align="right"> - - <xsl:if test="@author"> - - <xsl:value-of select="document(concat($XML, '/i18n.xml')) /i18n/text[@lang = $lang]/item[@id='author']"/> - - <xsl:text> </xsl:text> - <xsl:value-of select="@author"/> - <br/> - </xsl:if> + <xsl:if test="@author"> + <xsl:value-of select="document(concat($XML, '/i18n.xml')) + /i18n/text[@lang = $lang]/item[@id='author']"/> + <xsl:text> </xsl:text> <xsl:value-of select="@author"/> <br/> + </xsl:if> - <xsl:if test="@editor"> - - <xsl:value-of select="document(concat($XML, '/i18n.xml')) /i18n/text[@lang = $lang]/item[@id='editor']"/> - - <xsl:text> </xsl:text> - <xsl:value-of select="@editor"/> - <br/> - </xsl:if> - - <xsl:if test="@translator"> - - <xsl:value-of select="document(concat($XML, '/i18n.xml')) /i18n/text[@lang = $lang]/item[@id='translator']"/> + <xsl:if test="@editor"> + <xsl:value-of select="document(concat($XML, '/i18n.xml')) + /i18n/text[@lang = $lang]/item[@id='editor']"/> + <xsl:text> </xsl:text> <xsl:value-of select="@editor"/> <br/> + </xsl:if> - <xsl:text> </xsl:text> - <xsl:value-of select="@translator"/> - <br/> - </xsl:if> + <xsl:if test="@translator"> + <xsl:value-of select="document(concat($XML, '/i18n.xml')) + /i18n/text[@lang = $lang]/item[@id='translator']"/> + <xsl:text> </xsl:text> <xsl:value-of select="@translator"/> <br/> + </xsl:if> - </td> - </tr> - </table> - </xsl:if> + </td></tr></table> + </xsl:if> + + </td></tr> - </td> - </tr> + </table> + </body> - </table> - - </body> - </xsl:template> +</xsl:template> </xsl:stylesheet>
--- a/xslt/books.xslt Fri Feb 21 20:15:37 2014 +0400 +++ b/xslt/books.xslt Fri Feb 28 20:12:47 2014 +0400 @@ -1,62 +1,31 @@ <?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="book"> - - <table> - <tr> +<xsl:template match="book"> - <td bgcolor="#EEEEEE"> - - <a href="{@link}"> - - <img src="{@cover}" alt="" style="padding: 2pt;" border="0"/> - - </a> + <table><tr> - </td> - - <td> - - <xsl:text>title: </xsl:text> - <a href="{@link}"> - <xsl:value-of select="@title"/> - </a> - <br/> - - <xsl:text>author: </xsl:text> - <xsl:choose> + <td bgcolor="#EEEEEE"> + <a href="{@link}"> + <img src="{@cover}" alt="" style="padding: 2pt;" border="0"/> + </a> + </td> - <xsl:when test="@site"> - <a href="{@site}"> - <xsl:value-of select="@author"/> - </a> - </xsl:when> - <xsl:otherwise> - <xsl:value-of select="@author"/> - </xsl:otherwise> - </xsl:choose> - <br/> + <td> + <xsl:text>title: </xsl:text> <a href="{@link}"><xsl:value-of select="@title"/></a> <br/> + <xsl:text>author: </xsl:text> + <xsl:choose><xsl:when test="@site"> <a href="{@site}"><xsl:value-of select="@author"/></a> </xsl:when><xsl:otherwise> <xsl:value-of select="@author"/> </xsl:otherwise></xsl:choose> <br/> + <xsl:if test="@translator"> <xsl:text>translator: </xsl:text> <xsl:value-of select="@translator"/> <br/> </xsl:if> + <xsl:if test="@publisher"> <xsl:text>publisher: </xsl:text> <xsl:value-of select="@publisher"/> <br/> </xsl:if> + <xsl:text>language: </xsl:text> <xsl:value-of select="@lang"/> + </td> - <xsl:if test="@translator"> - <xsl:text>translator: </xsl:text> - <xsl:value-of select="@translator"/> - <br/> - </xsl:if> - - <xsl:if test="@publisher"> - <xsl:text>publisher: </xsl:text> - <xsl:value-of select="@publisher"/> - <br/> - </xsl:if> - - <xsl:text>language: </xsl:text> - <xsl:value-of select="@lang"/> - - </td> - - </tr> - </table> - </xsl:template> + </tr></table> +</xsl:template> </xsl:stylesheet>
--- a/xslt/content.xslt Fri Feb 21 20:15:37 2014 +0400 +++ b/xslt/content.xslt Fri Feb 28 20:12:47 2014 +0400 @@ -1,446 +1,178 @@ <?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="section[@id and @name]"> - - <a name="{@id}"/> - <center> - <h4> - <xsl:value-of select="@name"/> - </h4> - </center> - - <xsl:apply-templates/> - </xsl:template> + <xsl:template match="section[@id and @name]"> + <a name="{@id}"/> <center><h4> <xsl:value-of select="@name"/> </h4></center> + <xsl:apply-templates/> + </xsl:template> - <xsl:template match="section/section[@id and @name]"> - - <a name="{@id}"/> - <center> - <h5> - <xsl:value-of select="@name"/> - </h5> - </center> - - <xsl:apply-templates/> - </xsl:template> - - <xsl:template match="section[@id and not(@name)]"> + <xsl:template match="section/section[@id and @name]"> + <a name="{@id}"/> <center><h5> <xsl:value-of select="@name"/> </h5></center> + <xsl:apply-templates/> + </xsl:template> - <a name="{@id}"/> - - <xsl:apply-templates/> - </xsl:template> - - <xsl:template match="section[not(@id) and @name]"> - - <center> - <h4> - <xsl:value-of select="@name"/> - </h4> - </center> + <xsl:template match="section[@id and not(@name)]"> + <a name="{@id}"/> + <xsl:apply-templates/> + </xsl:template> - <xsl:apply-templates/> - </xsl:template> - - <xsl:template match="section/section[not(@id) and @name]"> - - <center> - <h5> - <xsl:value-of select="@name"/> - </h5> - </center> - - <xsl:apply-templates/> - </xsl:template> + <xsl:template match="section[not(@id) and @name]"> + <center><h4> <xsl:value-of select="@name"/> </h4></center> + <xsl:apply-templates/> + </xsl:template> - <xsl:template match="para"> - <p> - <xsl:apply-templates/> - </p> - </xsl:template> + <xsl:template match="section/section[not(@id) and @name]"> + <center><h5> <xsl:value-of select="@name"/> </h5></center> + <xsl:apply-templates/> + </xsl:template> - <xsl:template match="para[@align]"> - <p align="{@align}"> - <xsl:apply-templates/> - </p> - </xsl:template> + <xsl:template match="para"> <p> <xsl:apply-templates/> </p> </xsl:template> - <xsl:template match="initial"> - <span class="initial"> - <b> - <xsl:apply-templates/> - </b> - </span> - </xsl:template> + <xsl:template match="para[@align]"> <p align="{@align}"> <xsl:apply-templates/> </p> </xsl:template> - <xsl:template match="programlisting"> - <blockquote class="example"> - <pre> - <xsl:apply-templates/> - </pre> - </blockquote> - </xsl:template> + <xsl:template match="initial"> <span class="initial"><b> <xsl:apply-templates/> </b></span> </xsl:template> - <xsl:template match="para/programlisting"> - <xsl:text disable-output-escaping="yes"></p> </xsl:text> + <xsl:template match="programlisting"> <blockquote class="example"><pre> <xsl:apply-templates/> </pre></blockquote> </xsl:template> - <blockquote class="example"> - <pre> - <xsl:apply-templates/> - </pre> - </blockquote> - - <xsl:text disable-output-escaping="yes"><p> </xsl:text> - </xsl:template> + <xsl:template match="para/programlisting"> + <xsl:text disable-output-escaping="yes"></p> </xsl:text> + <blockquote class="example"><pre> <xsl:apply-templates/> </pre></blockquote> + <xsl:text disable-output-escaping="yes"><p> </xsl:text> + </xsl:template> - <xsl:template match="note"> - <blockquote class="note"> - <xsl:apply-templates/> - </blockquote> - </xsl:template> - - <xsl:template match="para/note"> - - <xsl:text disable-output-escaping="yes"></p> </xsl:text> - - <blockquote class="note"> - <xsl:apply-templates/> - </blockquote> - <xsl:text disable-output-escaping="yes"><p> </xsl:text> - </xsl:template> - - <xsl:template match="list[@type='bullet']"> - <xsl:choose> - - <xsl:when test="@compact = 'yes'"> - - <ul class="compact"> - <xsl:apply-templates/> - </ul> - </xsl:when> - - <xsl:otherwise> - - <ul> - <xsl:apply-templates/> - </ul> - </xsl:otherwise> - </xsl:choose> - </xsl:template> - - <xsl:template match="para/list[@type='bullet']"> - - <xsl:text disable-output-escaping="yes"></p> </xsl:text> - <xsl:choose> + <xsl:template match="note"> <blockquote class="note"> <xsl:apply-templates/> </blockquote> </xsl:template> - <xsl:when test="@compact = 'yes'"> - - <ul class="compact"> - <xsl:apply-templates/> - </ul> - </xsl:when> - - <xsl:otherwise> - - <ul> - <xsl:apply-templates/> - </ul> - </xsl:otherwise> - </xsl:choose> - - <xsl:text disable-output-escaping="yes"><p> </xsl:text> - </xsl:template> - - <xsl:template match="list[@type='enum']"> - <xsl:choose> - - <xsl:when test="@compact = 'yes'"> - - <ol class="compact"> - <xsl:apply-templates/> - </ol> - </xsl:when> + <xsl:template match="para/note"> + <xsl:text disable-output-escaping="yes"></p> </xsl:text> + <blockquote class="note"> <xsl:apply-templates/> </blockquote> + <xsl:text disable-output-escaping="yes"><p> </xsl:text> + </xsl:template> - <xsl:otherwise> - - <ol> - <xsl:apply-templates/> - </ol> - </xsl:otherwise> - </xsl:choose> - </xsl:template> - - <xsl:template match="para/list[@type='enum']"> - - <xsl:text disable-output-escaping="yes"></p> </xsl:text> - <xsl:choose> - - <xsl:when test="@compact = 'yes'"> - - <ol class="compact"> - <xsl:apply-templates/> - </ol> - </xsl:when> - - <xsl:otherwise> + <xsl:template match="list[@type='bullet']"> + <xsl:choose><xsl:when test="@compact = 'yes'"> + <ul class="compact"> <xsl:apply-templates/> </ul> + </xsl:when><xsl:otherwise> + <ul> <xsl:apply-templates/> </ul> + </xsl:otherwise></xsl:choose> + </xsl:template> + <xsl:template match="para/list[@type='bullet']"> + <xsl:text disable-output-escaping="yes"></p> </xsl:text> + <xsl:choose><xsl:when test="@compact = 'yes'"> + <ul class="compact"> <xsl:apply-templates/> </ul> + </xsl:when><xsl:otherwise> + <ul> <xsl:apply-templates/> </ul> + </xsl:otherwise></xsl:choose> + <xsl:text disable-output-escaping="yes"><p> </xsl:text> + </xsl:template> - <ol> - <xsl:apply-templates/> - </ol> - </xsl:otherwise> - </xsl:choose> - - <xsl:text disable-output-escaping="yes"><p> </xsl:text> - </xsl:template> - - <xsl:template match="listitem"> - <li> - <xsl:apply-templates/> - </li> - </xsl:template> - - <xsl:template match="listitem[@id]"> - <li id="{@id}"> - <xsl:apply-templates/> - </li> - </xsl:template> - - <xsl:template match="list[@type='tag']"> - <xsl:choose> - - <xsl:when test="@compact = 'yes'"> - - <dl class="compact"> - <xsl:apply-templates/> - </dl> - </xsl:when> - - <xsl:otherwise> + <xsl:template match="list[@type='enum']"> + <xsl:choose><xsl:when test="@compact = 'yes'"> + <ol class="compact"> <xsl:apply-templates/> </ol> + </xsl:when><xsl:otherwise> + <ol> <xsl:apply-templates/> </ol> + </xsl:otherwise></xsl:choose> + </xsl:template> + <xsl:template match="para/list[@type='enum']"> + <xsl:text disable-output-escaping="yes"></p> </xsl:text> + <xsl:choose><xsl:when test="@compact = 'yes'"> + <ol class="compact"> <xsl:apply-templates/> </ol> + </xsl:when><xsl:otherwise> + <ol> <xsl:apply-templates/> </ol> + </xsl:otherwise></xsl:choose> + <xsl:text disable-output-escaping="yes"><p> </xsl:text> + </xsl:template> - <dl> - <xsl:apply-templates/> - </dl> - </xsl:otherwise> - </xsl:choose> - </xsl:template> - - <xsl:template match="para/list[@type='tag']"> - - <xsl:text disable-output-escaping="yes"></p> </xsl:text> - <xsl:choose> - - <xsl:when test="@compact = 'yes'"> - - <dl class="compact"> - <xsl:apply-templates/> - </dl> - </xsl:when> - - <xsl:otherwise> - - <dl> - <xsl:apply-templates/> - </dl> - </xsl:otherwise> - </xsl:choose> - - <xsl:text disable-output-escaping="yes"><p> </xsl:text> - </xsl:template> - - <xsl:template match="tag-name"> - <dt> - <xsl:apply-templates/> - </dt> - </xsl:template> - - <xsl:template match="tag-name[@id]"> - <dt id="{@id}"> - <xsl:apply-templates/> - </dt> - </xsl:template> - - <xsl:template match="tag-desc"> - <dd> - <xsl:apply-templates/> - </dd> - </xsl:template> - - <xsl:template match="table[@note and @width]"> + <xsl:template match="listitem"> <li> <xsl:apply-templates/> </li> </xsl:template> + <xsl:template match="listitem[@id]"> <li id="{@id}"> <xsl:apply-templates/> </li> </xsl:template> + + <xsl:template match="list[@type='tag']"> + <xsl:choose><xsl:when test="@compact = 'yes'"> + <dl class="compact"> <xsl:apply-templates/> </dl> + </xsl:when><xsl:otherwise> + <dl> <xsl:apply-templates/> </dl> + </xsl:otherwise></xsl:choose> + </xsl:template> + <xsl:template match="para/list[@type='tag']"> + <xsl:text disable-output-escaping="yes"></p> </xsl:text> + <xsl:choose><xsl:when test="@compact = 'yes'"> + <dl class="compact"> <xsl:apply-templates/> </dl> + </xsl:when><xsl:otherwise> + <dl> <xsl:apply-templates/> </dl> + </xsl:otherwise></xsl:choose> + <xsl:text disable-output-escaping="yes"><p> </xsl:text> + </xsl:template> - <blockquote> - <table width="{@width}"> - <xsl:apply-templates/> - </table> - </blockquote> - </xsl:template> - - <xsl:template match="table[@note and not(@width)]"> + <xsl:template match="tag-name"> <dt> <xsl:apply-templates/> </dt> </xsl:template> + <xsl:template match="tag-name[@id]"> <dt id="{@id}"> <xsl:apply-templates/> </dt> </xsl:template> - <blockquote> - <table width="100%"> - <xsl:apply-templates/> - </table> - </blockquote> - </xsl:template> - - <xsl:template match="table[not(@note) and @width]"> - - <table width="{@width}"> - <xsl:apply-templates/> - </table> - </xsl:template> - - <xsl:template match="table"> - - <table width="100%"> + <xsl:template match="tag-desc"> <dd> <xsl:apply-templates/> </dd> </xsl:template> - <xsl:if test="@class"> - - <xsl:attribute name="class"> - <xsl:value-of select="@class"/> - </xsl:attribute> - </xsl:if> - - <xsl:apply-templates/> - - </table> - </xsl:template> - - <xsl:template match="tr"> - <tr> - <xsl:apply-templates/> - </tr> - </xsl:template> - - <xsl:template match="td[@width]"> - <td width="{@width}"> - <xsl:apply-templates/> - </td> - </xsl:template> - - <xsl:template match="td"> - <td> - <xsl:apply-templates/> - </td> - </xsl:template> + <xsl:template match="table[@note and @width]"> + <blockquote><table width="{@width}"> <xsl:apply-templates/> </table></blockquote> + </xsl:template> + <xsl:template match="table[@note and not(@width)]"> + <blockquote><table width="100%"> <xsl:apply-templates/> </table></blockquote> + </xsl:template> + <xsl:template match="table[not(@note) and @width]"> + <table width="{@width}"> <xsl:apply-templates/> </table> + </xsl:template> + <xsl:template match="table"> + <table width="100%"> + <xsl:if test="@class"> + <xsl:attribute name="class"> <xsl:value-of select="@class"/> </xsl:attribute> + </xsl:if> + <xsl:apply-templates/> + </table> + </xsl:template> - <xsl:template match="c-def"> - <code> - <xsl:apply-templates/> - </code> - </xsl:template> + <xsl:template match="tr"> <tr> <xsl:apply-templates/> </tr> </xsl:template> + <xsl:template match="td[@width]"> <td width="{@width}"> <xsl:apply-templates/> </td> </xsl:template> + <xsl:template match="td"> <td> <xsl:apply-templates/> </td> </xsl:template> - <xsl:template match="c-func"> - <code> - <xsl:apply-templates/> - <xsl:text>()</xsl:text> - </code> - </xsl:template> + <xsl:template match="c-def"> <code> <xsl:apply-templates/> </code> </xsl:template> - <xsl:template match="command"> - <code> - <xsl:apply-templates/> - </code> - </xsl:template> + <xsl:template match="c-func"> <code> <xsl:apply-templates/> <xsl:text>()</xsl:text> </code> </xsl:template> - <xsl:template match="emphasis"> - <strong> - <xsl:apply-templates/> - </strong> - </xsl:template> + <xsl:template match="command"> <code> <xsl:apply-templates/> </code> </xsl:template> - <xsl:template match="example"> - <blockquote class="example"> - <pre> - <xsl:apply-templates/> - </pre> - </blockquote> - </xsl:template> + <xsl:template match="emphasis"> <strong> <xsl:apply-templates/> </strong> </xsl:template> - <xsl:template match="para/example"> - - <xsl:text disable-output-escaping="yes"></p> </xsl:text> + <xsl:template match="example"> <blockquote class="example"><pre> <xsl:apply-templates/> </pre></blockquote> </xsl:template> - <blockquote class="example"> - <pre> - <xsl:apply-templates/> - </pre> - </blockquote> - - <xsl:text disable-output-escaping="yes"><p> </xsl:text> - </xsl:template> - - <xsl:template match="literal"> - <code> - <xsl:apply-templates/> - </code> - </xsl:template> - - <xsl:template match="header"> + <xsl:template match="para/example"> + <xsl:text disable-output-escaping="yes"></p> </xsl:text> + <blockquote class="example"><pre> <xsl:apply-templates/> </pre></blockquote> + <xsl:text disable-output-escaping="yes"><p> </xsl:text> + </xsl:template> - <xsl:text>“</xsl:text> - <xsl:apply-templates/> - <xsl:text>”</xsl:text> - </xsl:template> - - <xsl:template match="http-status"> - - <xsl:value-of select="@code"/> - <xsl:text> (</xsl:text> - <xsl:value-of select="@text"/> - <xsl:text>)</xsl:text> - </xsl:template> + <xsl:template match="literal"> <code> <xsl:apply-templates/> </code> </xsl:template> - <xsl:template match="value"> - <code> - <i> - <xsl:apply-templates/> - </i> - </code> - </xsl:template> + <xsl:template match="header"> + <xsl:text>“</xsl:text> <xsl:apply-templates/> <xsl:text>”</xsl:text> + </xsl:template> - <xsl:template match="registered"> - <xsl:apply-templates/> - <sup> - <xsl:text>®</xsl:text> - </sup> - </xsl:template> + <xsl:template match="http-status"> + <xsl:value-of select="@code"/> <xsl:text> (</xsl:text> <xsl:value-of select="@text"/> <xsl:text>)</xsl:text> + </xsl:template> - <xsl:template match="var"> - <code> - <xsl:apply-templates/> - </code> - </xsl:template> + <xsl:template match="value"> <code><i> <xsl:apply-templates/> </i></code> </xsl:template> - <xsl:template match="path"> - <code> - <xsl:apply-templates/> - </code> - </xsl:template> + <xsl:template match="registered"> <xsl:apply-templates/> <sup> <xsl:text>®</xsl:text> </sup> </xsl:template> + + <xsl:template match="var"> <code> <xsl:apply-templates/> </code> </xsl:template> - <xsl:template match="i"> - <i> - <xsl:apply-templates/> - </i> - </xsl:template> + <xsl:template match="path"> <code> <xsl:apply-templates/> </code> </xsl:template> + <xsl:template match="i"> <i> <xsl:apply-templates/> </i> </xsl:template> + <xsl:template match="b"> <b> <xsl:apply-templates/> </b> </xsl:template> + <xsl:template match="nobr"> <nobr> <xsl:apply-templates/> </nobr> </xsl:template> + <xsl:template match="br"> <br/> </xsl:template> - <xsl:template match="b"> - <b> - <xsl:apply-templates/> - </b> - </xsl:template> - - <xsl:template match="nobr"> - <nobr> - <xsl:apply-templates/> - </nobr> - </xsl:template> - - <xsl:template match="br"> - <br/> - </xsl:template> </xsl:stylesheet>
--- a/xslt/directive.xslt Fri Feb 21 20:15:37 2014 +0400 +++ b/xslt/directive.xslt Fri Feb 28 20:12:47 2014 +0400 @@ -1,245 +1,168 @@ <?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="directive"> - - <a name="{@name}"/> - <!-- <center><h4><xsl:value-of select="@name"/> </h4></center> --> - - <div class="directive"> - - <table cellspacing="0"> - - <xsl:apply-templates select="syntax"/> - - <xsl:apply-templates select="default"/> - - <xsl:apply-templates select="context"/> - - </table> - - <xsl:apply-templates select="appeared-in"/> - - </div> - - <xsl:apply-templates select="para"/> - </xsl:template> - - <xsl:template match="syntax"> - - <xsl:if test="position() = 1"> - - <xsl:text disable-output-escaping="yes"> - <tr> - <td> - </xsl:text> - - <xsl:value-of select="document(concat($XML, '/i18n.xml')) /i18n/text[@lang = $LANG]/item[@id='syntax']"/> - - <xsl:text>:</xsl:text> - - <xsl:text disable-output-escaping="yes"> - </td> - <td> - </xsl:text> - </xsl:if> + <xsl:template match="directive"> + <a name="{@name}"/> + <!-- <center><h4> !{@name} </h4></center> --> + <div class="directive"> + <table cellspacing="0"> + <xsl:apply-templates select="syntax"/> + <xsl:apply-templates select="default"/> + <xsl:apply-templates select="context"/> + </table> + <xsl:apply-templates select="appeared-in"/> + </div> + <xsl:apply-templates select="para"/> + </xsl:template> - <code> - - <strong> - - <xsl:value-of select="../@name"/> - - </strong> - - <xsl:if test="count(node()) != 0"> - - <xsl:text> </xsl:text> - <xsl:apply-templates/> - </xsl:if> - <xsl:choose> - - <xsl:when test="@block = 'yes'"> - - <xsl:text> { ... }</xsl:text> - </xsl:when> - - <xsl:otherwise> - - <xsl:text>;</xsl:text> - </xsl:otherwise> - </xsl:choose> - - </code> - - <br/> - - <xsl:if test="position() = last()"> - - <xsl:text disable-output-escaping="yes"> - </td> - </tr> - </xsl:text> - </xsl:if> - </xsl:template> - - <xsl:template match="default"> - - <xsl:if test="position() = 1"> - - <xsl:text disable-output-escaping="yes"> + <xsl:template match="syntax"> + <xsl:if test="position() = 1"> + <xsl:text disable-output-escaping="yes"> <tr> <td> </xsl:text> - - <xsl:value-of select="document(concat($XML, '/i18n.xml')) /i18n/text[@lang = $LANG]/item[@id='default']"/> - - <xsl:text>:</xsl:text> - - <xsl:text disable-output-escaping="yes"> + <xsl:value-of select="document(concat($XML, '/i18n.xml')) + /i18n/text[@lang = $LANG]/item[@id='syntax']"/> + <xsl:text>:</xsl:text> + <xsl:text disable-output-escaping="yes"> </td> <td> </xsl:text> - </xsl:if> - <xsl:choose> - - <xsl:when test="count(node()) = 0"> - —</xsl:when> - - <xsl:otherwise> - - <pre> - - <xsl:value-of select="../@name"/> - <xsl:choose> - - <xsl:when test="count(../syntax[@block='yes'])"> - - <xsl:text> {</xsl:text> - <xsl:apply-templates/> - <xsl:text>}</xsl:text> - </xsl:when> - - <xsl:otherwise> - - <xsl:text> </xsl:text> - <xsl:apply-templates/> - <xsl:text>;</xsl:text> - </xsl:otherwise> - </xsl:choose> - - </pre> - </xsl:otherwise> - </xsl:choose> - - <xsl:if test="position() = last()"> - - <xsl:text disable-output-escaping="yes"> - </td> - </tr> - </xsl:text> - </xsl:if> - </xsl:template> - - <xsl:template match="context"> - - <xsl:if test="position() = 1"> - - <xsl:text disable-output-escaping="yes"> - <tr> - <td> - </xsl:text> - - <xsl:value-of select="document(concat($XML, '/i18n.xml')) /i18n/text[@lang = $LANG]/item[@id='context']"/> - - <xsl:text>:</xsl:text> - - <xsl:text disable-output-escaping="yes"> - </td> - <td> - </xsl:text> - </xsl:if> - - <code> - <xsl:choose> - - <xsl:when test="count(node()) = 0"> - - <xsl:value-of select="document(concat($XML, '/i18n.xml')) /i18n/text[@lang = $LANG]/item[@id='context.any']"/> - </xsl:when> - - <xsl:otherwise> - - <xsl:apply-templates/> - </xsl:otherwise> - </xsl:choose> - - </code> - <xsl:choose> - - <xsl:when test="position() != last()"> - - <xsl:text>, </xsl:text> - </xsl:when> - - <xsl:otherwise> - - <br/> - + </xsl:if> + <code> + <strong> + <xsl:value-of select="../@name"/> + </strong> + <xsl:if test="count(node()) != 0"> + <xsl:text> </xsl:text> <xsl:apply-templates/> + </xsl:if> + <xsl:choose><xsl:when test="@block = 'yes'"> + <xsl:text> { ... }</xsl:text> + </xsl:when><xsl:otherwise> + <xsl:text>;</xsl:text> + </xsl:otherwise></xsl:choose> + </code> + <br/> + <xsl:if test="position() = last()"> <xsl:text disable-output-escaping="yes"> </td> </tr> </xsl:text> - </xsl:otherwise> - </xsl:choose> - </xsl:template> + </xsl:if> + </xsl:template> - <xsl:template match="appeared-in"> - <xsl:choose> - - <xsl:when test="last() = 1"> - - <p> - - <xsl:value-of select="document(concat($XML, '/i18n.xml')) /i18n/text[@lang = $LANG]/item [@id='directive.version']"/> + <xsl:template match="default"> + <xsl:if test="position() = 1"> + <xsl:text disable-output-escaping="yes"> + <tr> + <td> + </xsl:text> + <xsl:value-of select="document(concat($XML, '/i18n.xml')) + /i18n/text[@lang = $LANG]/item[@id='default']"/> + <xsl:text>:</xsl:text> + <xsl:text disable-output-escaping="yes"> + </td> + <td> + </xsl:text> + </xsl:if> + <xsl:choose><xsl:when test="count(node()) = 0"> + — + </xsl:when><xsl:otherwise> + <pre> + <xsl:value-of select="../@name"/> + <xsl:choose><xsl:when test="count(../syntax[@block='yes'])"> + <xsl:text> {</xsl:text> <xsl:apply-templates/> <xsl:text>}</xsl:text> + </xsl:when><xsl:otherwise> + <xsl:text> </xsl:text> <xsl:apply-templates/> <xsl:text>;</xsl:text> + </xsl:otherwise></xsl:choose> + </pre> + </xsl:otherwise></xsl:choose> + <xsl:if test="position() = last()"> + <xsl:text disable-output-escaping="yes"> + </td> + </tr> + </xsl:text> + </xsl:if> + </xsl:template> - <xsl:text> </xsl:text> + <xsl:template match="context"> + <xsl:if test="position() = 1"> + <xsl:text disable-output-escaping="yes"> + <tr> + <td> + </xsl:text> + <xsl:value-of select="document(concat($XML, '/i18n.xml')) + /i18n/text[@lang = $LANG]/item[@id='context']"/> + <xsl:text>:</xsl:text> + <xsl:text disable-output-escaping="yes"> + </td> + <td> + </xsl:text> + </xsl:if> + <code> + <xsl:choose><xsl:when test="count(node()) = 0"> + <xsl:value-of select="document(concat($XML, '/i18n.xml')) + /i18n/text[@lang = $LANG]/item[@id='context.any']"/> + </xsl:when><xsl:otherwise> + <xsl:apply-templates/> + </xsl:otherwise></xsl:choose> + </code> + <xsl:choose><xsl:when test="position() != last()"> + <xsl:text>, </xsl:text> + </xsl:when><xsl:otherwise> + <br/> + <xsl:text disable-output-escaping="yes"> + </td> + </tr> + </xsl:text> + </xsl:otherwise></xsl:choose> + </xsl:template> - <xsl:apply-templates/>. - + <xsl:template match="appeared-in"> + <xsl:choose><xsl:when test="last() = 1"> + <p> + <xsl:value-of select="document(concat($XML, '/i18n.xml')) + /i18n/text[@lang = $LANG]/item + [@id='directive.version']"/> + <xsl:text> </xsl:text> + <xsl:apply-templates/>. </p> - </xsl:when> - - <xsl:otherwise> - + </xsl:when><xsl:otherwise> <xsl:choose> - <xsl:when test="position() = 1"> - <xsl:text disable-output-escaping="yes"> + <xsl:when test="position() = 1"> + <xsl:text disable-output-escaping="yes"> <p> </xsl:text> - <xsl:value-of select="document(concat($XML, '/i18n.xml')) /i18n/text[@lang = $LANG]/item [@id='directive.versions']"/> - <xsl:text> </xsl:text> - <xsl:apply-templates/> - <xsl:if test="last() > 2"> - <xsl:text>,</xsl:text> - </xsl:if> - <xsl:text> </xsl:text> - </xsl:when> - <xsl:when test="position() != last()"> - <xsl:apply-templates/> - <xsl:text>, </xsl:text> - </xsl:when> - <xsl:otherwise> - <xsl:value-of select="document(concat($XML, '/i18n.xml')) /i18n/text[@lang = $LANG]/item [@id='and']"/> - <xsl:text> </xsl:text> - <xsl:apply-templates/>. - <xsl:text disable-output-escaping="yes"> + <xsl:value-of select="document(concat($XML, '/i18n.xml')) + /i18n/text[@lang = $LANG]/item + [@id='directive.versions']"/> + <xsl:text> </xsl:text> + <xsl:apply-templates/> + <xsl:if test="last() > 2"> + <xsl:text>,</xsl:text> + </xsl:if> + <xsl:text> </xsl:text> + </xsl:when> + <xsl:when test="position() != last()"> + <xsl:apply-templates/> + <xsl:text>, </xsl:text> + </xsl:when> + <xsl:otherwise> + <xsl:value-of select="document(concat($XML, '/i18n.xml')) + /i18n/text[@lang = $LANG]/item + [@id='and']"/> + <xsl:text> </xsl:text> + <xsl:apply-templates/>. + <xsl:text disable-output-escaping="yes"> </p> </xsl:text> - </xsl:otherwise> + </xsl:otherwise> </xsl:choose> - </xsl:otherwise> - </xsl:choose> - </xsl:template> - + </xsl:otherwise></xsl:choose> + </xsl:template> </xsl:stylesheet>
--- a/xslt/dirindex.xslt Fri Feb 21 20:15:37 2014 +0400 +++ b/xslt/dirindex.xslt Fri Feb 28 20:12:47 2014 +0400 @@ -1,41 +1,38 @@ <?xml version="1.0" encoding="utf-8"?> +<!-- + Copyright (C) Nginx, Inc. + --> + <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"> - <xsl:output doctype-system="../../../dtd/article.dtd" encoding="utf-8" method="xml"/> - - <xsl:param select="'../xml'" name="XML"/> - - <xsl:param name="LANG"/> - - <xsl:template match="modules"> +<xsl:output method="xml" doctype-system="../../../dtd/article.dtd" encoding="utf-8"/> - <article name="{document(concat($XML, '/i18n.xml')) /i18n/text[@lang = $LANG]/item[@id='dirindex']}" link="/{$LANG}/docs/dirindex.html" lang="{$LANG}"> - - <section> +<!-- + .. a current directory of a XSLT script is where the script is stored, + .. but not where XSLT processor has been started to run the script + --> +<xsl:param select="'../xml'" name="XML"/> - <para> - - <links> - - <xsl:apply-templates select="module"/> +<xsl:param name="LANG"/> - </links> - - </para> - - </section> - - </article> - </xsl:template> +<xsl:template match="modules"> + <article name="{document(concat($XML, '/i18n.xml')) + /i18n/text[@lang = $LANG]/item[@id='dirindex']}" link="/{$LANG}/docs/dirindex.html" lang="{$LANG}"> + <section> + <para> + <links> + <xsl:apply-templates select="module"/> + </links> + </para> + </section> + </article> +</xsl:template> - <xsl:template match="module"> - - <xsl:variable select="@name" name="module"/> - - <xsl:for-each select="document(@name)/module/section/directive"> - - <link doc="{$module}" id="{@name}"/> - </xsl:for-each> - </xsl:template> +<xsl:template match="module"> + <xsl:variable select="@name" name="module"/> + <xsl:for-each select="document(@name)/module/section/directive"> + <link doc="{$module}" id="{@name}"/> + </xsl:for-each> +</xsl:template> </xsl:stylesheet>
--- a/xslt/dirname.xslt Fri Feb 21 20:15:37 2014 +0400 +++ b/xslt/dirname.xslt Fri Feb 28 20:12:47 2014 +0400 @@ -1,51 +1,35 @@ <?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:variable name="DIRNAME"> - <xsl:call-template name="dirname"> - <xsl:with-param select="$LINK" name="path"/> - </xsl:call-template> - </xsl:variable> - <xsl:template name="dirname"> - <xsl:param name="path"/> +<!-- return a dirname of an article link --> + +<xsl:variable name="DIRNAME"> <xsl:call-template name="dirname"><xsl:with-param select="$LINK" name="path"/></xsl:call-template></xsl:variable> - <xsl:if test="contains($path, '/')"> - - <xsl:value-of select=" substring-before($path, '/')"/> - - <xsl:text>/</xsl:text> +<xsl:template name="dirname"><xsl:param name="path"/> + <xsl:if test="contains($path, '/')"> + <xsl:value-of select=" substring-before($path, '/') "/> + <xsl:text>/</xsl:text> + <xsl:call-template name="dirname"><xsl:with-param select="substring-after($path, '/')" name="path"/></xsl:call-template></xsl:if> +</xsl:template> - <xsl:call-template name="dirname"> - <xsl:with-param select="substring-after($path, '/')" name="path"/> - </xsl:call-template> - </xsl:if> - </xsl:template> - <xsl:variable name="ROOT"> - <xsl:call-template name="root"> - <xsl:with-param name="path"> - <xsl:value-of select=" substring($DIRNAME, 2)"/> - </xsl:with-param> - </xsl:call-template> - </xsl:variable> +<!-- return a path to the root of an article link, i.e., "../../.." --> - <xsl:template name="root"> - <xsl:param name="path"/> - - <xsl:if test="contains($path, '/')"> +<xsl:variable name="ROOT"> <xsl:call-template name="root"><xsl:with-param name="path"> <xsl:value-of select=" substring($DIRNAME, 2) "/> </xsl:with-param></xsl:call-template></xsl:variable> - <xsl:text>..</xsl:text> - - <xsl:if test="substring-after($path, '/')"> - +<xsl:template name="root"><xsl:param name="path"/> + <xsl:if test="contains($path, '/')"> + <xsl:text>..</xsl:text> + <xsl:if test="substring-after($path, '/')"> <xsl:text>/</xsl:text> - - <xsl:call-template name="root"> - <xsl:with-param select="substring-after($path, '/')" name="path"/> - </xsl:call-template> - </xsl:if> - </xsl:if> - </xsl:template> + <xsl:call-template name="root"><xsl:with-param select="substring-after($path, '/')" name="path"/></xsl:call-template></xsl:if> + </xsl:if> +</xsl:template> </xsl:stylesheet>
--- a/xslt/donate.xslt Fri Feb 21 20:15:37 2014 +0400 +++ b/xslt/donate.xslt Fri Feb 28 20:12:47 2014 +0400 @@ -1,19 +1,22 @@ <?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="paypal"> +<xsl:template match="paypal"> - <form action="https://www.paypal.com/cgi-bin/webscr" method="post"> - - <input type="hidden" name="cmd" value="_s-xclick"/> + <form action="https://www.paypal.com/cgi-bin/webscr" method="post"> + <input type="hidden" name="cmd" value="_s-xclick"/> + <input type="hidden" name="hosted_button_id" value="ZJK5JR3ZSBUFC"/> - <input type="hidden" name="hosted_button_id" value="ZJK5JR3ZSBUFC"/> - - <input type="image" border="0" name="submit" src="https://www.paypalobjects.com/en_US/i/btn/btn_donate_LG.gif" alt="PayPal - The safer, easier way to pay online!"/> + <input type="image" border="0" name="submit" src="https://www.paypalobjects.com/en_US/i/btn/btn_donate_LG.gif" alt="PayPal - The safer, easier way to pay online!"/> - <img src="https://www.paypalobjects.com/en_US/i/scr/pixel.gif" alt="" border="0" width="1" height="1"/> + <img src="https://www.paypalobjects.com/en_US/i/scr/pixel.gif" alt="" border="0" width="1" height="1"/> + </form> - </form> - </xsl:template> +</xsl:template> </xsl:stylesheet>
--- a/xslt/download.xslt Fri Feb 21 20:15:37 2014 +0400 +++ b/xslt/download.xslt Fri Feb 28 20:12:47 2014 +0400 @@ -1,140 +1,82 @@ <?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="download"> - - <xsl:variable select="@last" name="last"/> - - <xsl:for-each select="document(concat($XML, '/versions.xml')) /versions/download[@tag = current()/@tag]"> - - <table width="100%"> - - <xsl:apply-templates select="item[position() <= $last]"/> - - </table> - </xsl:for-each> - </xsl:template> - - <xsl:template match="download/item"> +<xsl:template match="download"> + <xsl:variable select="@last" name="last"/> + <xsl:for-each select="document(concat($XML, '/versions.xml')) + /versions/download[@tag = current()/@tag]"> + <table width="100%"> - <tr> - - <td width="20%"> - - <xsl:if test="position() = 1"> - - <a> + <xsl:apply-templates select="item[position() <= $last]"/> - <xsl:attribute name="href"> + </table> + </xsl:for-each> +</xsl:template> - <xsl:text>/</xsl:text> - <xsl:value-of select="$LANG"/> - <xsl:text>/CHANGES</xsl:text> - - <xsl:if test="$LANG != 'en'"> - <xsl:text>.</xsl:text> - <xsl:value-of select="$LANG"/> - </xsl:if> - <xsl:if test="../@changes != ''"> - <xsl:text>-</xsl:text> - <xsl:value-of select="../@changes"/> - </xsl:if> - </xsl:attribute> - - <xsl:text>CHANGES</xsl:text> - - <xsl:if test="$LANG != 'en'"> - <xsl:text>.</xsl:text> - <xsl:value-of select="$LANG"/> - </xsl:if> - - <xsl:if test="../@changes != ''"> - <xsl:text>-</xsl:text> - <xsl:value-of select="../@changes"/> - </xsl:if> +<xsl:template match="download/item"> + <tr> + <td width="20%"> + <xsl:if test="position() = 1"> + <a> + <xsl:attribute name="href"> + <xsl:text>/</xsl:text> <xsl:value-of select="$LANG"/> <xsl:text>/CHANGES</xsl:text> + <xsl:if test="$LANG != 'en'"> <xsl:text>.</xsl:text> <xsl:value-of select="$LANG"/> </xsl:if> + <xsl:if test="../@changes != ''"> <xsl:text>-</xsl:text> <xsl:value-of select="../@changes"/> </xsl:if> + </xsl:attribute> + <xsl:text>CHANGES</xsl:text> + <xsl:if test="$LANG != 'en'"> <xsl:text>.</xsl:text> <xsl:value-of select="$LANG"/> </xsl:if> + <xsl:if test="../@changes != ''"> <xsl:text>-</xsl:text> <xsl:value-of select="../@changes"/> </xsl:if> + </a> + </xsl:if> + </td> - </a> - </xsl:if> - - </td> - - <td width="20%"> - - <a> + <td width="20%"> + <a> + <xsl:attribute name="href"> + <xsl:text>/download/nginx-</xsl:text> <xsl:value-of select="@ver"/> <xsl:text>.tar.gz</xsl:text> + </xsl:attribute> + <xsl:text>nginx-</xsl:text> <xsl:value-of select="@ver"/> + </a> - <xsl:attribute name="href"> + <xsl:if test="@pgp = 'yes'"> + <xsl:text>  </xsl:text> + <a> + <xsl:attribute name="href"> + <xsl:text>/download/nginx-</xsl:text> <xsl:value-of select="@ver"/> <xsl:text>.tar.gz.asc</xsl:text> + </xsl:attribute> + <xsl:text>pgp</xsl:text> + </a> + </xsl:if> + </td> - <xsl:text>/download/nginx-</xsl:text> - <xsl:value-of select="@ver"/> - <xsl:text>.tar.gz</xsl:text> - </xsl:attribute> - - <xsl:text>nginx-</xsl:text> - <xsl:value-of select="@ver"/> - + <td> + <xsl:if test="@win= 'yes'"> + <a> + <xsl:attribute name="href"> + <xsl:text>/download/nginx-</xsl:text> <xsl:value-of select="@ver"/> <xsl:text>.zip</xsl:text> + </xsl:attribute> + <xsl:text>nginx/Windows-</xsl:text> <xsl:value-of select="@ver"/> </a> <xsl:if test="@pgp = 'yes'"> - - <xsl:text> </xsl:text> - - <a> - - <xsl:attribute name="href"> - - <xsl:text>/download/nginx-</xsl:text> - <xsl:value-of select="@ver"/> - <xsl:text>.tar.gz.asc</xsl:text> - </xsl:attribute> - - <xsl:text>pgp</xsl:text> - - </a> + <xsl:text>  </xsl:text> + <a> + <xsl:attribute name="href"> + <xsl:text>/download/nginx-</xsl:text> <xsl:value-of select="@ver"/> <xsl:text>.zip.asc</xsl:text> + </xsl:attribute> + <xsl:text>pgp</xsl:text> + </a> </xsl:if> - - </td> - - <td> - - <xsl:if test="@win= 'yes'"> - - <a> - - <xsl:attribute name="href"> + </xsl:if> + </td> - <xsl:text>/download/nginx-</xsl:text> - <xsl:value-of select="@ver"/> - <xsl:text>.zip</xsl:text> - </xsl:attribute> - - <xsl:text>nginx/Windows-</xsl:text> - <xsl:value-of select="@ver"/> - - </a> - - <xsl:if test="@pgp = 'yes'"> - - <xsl:text> </xsl:text> - - <a> - - <xsl:attribute name="href"> - - <xsl:text>/download/nginx-</xsl:text> - <xsl:value-of select="@ver"/> - <xsl:text>.zip.asc</xsl:text> - </xsl:attribute> - - <xsl:text>pgp</xsl:text> - - </a> - </xsl:if> - </xsl:if> - - </td> - - </tr> - </xsl:template> + </tr> +</xsl:template> </xsl:stylesheet>
--- a/xslt/error.xslt Fri Feb 21 20:15:37 2014 +0400 +++ b/xslt/error.xslt Fri Feb 28 20:12:47 2014 +0400 @@ -1,77 +1,58 @@ <?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:output indent="no" version="4.0" encoding="utf-8" method="html"/> - - <xsl:strip-space elements="*"/> - - <xsl:param select="'../xml'" name="XML"/> - - <xsl:param name="YEAR"/> +<xsl:output method="html" version="4.0" indent="no" encoding="utf-8"/> - <xsl:param name="TRANS"/> - - <xsl:variable select="/error/@link" name="LINK"/> - - <xsl:variable select="/error/@lang" name="LANG"/> - - <xsl:include href="dirname.xslt"/> +<xsl:strip-space elements="*"/> - <xsl:include href="menu.xslt"/> - - <xsl:include href="ga.xslt"/> - - <xsl:template match="/error"> +<!-- + .. a current directory of a XSLT script is where the script is stored, + .. but not where XSLT processor has been started to run the script + --> +<xsl:param select="'../xml'" name="XML"/> +<xsl:param name="YEAR"/> +<xsl:param name="TRANS"/> - <html> - <head> - <title> - <xsl:value-of select="@name"/> - </title> +<xsl:variable select="/error/@link" name="LINK"/> +<xsl:variable select="/error/@lang" name="LANG"/> - <style type="text/css"> - <xsl:value-of select=" normalize-space(' body { font-family: Georgia, serif; } ')"/> +<xsl:include href="dirname.xslt"/> +<xsl:include href="menu.xslt"/> +<xsl:include href="ga.xslt"/> - </style> - <xsl:call-template name="ga"/> +<xsl:template match="/error"> + <html><head><title> <xsl:value-of select="@name"/> </title> - </head> - - <body> - - <table width="100%"> - - <tr> + <style type="text/css"><xsl:value-of select=" normalize-space(' + body { font-family: Georgia, serif; } + ') "/> + </style> - <td width="70%"> - <center> - <h1> - <xsl:value-of select="@name"/> - </h1> - </center> - </td> - - <td rowspan="2" align="right" valign="top"> + <xsl:call-template name="ga"/></head> - <img src="/nginx.gif" alt="nginx"/> - <br/> - - <br/> - - <br/> - - <xsl:apply-templates select="document(concat($XML, '/menu.xml')) /menus/menu[@lang = current()/@lang]/item"/> + <body> + <table width="100%"> + <tr> + <td width="70%"><center><h1> <xsl:value-of select="@name"/> </h1></center></td> + <td rowspan="2" align="right" valign="top"> + <img src="/nginx.gif" alt="nginx"/><br/> - </td> - - </tr> + <br/> + <br/> - </table> - - </body> - - </html> - </xsl:template> + <xsl:apply-templates select="document(concat($XML, '/menu.xml')) + /menus/menu[@lang = current()/@lang]/item"/> + </td> + </tr> + </table> + </body> + </html> +</xsl:template> </xsl:stylesheet>
--- a/xslt/ga.xslt Fri Feb 21 20:15:37 2014 +0400 +++ b/xslt/ga.xslt Fri Feb 28 20:12:47 2014 +0400 @@ -1,9 +1,13 @@ <?xml version="1.0" encoding="utf-8"?> +<!-- + Copyright (C) Nginx, Inc. + --> + <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"> - <xsl:template name="ga"> +<xsl:template name="ga"> - <script type="text/javascript"> + <script type="text/javascript"> var _gaq = _gaq || []; _gaq.push(['_setAccount', 'UA-27974099-2']); @@ -17,6 +21,7 @@ })(); </script> - </xsl:template> + +</xsl:template> </xsl:stylesheet>
--- a/xslt/link.xslt Fri Feb 21 20:15:37 2014 +0400 +++ b/xslt/link.xslt Fri Feb 28 20:12:47 2014 +0400 @@ -1,117 +1,60 @@ <?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="img"> - <img src="{@href}"> - <xsl:apply-templates/> - </img> - </xsl:template> - - <xsl:template match="origin"> - - <a> - - <xsl:attribute name="href"> +<xsl:template match="img"> <img src="{@href}"> <xsl:apply-templates/> </img> </xsl:template> - <xsl:call-template name="root"> - <xsl:with-param select="$ORIGIN" name="path"/> - </xsl:call-template> - - <xsl:value-of select=" concat(substring-before($ORIGIN, '.xml'), '.html')"/> - </xsl:attribute> - - <xsl:apply-templates/> - - </a> - </xsl:template> - - <xsl:template match="link[@url]"> +<xsl:template match="origin"> + <a> + <xsl:attribute name="href"> + <xsl:call-template name="root"><xsl:with-param select="$ORIGIN" name="path"/></xsl:call-template><xsl:value-of select=" concat(substring-before($ORIGIN, '.xml'), '.html') "/> + </xsl:attribute> + <xsl:apply-templates/> + </a> +</xsl:template> - <a href="{@url}"> - <xsl:choose> - - <xsl:when test="count(node()) != 0"> - <xsl:apply-templates/> - </xsl:when> - <xsl:otherwise> - <xsl:value-of select="@url"/> - </xsl:otherwise> - </xsl:choose> - - </a> - </xsl:template> +<xsl:template match="link[@url]"> + <a href="{@url}"> + <xsl:choose><xsl:when test="count(node()) != 0"> <xsl:apply-templates/> </xsl:when><xsl:otherwise> <xsl:value-of select="@url"/> </xsl:otherwise></xsl:choose> + </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[@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:choose> - - <xsl:when test="count(node()) != 0"> - - <xsl:apply-templates/> - </xsl:when> - - <xsl:otherwise> - - <xsl:value-of select=" document(@doc)/article/@name | document(@doc)/module/@name"/> - </xsl:otherwise> - </xsl:choose> - - </a> - </xsl:template> - - <xsl:template match="link[@id and @doc]"> - - <a href="{substring-before(@doc, '.xml')}.html#{@id}"> - <xsl:choose> +<xsl:template match="link[@doc and not(@id)]"> + <a href="{substring-before(@doc, '.xml')}.html"> + <xsl:choose><xsl:when test="count(node()) != 0"> + <xsl:apply-templates/> + </xsl:when><xsl:otherwise> + <xsl:value-of select=" document(@doc)/article/@name | document(@doc)/module/@name "/> + </xsl:otherwise></xsl:choose> + </a> +</xsl:template> - <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="links"> - - <xsl:for-each select="link"> - <xsl:sort select="@id"/> +<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> - <a href="{substring-before(@doc, '.xml')}.html#{@id}"> - <xsl:value-of select="@id"/> - </a> - - <xsl:if test="count(../link[@id = current()/@id]) > 1"> - +<xsl:template match="links"> + <xsl:for-each select="link"><xsl:sort select="@id"/> + <a href="{substring-before(@doc, '.xml')}.html#{@id}"><xsl:value-of select="@id"/></a> + <xsl:if test="count(../link[@id = current()/@id]) > 1"> <xsl:text> (</xsl:text> - <xsl:value-of select="substring-before(substring-after(@doc, '/'), '.xml')"/> - <xsl:text>)</xsl:text> - </xsl:if> - - <br/> - </xsl:for-each> - </xsl:template> + </xsl:if> + <br/> + </xsl:for-each> +</xsl:template> </xsl:stylesheet>
--- a/xslt/menu.xslt Fri Feb 21 20:15:37 2014 +0400 +++ b/xslt/menu.xslt Fri Feb 28 20:12:47 2014 +0400 @@ -1,145 +1,99 @@ <?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"> - <xsl:choose> - - <xsl:when test="@href = $LINK"> - <xsl:choose> +<xsl:template match="menu/item"> - <xsl:when test="$YEAR and @href='/'"> - - <a href="./"> news </a> - <br/> - </xsl:when> - - <xsl:otherwise> + <!-- + .. 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:value-of select=" normalize-space(text())"/> - <br/> - </xsl:otherwise> - </xsl:choose> - </xsl:when> - - <xsl:otherwise> - <xsl:choose> + <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 test="$TRANS and @switchlang"> - <xsl:choose> - - <xsl:when test="contains($TRANS, @switchlang)"> - - <a> - - <xsl:attribute name="href"> + </xsl:when><xsl:otherwise> - <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> + <!-- + .. 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"> - <xsl:otherwise> - - <a> - - <xsl:attribute name="href"> - <xsl:choose> + <!-- + .. 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 test="starts-with(@href, $DIRNAME)"> - <xsl:choose> - - <xsl:when test="substring-after(@href, $DIRNAME) = ''"> + </xsl:when><xsl:otherwise> + <a class="notrans"> <xsl:value-of select=" normalize-space(text()) "/> </a> + </xsl:otherwise></xsl:choose> + </xsl:when><xsl:otherwise> - <xsl:text>./</xsl:text> - </xsl:when> - - <xsl:otherwise> + <a> + <xsl:attribute name="href"> - <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: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:if test="@lang"> - <xsl:text> [</xsl:text> - <xsl:value-of select="@lang"/> - <xsl:text>]</xsl:text> - </xsl:if> - </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> - <br/> - </xsl:otherwise> - </xsl:choose> - </xsl:template> + <xsl:if test="@lang"> <xsl:text> [</xsl:text> <xsl:value-of select="@lang"/> <xsl:text>]</xsl:text></xsl:if> + </xsl:otherwise></xsl:choose> - <xsl:template match="menu/item[@year]"> + <br/> + </xsl:otherwise></xsl:choose> +</xsl:template> - <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[@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> +<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> - <br/> - </xsl:template> - <xsl:template match="menu/item[not(@href) and not(@year)]"> - - <xsl:value-of select=" normalize-space(text())"/> - <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>
--- a/xslt/news.xslt Fri Feb 21 20:15:37 2014 +0400 +++ b/xslt/news.xslt Fri Feb 28 20:12:47 2014 +0400 @@ -1,109 +1,76 @@ <?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:output indent="no" version="4.0" encoding="utf-8" method="html"/> - - <xsl:strip-space elements="*"/> - - <xsl:param select="'../xml'" name="XML"/> - - <xsl:param name="YEAR"/> +<xsl:output method="html" version="4.0" indent="no" encoding="utf-8"/> - <xsl:param name="ORIGIN"/> - - <xsl:param name="TRANS"/> - - <xsl:variable select="'http://nginx.org'" name="SITE"/> - - <xsl:variable select="/news/@link" name="LINK"/> - - <xsl:variable select="/news/@lang" name="LANG"/> +<xsl:strip-space elements="*"/> - <xsl:include href="dirname.xslt"/> - - <xsl:include href="link.xslt"/> - - <xsl:include href="style.xslt"/> - - <xsl:include href="body.xslt"/> +<!-- + .. a current directory of a XSLT script is where the script is stored, + .. but not where XSLT processor has been started to run the script + --> +<xsl:param select="'../xml'" name="XML"/> +<xsl:param name="YEAR"/> +<xsl:param name="ORIGIN"/> +<xsl:param name="TRANS"/> - <xsl:include href="menu.xslt"/> - - <xsl:include href="ga.xslt"/> - - <xsl:include href="content.xslt"/> - - <xsl:template match="/news"> - - <html> - <head> +<xsl:variable select="'http://nginx.org'" name="SITE"/> +<xsl:variable select="/news/@link" name="LINK"/> +<xsl:variable select="/news/@lang" name="LANG"/> - <link rel="alternate" type="application/rss+xml" title="{@name}" href="{$SITE}/index.rss"/> +<xsl:include href="dirname.xslt"/> +<xsl:include href="link.xslt"/> +<xsl:include href="style.xslt"/> +<xsl:include href="body.xslt"/> +<xsl:include href="menu.xslt"/> +<xsl:include href="ga.xslt"/> +<xsl:include href="content.xslt"/> - <title> - <xsl:value-of select="@name"/> - <xsl:if test="$YEAR"> - <xsl:text>: </xsl:text> - <xsl:value-of select="$YEAR"/> - </xsl:if> - </title> - <xsl:call-template name="style"> - <xsl:with-param select="@lang" name="lang"/> - </xsl:call-template> +<xsl:template match="/news"> + <html><head> - <xsl:call-template name="ga"/> - - </head> + <link rel="alternate" type="application/rss+xml" title="{@name}" href="{$SITE}/index.rss"/> - <xsl:call-template name="body"> - <xsl:with-param select="@lang" name="lang"/> - </xsl:call-template> + <title> <xsl:value-of select="@name"/> <xsl:if test="$YEAR"> <xsl:text>: </xsl:text> <xsl:value-of select="$YEAR"/> </xsl:if> </title> + + <xsl:call-template name="style"><xsl:with-param select="@lang" name="lang"/></xsl:call-template><xsl:call-template name="ga"/></head> - </html> - </xsl:template> + <xsl:call-template name="body"><xsl:with-param select="@lang" name="lang"/></xsl:call-template></html> +</xsl:template> - <xsl:template match="event"> - <xsl:variable name="year"> - <xsl:value-of select="substring(../event[position()=1]/@date, 1, 4)"/> - </xsl:variable> +<xsl:template match="event"> - <xsl:variable name="y"> - <xsl:value-of select="substring(@date, 1, 4)"/> - </xsl:variable> + <xsl:variable name="year"> <xsl:value-of select="substring(../event[position()=1]/@date, 1, 4)"/> </xsl:variable> + <xsl:variable name="y"> <xsl:value-of select="substring(@date, 1, 4)"/> </xsl:variable> - <xsl:if test="position() = 1"> - - <xsl:text disable-output-escaping="yes"> + <xsl:if test="position() = 1"> + <xsl:text disable-output-escaping="yes"> <table class="news"> </xsl:text> - </xsl:if> - - <xsl:if test="(not($YEAR) and ($year = $y or position() < 11)) or $YEAR=$y"> - - <tr> - - <td class="date"> - - <a name="{@date}"/> - <xsl:value-of select="@date"/> + </xsl:if> - </td> - - <td> - <xsl:apply-templates select="para"/> - </td> + <xsl:if test="(not($YEAR) and ($year = $y or position() < 11)) or $YEAR=$y"> + <tr> + <td class="date"> + <a name="{@date}"/> <xsl:value-of select="@date"/> + </td> + <td> <xsl:apply-templates select="para"/> </td> + </tr> + </xsl:if> - </tr> - </xsl:if> - - <xsl:if test="position() = last()"> - - <xsl:text disable-output-escaping="yes"> + <xsl:if test="position() = last()"> + <xsl:text disable-output-escaping="yes"> </table> </xsl:text> - </xsl:if> - </xsl:template> + </xsl:if> +</xsl:template> + </xsl:stylesheet>
--- a/xslt/rss.xslt Fri Feb 21 20:15:37 2014 +0400 +++ b/xslt/rss.xslt Fri Feb 28 20:12:47 2014 +0400 @@ -1,111 +1,77 @@ <?xml version="1.0" encoding="utf-8"?> -<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:date="http://exslt.org/dates-and-times" version="1.0"> - - <xsl:output indent="no" encoding="utf-8"/> - - <xsl:strip-space elements="*"/> - - <xsl:param select="'../xml'" name="XML"/> - - <xsl:param name="YEAR"/> +<!-- + Copyright (C) Igor Sysoev + Copyright (C) Nginx, Inc. + --> - <xsl:variable select="'http://nginx.org'" name="SITE"/> - - <xsl:variable select="/news/@link" name="LINK"/> - - <xsl:include href="dirname.xslt"/> +<xsl:stylesheet xmlns:date="http://exslt.org/dates-and-times" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"> - <xsl:include href="link.xslt"/> - - <xsl:include href="menu.xslt"/> +<xsl:output indent="no" encoding="utf-8"/> - <xsl:include href="content.xslt"/> - - <xsl:template match="/news"> +<xsl:strip-space elements="*"/> - <rss version="2.0"> - - <channel> - - <title> - <xsl:value-of select="@name"/> - </title> - - <link> - <xsl:value-of select="$SITE"/> - </link> +<!-- + .. a current directory of a XSLT script is where the script is stored, + .. but not where XSLT processor has been started to run the script + --> +<xsl:param select="'../xml'" name="XML"/> +<xsl:param name="YEAR"/> - <description/> - - <xsl:apply-templates select="event"/> - - </channel> +<xsl:variable select="'http://nginx.org'" name="SITE"/> +<xsl:variable select="/news/@link" name="LINK"/> - </rss> - </xsl:template> +<xsl:include href="dirname.xslt"/> +<xsl:include href="link.xslt"/> +<xsl:include href="menu.xslt"/> +<xsl:include href="content.xslt"/> - <xsl:template match="event[position() <= 10]"> - - <xsl:variable name="year"> - <xsl:value-of select="substring(../event[position()=1]/@date, 1, 4)"/> - </xsl:variable> - <xsl:variable name="y"> - <xsl:value-of select="substring(@date, 1, 4)"/> - </xsl:variable> - - <xsl:variable name="page"> - - <xsl:if test="$year != $y"> - - <xsl:value-of select="concat($y, '.html')"/> - </xsl:if> - </xsl:variable> +<xsl:template match="/news"> + <rss version="2.0"> + <channel> + <title> <xsl:value-of select="@name"/> </title> + <link> <xsl:value-of select="$SITE"/> </link> + <description/> + <xsl:apply-templates select="event"/> + </channel> + </rss> +</xsl:template> - <item> + +<xsl:template match="event[position() <= 10]"> - <title> - - <xsl:apply-templates select="para[1]//text()"/> - </title> + <xsl:variable name="year"> <xsl:value-of select="substring(../event[position()=1]/@date, 1, 4)"/> </xsl:variable> + <xsl:variable name="y"> <xsl:value-of select="substring(@date, 1, 4)"/> </xsl:variable> - <guid> - <xsl:value-of select="$SITE"/> - <xsl:text>/</xsl:text> - <xsl:value-of select="$page"/> - <xsl:text>#</xsl:text> - <xsl:value-of select="@date"/> - </guid> + <xsl:variable name="page"> + <xsl:if test="$year != $y"> + <xsl:value-of select="concat($y, '.html')"/> + </xsl:if> + </xsl:variable> - <link> - <xsl:value-of select="$SITE"/> - <xsl:text>/</xsl:text> - <xsl:value-of select="$page"/> - <xsl:text>#</xsl:text> - <xsl:value-of select="@date"/> - </link> - - <pubdate> - - <xsl:value-of select=" concat(date:day-abbreviation(@date), ', ', format-number(date:day-in-month(@date), '00'), ' ', date:month-abbreviation(@date), ' ', date:year(@date), ' 00:00:00 +0300')"/> - - </pubdate> + <item> + <title> <xsl:apply-templates select="para[1]//text()"/> </title> + <guid> <xsl:value-of select="$SITE"/> <xsl:text>/</xsl:text> <xsl:value-of select="$page"/> <xsl:text>#</xsl:text> <xsl:value-of select="@date"/> </guid> + <link> <xsl:value-of select="$SITE"/> <xsl:text>/</xsl:text> <xsl:value-of select="$page"/> <xsl:text>#</xsl:text> <xsl:value-of select="@date"/> </link> + <pubdate> + <xsl:value-of select=" concat(date:day-abbreviation(@date), ', ', + format-number(date:day-in-month(@date), '00'), ' ', + date:month-abbreviation(@date), ' ', + date:year(@date), + ' 00:00:00 +0300') "/> + </pubdate> - <description> - + <description> <xsl:text disable-output-escaping="yes"><![CDATA[</xsl:text> - <xsl:value-of select="@date"/> - <xsl:apply-templates select="para"/> + <xsl:text disable-output-escaping="yes">]]></xsl:text> + </description> + </item> +</xsl:template> - <xsl:text disable-output-escaping="yes">]]></xsl:text> - - </description> - </item> - </xsl:template> +<xsl:template match="event"> </xsl:template> - <xsl:template match="event"/> </xsl:stylesheet>
--- a/xslt/security.xslt Fri Feb 21 20:15:37 2014 +0400 +++ b/xslt/security.xslt Fri Feb 28 20:12:47 2014 +0400 @@ -1,152 +1,94 @@ <?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="security"> - <ul> - <xsl:apply-templates/> - </ul> - </xsl:template> +<xsl:template match="security"> <ul> <xsl:apply-templates/> </ul> </xsl:template> - <xsl:template match="security/item"> + +<xsl:template match="security/item"> - <li> - - <p> + <li> + <p> - <xsl:value-of select="@name"/> - <br/> - <xsl:choose> + <xsl:value-of select="@name"/><br/> - <xsl:when test="@severity = 'major'"> - - <xsl:text>Severity: </xsl:text> - <b> - <xsl:value-of select="@severity"/> - </b> - <br/> - </xsl:when> + <xsl:choose><xsl:when test="@severity = 'major'"> + <xsl:text>Severity: </xsl:text> <b><xsl:value-of select="@severity"/></b><br/> + </xsl:when><xsl:otherwise> + <xsl:text>Severity: </xsl:text> <xsl:value-of select="@severity"/><br/> + </xsl:otherwise></xsl:choose> - <xsl:otherwise> - - <xsl:text>Severity: </xsl:text> - <xsl:value-of select="@severity"/> - <br/> - </xsl:otherwise> - </xsl:choose> - - <xsl:if test="@advisory"> + <xsl:if test="@advisory"> + <a href="{@advisory}"> <xsl:text>Advisory</xsl:text> </a> + <br/> + </xsl:if> - <a href="{@advisory}"> - <xsl:text>Advisory</xsl:text> - </a> - - <br/> - </xsl:if> - - <xsl:if test="@cert"> - - <a> - - <xsl:attribute name="href"> - - <xsl:text>http://www.kb.cert.org/vuls/id/</xsl:text> - <xsl:value-of select="@cert"/> - </xsl:attribute> + <xsl:if test="@cert"> + <a> + <xsl:attribute name="href"> + <xsl:text>http://www.kb.cert.org/vuls/id/</xsl:text> <xsl:value-of select="@cert"/> + </xsl:attribute> + <xsl:text>VU#</xsl:text> <xsl:value-of select="@cert"/> + </a> + </xsl:if> - <xsl:text>VU#</xsl:text> - <xsl:value-of select="@cert"/> - - </a> - </xsl:if> - - <xsl:if test="@cve"> - - <xsl:if test="@cert"> - - <xsl:text> </xsl:text> - </xsl:if> - - <a> - - <xsl:attribute name="href"> - - <xsl:text>http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-</xsl:text> - <xsl:value-of select="@cve"/> - </xsl:attribute> + <xsl:if test="@cve"> + <xsl:if test="@cert"> + <xsl:text>  </xsl:text> + </xsl:if> + <a> + <xsl:attribute name="href"> + <xsl:text>http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-</xsl:text> <xsl:value-of select="@cve"/> + </xsl:attribute> + <xsl:text>CVE-</xsl:text> <xsl:value-of select="@cve"/> + </a> + </xsl:if> - <xsl:text>CVE-</xsl:text> - <xsl:value-of select="@cve"/> - - </a> - </xsl:if> - - <xsl:if test="@core"> - - <xsl:if test="@cert or @cve"> - - <xsl:text> </xsl:text> - </xsl:if> - - <a href="{@href}"> + <xsl:if test="@core"> + <xsl:if test="@cert or @cve"> + <xsl:text>  </xsl:text> + </xsl:if> + <a href="{@href}"> <xsl:value-of select="@core"/> </a> + </xsl:if> - <xsl:value-of select="@core"/> - </a> - </xsl:if> - - <xsl:if test="@cert or @cve or @core"> - - <br/> - </xsl:if> + <xsl:if test="@cert or @cve or @core"> + <br/> + </xsl:if> - <xsl:text>Not vulnerable: </xsl:text> - <xsl:value-of select="@good"/> - <br/> + <xsl:text>Not vulnerable: </xsl:text> <xsl:value-of select="@good"/> <br/> + <xsl:text>Vulnerable: </xsl:text> <xsl:value-of select="@vulnerable"/> - <xsl:text>Vulnerable: </xsl:text> - <xsl:value-of select="@vulnerable"/> - - <xsl:for-each select="patch"> - - <br/> - - <a> + <xsl:for-each select="patch"> + <br/> - <xsl:attribute name="href"> - - <xsl:text>/download/</xsl:text> - <xsl:value-of select="@name"/> - </xsl:attribute> - - <xsl:text>The patch</xsl:text> + <a> + <xsl:attribute name="href"> + <xsl:text>/download/</xsl:text> <xsl:value-of select="@name"/> + </xsl:attribute> + <xsl:text>The patch</xsl:text> + </a> - </a> - - <xsl:text> </xsl:text> - - <a> - - <xsl:attribute name="href"> + <xsl:text>  </xsl:text> - <xsl:text>/download/</xsl:text> - <xsl:value-of select="@name"/> - <xsl:text>.asc</xsl:text> - </xsl:attribute> - - <xsl:text>pgp</xsl:text> - - </a> - - <xsl:if test="@versions"> + <a> + <xsl:attribute name="href"> + <xsl:text>/download/</xsl:text> <xsl:value-of select="@name"/> <xsl:text>.asc</xsl:text> + </xsl:attribute> + <xsl:text>pgp</xsl:text> + </a> - <xsl:text> (for </xsl:text> - <xsl:value-of select="@versions"/> - <xsl:text>)</xsl:text> - </xsl:if> - </xsl:for-each> + <xsl:if test="@versions"> + <xsl:text>  (for </xsl:text> <xsl:value-of select="@versions"/> <xsl:text>)</xsl:text> + </xsl:if> + </xsl:for-each> - </p> + </p> + </li> +</xsl:template> - </li> - </xsl:template> </xsl:stylesheet>
--- a/xslt/style.xslt Fri Feb 21 20:15:37 2014 +0400 +++ b/xslt/style.xslt Fri Feb 28 20:12:47 2014 +0400 @@ -1,23 +1,83 @@ <?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 name="style"> - <xsl:param name="lang"/> - - <style type="text/css"> - <xsl:value-of select=" normalize-space(' body { background: white; color: black; font-family: Georgia, serif; } p { text-align: justify; } table.news p { margin-top: 0; } table.news td { vertical-align: baseline; } table.news .date { text-align: right; padding-right: 0.5em; white-space: nowrap; } table.donors td { vertical-align: baseline; } table.donors li { text-align: left; } div.directive { background: #EEEEEE; padding: 10pt 10pt 10pt 0; } div.directive td { vertical-align: baseline; } div.directive pre { padding: 0; margin: 0; } div.directive p { margin: 5pt 0 0 0; font-size: 80%; } div#banner { background: #EEEEEE; padding: 10pt 10pt 10pt 0; } a.notrans { color: gray; text-decoration:none; } span.initial { font-size: 200%; float: left; padding-right: 10pt;} li { text-align: justify; padding-top: 0.5em; } .compact li { padding-top: 0; } dt { padding-top: 0.5em; } .compact dt { padding-top: 0; } dd { text-align: justify; } td.list { background: #EEEEEE; } blockquote.note { text-align: justify; background: #EEEEEE; border: none; margin: 1em; padding: 0.5em; } blockquote.example { background: transparent; border: none; margin: 1em; padding: 0.5em; } blockquote.example pre { padding: 0; margin: 0; } sup { font-size: 50%; } ')"/> - - <xsl:if test="$lang = 'he'"> +<xsl:template name="style"><xsl:param name="lang"/> - <xsl:value-of select=" normalize-space(' pre { text-align: left; direction: ltr; } code { direction: ltr; unicode-bidi: embed; } .ltr { direction: ltr; unicode-bidi: embed; } ')"/> - </xsl:if> - - <xsl:if test="$lang = 'cn'"> + <style type="text/css"><xsl:value-of select=" normalize-space(' + body { background: white; + color: black; + font-family: Georgia, serif; } + p { text-align: justify; } + table.news p { margin-top: 0; } + table.news td { vertical-align: baseline; } + table.news .date { text-align: right; + padding-right: 0.5em; + white-space: nowrap; } + table.donors td { vertical-align: baseline; } + table.donors li { text-align: left; } + div.directive { background: #EEEEEE; + padding: 10pt 10pt 10pt 0; } + div.directive td { vertical-align: baseline; } + div.directive pre { padding: 0; + margin: 0; } + div.directive p { margin: 5pt 0 0 0; + font-size: 80%; } + div#banner { background: #EEEEEE; + padding: 10pt 10pt 10pt 0; } + a.notrans { color: gray; + text-decoration:none; } + span.initial { font-size: 200%; + float: left; + padding-right: 10pt;} + li { text-align: justify; + padding-top: 0.5em; } + .compact li { padding-top: 0; } + dt { padding-top: 0.5em; } + .compact dt { padding-top: 0; } + dd { text-align: justify; } + td.list { background: #EEEEEE; } + blockquote.note { text-align: justify; + background: #EEEEEE; + border: none; + margin: 1em; + padding: 0.5em; } + blockquote.example { + background: transparent; + border: none; + margin: 1em; + padding: 0.5em; } + blockquote.example pre { + padding: 0; + margin: 0; } + sup { font-size: 50%; } + ') "/> - <xsl:value-of select=" normalize-space(' p { text-align: left; } li { text-align: left; } dd { text-align: left; } blockquote.note { text-align: left; } ')"/> - </xsl:if> + <xsl:if test="$lang = 'he'"> + <xsl:value-of select=" normalize-space(' + pre { text-align: left; + direction: ltr; } + code { direction: ltr; + unicode-bidi: embed; } + .ltr { direction: ltr; + unicode-bidi: embed; } + ') "/> + </xsl:if> - </style> - </xsl:template> + <xsl:if test="$lang = 'cn'"> + <xsl:value-of select=" normalize-space(' + p { text-align: left; } + li { text-align: left; } + dd { text-align: left; } + blockquote.note { text-align: left; } + ') "/> + </xsl:if> + + </style> +</xsl:template> </xsl:stylesheet>
--- a/xslt/versions.xslt Fri Feb 21 20:15:37 2014 +0400 +++ b/xslt/versions.xslt Fri Feb 28 20:12:47 2014 +0400 @@ -1,19 +1,23 @@ <?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="mainline_version"> - - <xsl:apply-templates select="document(concat($XML, '/versions.xml')) /versions/download[@tag='mainline'][1]/item[1]/@ver"/> - </xsl:template> - - <xsl:template match="stable_version"> +<xsl:template match="mainline_version"> + <xsl:apply-templates select="document(concat($XML, '/versions.xml')) + /versions/download[@tag='mainline'][1]/item[1]/@ver"/> +</xsl:template> - <xsl:apply-templates select="document(concat($XML, '/versions.xml')) /versions/download[@tag='stable'][1]/item[1]/@ver"/> - </xsl:template> +<xsl:template match="stable_version"> + <xsl:apply-templates select="document(concat($XML, '/versions.xml')) + /versions/download[@tag='stable'][1]/item[1]/@ver"/> +</xsl:template> - <xsl:template match="commercial_version"> - - <a href="http://nginx.com/products/">commercial subscription</a> - </xsl:template> +<xsl:template match="commercial_version"> + <a href="http://nginx.com/products/">commercial subscription</a> +</xsl:template> </xsl:stylesheet>