-
Notifications
You must be signed in to change notification settings - Fork 28
/
rss.xsls
79 lines (61 loc) · 1.8 KB
/
rss.xsls
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
<!--
Copyright (C) Igor Sysoev
Copyright (C) Nginx, Inc.
-->
X:stylesheet
xmlns:date="http://exslt.org/dates-and-times"
exclude-result-prefixes="date"
{
X:output indent="no" encoding="utf-8";
X:strip-space elements = "*";
<!--
-- a current directory of a XSLT script is where the script is stored,
-- but not where XSLT processor has been started to run the script
-->
X:param XML = "'../xml'";
X:param YEAR;
X:var SITE = "'http://nginx.org'";
X:var LINK = "/news/@link";
X:include href = "dirname.xslt";
X:include href = "link.xslt";
X:include href = "menu.xslt";
X:include href = "content.xslt";
X:template = "/news" {
<rss version="2.0">
<channel>
<title> !{@name} </title>
<link> !{$SITE} </link>
<description />
!! "event";
</channel>
</rss>
}
X:template = "event[position() <= 10]" {
X:var year = { !{substring(../event[position()=1]/@date, 1, 4)} }
X:var y = { !{substring(@date, 1, 4)} }
X:var page = {
X:if "$year != $y" {
!{concat($y, '.html')}
}
}
<item>
<title> !! "para[1]//text()"; </title>
<guid> !{$SITE} X:text {/} !{$page} X:text {#} !{@date} </guid>
<link> !{$SITE} X:text {/} !{$page} X:text {#} !{@date} </link>
<pubDate>
!{ concat(date:day-abbreviation(@date), ', ',
format-number(date:day-in-month(@date), '00'), ' ',
date:month-abbreviation(@date), ' ',
date:year(@date),
' 00:00:00 +0300') }
</pubDate>
<description>
X:text disable-output-escaping="yes" {<![CDATA[}
!{@date}
!! "para";
X:text disable-output-escaping="yes" {]]>}
</description>
</item>
}
X:template = "event" { }
}