view docs/xsls/changes.xsls @ 5440:cbb9a6c7493c

SPDY: fixed request hang with the auth request module. We should just call post_handler() when subrequest wants to read body, like it happens for HTTP since rev. f458156fd46a. An attempt to init request body for subrequests results in hang if the body was not already read.
author Valentin Bartenev <vbart@nginx.com>
date Mon, 11 Nov 2013 18:49:35 +0400
parents 76bc29f06168
children 529f10f7757c
line wrap: on
line source

X:stylesheet {

X:output method="text";

X:param lang="'en'";
X:param configuration="'../xml/change_log_conf.xml'";

X:var conf = "document($configuration)/configuration";
X:var start = "$conf/start";
X:var indent = "$conf/indent";
X:var max = "$conf/length";
X:var br = {&lt;br&gt;}


X:template = "/" { !! "change_log"; }
X:template = "change_log" { !! "changes"; }


X:template = "changes" {
    X:text {&#10;}

    !{substring(concat($conf/changes[@lang=$lang]/title,
                       //change_log/@title,
                       ' ', @ver,
                       '                                                    '),
                1, $conf/changes[@lang=$lang]/length)}

    X:if "$lang='ru'" { !{@date} }

    X:if "$lang='en'" {
        !{substring(@date, 1, 2)}
        !{$conf/changes[@lang=$lang]/month[number(substring(current()/@date,
                                                            4, 2))]}
        !{substring(@date, 7, 4)}
    }

    X:text {&#10;}

    !! "change";

    X:text {&#10;}
}


X:template = "change" {
    X:var prefix = "$conf/changes[@lang=$lang]/*[local-name(.)=current()/@type]"

    X:var postfix = { X:if "$prefix" { X:text {: } } }

    !! "para[@lang=$lang]" (prefix = "concat($start, $prefix, $postfix)");
}


X:template para(prefix) = "para" {
    X:var text = { !!; }

    X:text {&#10;}

    !wrap(text = "normalize-space($text)",
          prefix = { X:if "position() = 1" { !{$prefix} } else { !{$indent} } })
}


X:template wrap(text, prefix) {
    X:if "$text" {
        X:var offset = {
            X:choose {
                X:when "starts-with($text, concat($br, ' '))" {
                    !{string-length($br) + 2}
                }
                X:when "starts-with($text, $br)" {
                    !{string-length($br) + 1}
                }
                X:otherwise {
                    1
                }
            }
        }

        X:var length = {
            !length(text = "substring($text, $offset)",
                    prefix = "string-length($prefix)",
                    length = "$max")
        }

        !{$prefix}

        !{normalize-space(translate(substring($text, $offset, $length),
                                    '&#xA0;', ' '))}

        X:text {&#10;}

        !wrap(text = "substring($text, $length + $offset)", prefix = "$indent")
    }
}


X:template length(text, prefix, length) {
    X:var break = "substring-before(substring($text, 1,
                                    $length - $prefix + string-length($br)),
                                    $br)"

    X:choose {
        X:when "$break" { !{string-length($break)} }

        X:when "$length = 0" { !{$max - $prefix} }

        X:when "string-length($text) + $prefix &lt;= $length" {
            !{$length - $prefix}
        }

        X:when "substring($text, $length - $prefix + 1, 1) = ' '" {
            !{$length - $prefix + 1}
        }

        X:otherwise {
            !length(text = "$text", prefix = "$prefix", length = "$length - 1")
        }
    }
}


X:template = "at" {@}
X:template = "br" { !{$br} }
X:template = "nobr" { !{translate(., ' ', '&#xA0;')} }


}