mirror of
https://github.com/nginx/nginx.git
synced 2024-11-25 06:26:48 +08:00
129 lines
3.1 KiB
Plaintext
129 lines
3.1 KiB
Plaintext
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 = {<br>}
|
|
|
|
|
|
X:template = "/" { !! "change_log"; }
|
|
X:template = "change_log" { !! "changes"; }
|
|
|
|
|
|
X:template = "changes" {
|
|
X:text { }
|
|
|
|
!{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 { }
|
|
|
|
!! "change";
|
|
|
|
X:text { }
|
|
}
|
|
|
|
|
|
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 { }
|
|
|
|
!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),
|
|
' ', ' '))}
|
|
|
|
X:text { }
|
|
|
|
!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 <= $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(., ' ', ' ')} }
|
|
|
|
|
|
}
|