diff options
author | Igor Sysoev <igor@sysoev.ru> | 2004-10-04 15:04:06 +0000 |
---|---|---|
committer | Igor Sysoev <igor@sysoev.ru> | 2004-10-04 15:04:06 +0000 |
commit | 0e8348c500bac5303a3b7f2ffee4b7ded05558ff (patch) | |
tree | d9743a06cb990c2d537bc3f03762060c90e254eb /docs/xslt/changes.xslt | |
parent | aad1b89b68b0651b5729b15203081f6b4620847a (diff) | |
download | nginx-0e8348c500bac5303a3b7f2ffee4b7ded05558ff.tar.gz nginx-0e8348c500bac5303a3b7f2ffee4b7ded05558ff.zip |
nginx-0.1.0-RELEASE importrelease-0.1.0
*) The first public version.
Diffstat (limited to 'docs/xslt/changes.xslt')
-rw-r--r-- | docs/xslt/changes.xslt | 158 |
1 files changed, 158 insertions, 0 deletions
diff --git a/docs/xslt/changes.xslt b/docs/xslt/changes.xslt new file mode 100644 index 000000000..8b1cd0a8b --- /dev/null +++ b/docs/xslt/changes.xslt @@ -0,0 +1,158 @@ +<?xml version="1.0" encoding="utf-8"?> +<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"> + + <xsl:output encoding="koi8-r" method="text"/> + + <xsl:param select="'en'" name="lang"/> + <xsl:param select="'../xml/change_log_conf.xml'" name="configuration"/> + + <xsl:variable select="document($configuration)/configuration" name="conf"/> + <xsl:variable select="$conf/start" name="start"/> + <xsl:variable select="$conf/indent" name="indent"/> + <xsl:variable select="$conf/length" name="max"/> + <xsl:variable name="br"><br></xsl:variable> + + <xsl:template match="/"> + <xsl:apply-templates select="change_log"/> + </xsl:template> + + <xsl:template match="change_log"> + <xsl:apply-templates select="changes"/> + </xsl:template> + + <xsl:template match="changes"> + <xsl:text> +</xsl:text> + + <xsl:value-of select="substring(concat($conf/changes[@lang=$lang]/title, //change_log/@title, ' ', @ver, ' '), 1, $conf/changes[@lang=$lang]/length)"/> + + <xsl:if test="$lang='ru'"> + <xsl:value-of select="@date"/> + </xsl:if> + + <xsl:if test="$lang='en'"> + <xsl:value-of select="substring(@date, 1, 2)"/> + <xsl:value-of select="$conf/changes[@lang=$lang]/month[number(substring(current()/@date, 4, 2))]"/> + <xsl:value-of select="substring(@date, 7, 4)"/> + </xsl:if> + <xsl:text> +</xsl:text> + + <xsl:apply-templates select="change"/> + + <xsl:text> +</xsl:text> + </xsl:template> + + + <xsl:template match="change"> + <xsl:variable select="$conf/changes[@lang=$lang]/*[local-name(.)=current()/@type]" name="prefix"/> + + <xsl:variable name="postfix"> + <xsl:if test="$prefix"> + <xsl:text>: </xsl:text> + </xsl:if> + </xsl:variable> + + <xsl:apply-templates select="para[@lang=$lang]"> + <xsl:with-param select="concat($start, $prefix, $postfix)" name="prefix"/> + </xsl:apply-templates> + </xsl:template> + + + <xsl:template match="para" name="para"> + <xsl:param name="prefix"/> + <xsl:variable name="text"> + <xsl:apply-templates/> + </xsl:variable> + + <xsl:text> +</xsl:text> + + <xsl:call-template name="wrap"> + <xsl:with-param select="normalize-space($text)" name="text"/> + <xsl:with-param name="prefix"> + <xsl:choose> + <xsl:when test="position() = 1"> + <xsl:value-of select="$prefix"/> + </xsl:when> + <xsl:otherwise> + <xsl:value-of select="$indent"/> + </xsl:otherwise> + </xsl:choose> + </xsl:with-param> + </xsl:call-template> + </xsl:template> + + + <xsl:template name="wrap"> + <xsl:param name="text"/> + <xsl:param name="prefix"/> + <xsl:if test="$text"> + <xsl:variable name="offset"> + <xsl:choose> + <xsl:when test="starts-with($text, concat($br, ' '))"> + <xsl:value-of select="string-length($br) + 2"/> + </xsl:when> + <xsl:otherwise> + 1</xsl:otherwise> + </xsl:choose> + </xsl:variable> + + <xsl:variable name="length"> + <xsl:call-template name="length"> + <xsl:with-param select="substring($text, $offset)" name="text"/> + <xsl:with-param select="string-length($prefix)" name="prefix"/> + <xsl:with-param select="$max" name="length"/> + </xsl:call-template> + </xsl:variable> + <xsl:value-of select="$prefix"/> + + <xsl:value-of select="translate(substring($text, $offset, $length), ' ', ' ')"/> + + <xsl:text> +</xsl:text> + + <xsl:call-template name="wrap"> + <xsl:with-param select="substring($text, $length + $offset)" name="text"/> + <xsl:with-param select="$indent" name="prefix"/> + </xsl:call-template> + </xsl:if> + </xsl:template> + + <xsl:template name="length"> + <xsl:param name="text"/> + <xsl:param name="prefix"/> + <xsl:param name="length"/> + <xsl:variable select="substring-before(substring($text, 1, $length - $prefix), $br)" name="break"/> + <xsl:choose> + <xsl:when test="$break"> + <xsl:value-of select="string-length($break)"/> + </xsl:when> + <xsl:when test="$length = 0"> + <xsl:value-of select="$max"/> + </xsl:when> + <xsl:when test="string-length($text) + $prefix <= $length or substring($text, $length - $prefix, 1) = ' '"> + <xsl:value-of select="$length - $prefix"/> + </xsl:when> + <xsl:otherwise> + <xsl:call-template name="length"> + <xsl:with-param select="$text" name="text"/> + <xsl:with-param select="$prefix" name="prefix"/> + <xsl:with-param select="$length - 1" name="length"/> + </xsl:call-template> + </xsl:otherwise> + </xsl:choose> + </xsl:template> + + + <xsl:template match="at">@</xsl:template> + + <xsl:template match="br"> + <xsl:value-of select="$br"/> + </xsl:template> + + <xsl:template match="nobr"> + <xsl:value-of select="translate(., ' ', ' ')"/> + </xsl:template> +</xsl:stylesheet>
\ No newline at end of file |