blob: 8be25a20a779b3439c8526d57149c321c490a076 [file] [log] [blame]
Igor Sysoev0e8348c2004-10-04 15:04:06 +00001X:stylesheet {
2
Igor Sysoev03228792011-08-23 12:50:54 +00003X:output method="text";
Igor Sysoev0e8348c2004-10-04 15:04:06 +00004
5X:param lang="'en'";
6X:param configuration="'../xml/change_log_conf.xml'";
7
8X:var conf = "document($configuration)/configuration";
9X:var start = "$conf/start";
10X:var indent = "$conf/indent";
11X:var max = "$conf/length";
12X:var br = {<br>}
13
14
15X:template = "/" { !! "change_log"; }
16X:template = "change_log" { !! "changes"; }
17
18
19X: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
45X: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
54X: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
64X:template wrap(text, prefix) {
65 X:if "$text" {
66 X:var offset = {
Ruslan Ermilov998dbb92011-08-23 09:00:24 +000067 X:choose {
68 X:when "starts-with($text, concat($br, ' '))" {
69 !{string-length($br) + 2}
70 }
71 X:when "starts-with($text, $br)" {
72 !{string-length($br) + 1}
73 }
74 X:otherwise {
75 1
76 }
Igor Sysoev0e8348c2004-10-04 15:04:06 +000077 }
78 }
79
80 X:var length = {
81 !length(text = "substring($text, $offset)",
82 prefix = "string-length($prefix)",
83 length = "$max")
84 }
85
86 !{$prefix}
87
Igor Sysoev99d42782011-08-23 10:10:25 +000088 !{normalize-space(translate(substring($text, $offset, $length),
89 ' ', ' '))}
Igor Sysoev0e8348c2004-10-04 15:04:06 +000090
91 X:text {
}
92
93 !wrap(text = "substring($text, $length + $offset)", prefix = "$indent")
94 }
95}
96
97
98X:template length(text, prefix, length) {
Ruslan Ermilov998dbb92011-08-23 09:00:24 +000099 X:var break = "substring-before(substring($text, 1,
100 $length - $prefix + string-length($br)),
Igor Sysoev0e8348c2004-10-04 15:04:06 +0000101 $br)"
102
103 X:choose {
104 X:when "$break" { !{string-length($break)} }
105
Ruslan Ermilov998dbb92011-08-23 09:00:24 +0000106 X:when "$length = 0" { !{$max - $prefix} }
Igor Sysoev0e8348c2004-10-04 15:04:06 +0000107
Ruslan Ermilov998dbb92011-08-23 09:00:24 +0000108 X:when "string-length($text) + $prefix <= $length" {
Igor Sysoev0e8348c2004-10-04 15:04:06 +0000109 !{$length - $prefix}
110 }
111
Ruslan Ermilov998dbb92011-08-23 09:00:24 +0000112 X:when "substring($text, $length - $prefix + 1, 1) = ' '" {
113 !{$length - $prefix + 1}
114 }
115
Igor Sysoev0e8348c2004-10-04 15:04:06 +0000116 X:otherwise {
117 !length(text = "$text", prefix = "$prefix", length = "$length - 1")
118 }
119 }
120}
121
122
123X:template = "at" {@}
124X:template = "br" { !{$br} }
125X:template = "nobr" { !{translate(., ' ', ' ')} }
126
127
128}