1640941d6c
Dates in ISO 8601 format are in line with what is used in nginx.org news, and are generally less ambiguous and easier to work with. The changes.xml was converted using sed: $ sed 's/date="\(..\)\.\(..\)\.\(....\)"/date="\3-\2-\1"/g' changes.xml Appropriate changes to changes.xsls were introduced.
134 lines
3.2 KiB
Text
134 lines
3.2 KiB
Text
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'" {
|
|
!{substring(@date, 9, 2)}
|
|
X:text {.}
|
|
!{substring(@date, 6, 2)}
|
|
X:text {.}
|
|
!{substring(@date, 1, 4)}
|
|
}
|
|
|
|
X:if "$lang='en'" {
|
|
!{substring(@date, 9, 2)}
|
|
!{$conf/changes[@lang=$lang]/month[number(substring(current()/@date,
|
|
6, 2))]}
|
|
!{substring(@date, 1, 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(., ' ', ' ')} }
|
|
|
|
|
|
}
|