aboutsummaryrefslogtreecommitdiff
path: root/source/99_result/feed/atom.xsl
blob: e59a3a6bb8bd61d1d090fd5fd92544f1cf707950 (plain)
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
80
81
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet
	version="1.0"
	xmlns="http://www.w3.org/2005/Atom"
	xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
>

<xsl:output
	method="xml"
	omit-xml-declaration="no"
	encoding="UTF-8"
	indent="no"
/>

<xsl:include href="[utility/xhtml.xsl]"/>

<xsl:variable name="meta">
	<datasource type="main"    mode="iterate" source="02_augment/formatted_commits.xml" target="repository"/>
	<datasource type="support" mode="full"    source="00_content/meta.xml"              target="meta"/>
	<target     mode="xpath"   value="concat($datasource/repository/entry/@handle, '.xml')"/>
</xsl:variable>

<xsl:variable name="root"   select="/datasource"/>
<xsl:variable name="title"  select="datasource/repository/entry/@handle"/>
<xsl:variable name="url"    select="concat('/feed/', $title, '.xml')"/>
<xsl:variable name="latest" select="repository/entry/commit[1]"/>

<xsl:template match="datasource">
	<feed>
		<link href="{$url}" rel="self" title="{$title}" type="application/atom+xml"/>

		<id>
			<xsl:value-of select="$url"/>
		</id>
		<title>
			<xsl:value-of select="$title"/>
		</title>
		<updated>
			<xsl:value-of select="$latest/date"/>
			<xsl:text>T</xsl:text>
			<xsl:value-of select="$latest/date/@time"/>
			<xsl:text>:00+02:00</xsl:text>
		</updated>

		<xsl:apply-templates select="repository/entry/commit"/>
	</feed>
</xsl:template>

<xsl:template match="repository/entry/commit">
	<entry xmlns="http://www.w3.org/2005/Atom">
		<id>
			<xsl:value-of select="@hash"/>
		</id>
		<title>
			<xsl:value-of select="message/h1"/>
		</title>
		<link rel="alternate" title="{@hash}">
			<xsl:attribute name="href">
				<xsl:value-of select="concat(
					$root/meta/mirror/repository, '/',
					../@handle,                '/',
					$root/meta/mirror/commit,
					@hash
				)"/>
			</xsl:attribute>
		</link>
		<content type="xhtml">
			<div xmlns="http://www.w3.org/1999/xhtml">
				<xsl:apply-templates select="message/*[name() != 'h1']" mode="xhtml"/>
			</div>
		</content>
		<updated>
			<xsl:value-of select="date"/>
			<xsl:text>T</xsl:text>
			<xsl:value-of select="date/@time"/>
			<xsl:text>:00+02:00</xsl:text>
		</updated>
	</entry>
</xsl:template>

</xsl:stylesheet>