123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129 |
- 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(., ' ', ' ')} }
- }
|