450
|
1 X:stylesheet {
|
|
2
|
|
3 X:output method="text" encoding="koi8-r";
|
|
4
|
|
5 X:param lang="'en'";
|
|
6 X:param configuration="'../xml/change_log_conf.xml'";
|
|
7
|
|
8 X:var conf = "document($configuration)/configuration";
|
|
9 X:var start = "$conf/start";
|
|
10 X:var indent = "$conf/indent";
|
|
11 X:var max = "$conf/length";
|
|
12 X:var br = {<br>}
|
|
13
|
|
14
|
|
15 X:template = "/" { !! "change_log"; }
|
|
16 X:template = "change_log" { !! "changes"; }
|
|
17
|
|
18
|
|
19 X:template = "changes" {
|
|
20 X:text { }
|
|
21
|
|
22 !{substring(concat($conf/changes[@lang=$lang]/title,
|
|
23 //change_log/@title,
|
|
24 ' ', @ver,
|
|
25 ' '),
|
|
26 1, $conf/changes[@lang=$lang]/length)}
|
|
27
|
|
28 X:if "$lang='ru'" { !{@date} }
|
|
29
|
|
30 X:if "$lang='en'" {
|
|
31 !{substring(@date, 1, 2)}
|
|
32 !{$conf/changes[@lang=$lang]/month[number(substring(current()/@date,
|
|
33 4, 2))]}
|
|
34 !{substring(@date, 7, 4)}
|
|
35 }
|
|
36
|
|
37 X:text { }
|
|
38
|
|
39 !! "change";
|
|
40
|
|
41 X:text { }
|
|
42 }
|
|
43
|
|
44
|
|
45 X:template = "change" {
|
|
46 X:var prefix = "$conf/changes[@lang=$lang]/*[local-name(.)=current()/@type]"
|
|
47
|
|
48 X:var postfix = { X:if "$prefix" { X:text {: } } }
|
|
49
|
|
50 !! "para[@lang=$lang]" (prefix = "concat($start, $prefix, $postfix)");
|
|
51 }
|
|
52
|
|
53
|
|
54 X:template para(prefix) = "para" {
|
|
55 X:var text = { !!; }
|
|
56
|
|
57 X:text { }
|
|
58
|
|
59 !wrap(text = "normalize-space($text)",
|
|
60 prefix = { X:if "position() = 1" { !{$prefix} } else { !{$indent} } })
|
|
61 }
|
|
62
|
|
63
|
|
64 X:template wrap(text, prefix) {
|
|
65 X:if "$text" {
|
|
66 X:var offset = {
|
|
67 X:if "starts-with($text, concat($br, ' '))" {
|
|
68 !{string-length($br) + 2}
|
|
69 } else {
|
|
70 1
|
|
71 }
|
|
72 }
|
|
73
|
|
74 X:var length = {
|
|
75 !length(text = "substring($text, $offset)",
|
|
76 prefix = "string-length($prefix)",
|
|
77 length = "$max")
|
|
78 }
|
|
79
|
|
80 !{$prefix}
|
|
81
|
|
82 !{translate(substring($text, $offset, $length), ' ', ' ')}
|
|
83
|
|
84 X:text { }
|
|
85
|
|
86 !wrap(text = "substring($text, $length + $offset)", prefix = "$indent")
|
|
87 }
|
|
88 }
|
|
89
|
|
90
|
|
91 X:template length(text, prefix, length) {
|
|
92 X:var break = "substring-before(substring($text, 1, $length - $prefix),
|
|
93 $br)"
|
|
94
|
|
95 X:choose {
|
|
96 X:when "$break" { !{string-length($break)} }
|
|
97
|
|
98 X:when "$length = 0" { !{$max} }
|
|
99
|
|
100 X:when "string-length($text) + $prefix <= $length
|
|
101 or substring($text, $length - $prefix, 1) = ' '"
|
|
102 {
|
|
103 !{$length - $prefix}
|
|
104 }
|
|
105
|
|
106 X:otherwise {
|
|
107 !length(text = "$text", prefix = "$prefix", length = "$length - 1")
|
|
108 }
|
|
109 }
|
|
110 }
|
|
111
|
|
112
|
|
113 X:template = "at" {@}
|
|
114 X:template = "br" { !{$br} }
|
|
115 X:template = "nobr" { !{translate(., ' ', ' ')} }
|
|
116
|
|
117
|
|
118 }
|