aboutsummaryrefslogtreecommitdiff
path: root/source/99_result/timeline.xsl
blob: de0c6e4eda72a1ef84f6e26192549503d0c82ff6 (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
82
83
84
85
86
87
88
89
90
91
92
93
<?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="full" source="03_merge/timeline.xml"  target="timeline"/>
	<datasource type="support" mode="full" source="02_augment/commits.xml" target="repositories"/>
	<datasource type="support" mode="full" source="00_content/meta.xml"    target="meta"/>
	<target     mode="plain"   value="timeline.xml"/>
</xsl:variable>

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

<xsl:template match="repositories/entry/commit">
	<entry xmlns="http://www.w3.org/2005/Atom">
		<id>
			<xsl:value-of select="link"/>
		</id>
		<title>
			<xsl:value-of select="title"/>
		</title>
		<link rel="alternate" title="{title}" href="{link}"/>
		<author>
			<name>
				<xsl:value-of select="author"/>
			</name>
		</author>
		<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>
		<content type="xhtml">
			<div xmlns="http://www.w3.org/1999/xhtml">
				<xsl:apply-templates select="message/*" mode="xhtml"/>
			</div>
		</content>
	</entry>
</xsl:template>

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

		<id>
			<xsl:value-of select="$url"/>
		</id>
		<title>
			<xsl:text>Latest commits @ </xsl:text>
			<xsl:value-of select="$root/meta/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="timeline/commit[position() &lt;= $root/meta/timeline/commit_count]"/>
	</feed>
</xsl:template>

<xsl:template match="timeline/commit">
	<xsl:variable name="repository" select="@repository"/>
	<xsl:variable name="hash"       select="@hash"/>

	<xsl:apply-templates select="$root/repositories/entry[
		@handle = $repository
	]/commit[
		@hash = $hash
	]"/>
</xsl:template>

</xsl:stylesheet>