aboutsummaryrefslogtreecommitdiff
path: root/source/02_augment/commits.xsl
blob: a2ad0b5c8e65aae93334e1ee8b87d288f8d5cd9c (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
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet
	version="1.0"
	xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
>

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

<xsl:variable name="meta">
	<datasource type="main"  mode="full" source="01_raw/repository_feeds.xml" target="repositories"/>
	<target     mode="plain" value="commits.xml"/>
</xsl:variable>

<xsl:template match="entry" mode="commit">
	<commit hash="{substring(id, 0, 7)}">
		<xsl:apply-templates select="@*|node()" mode="commit"/>
	</commit>
</xsl:template>

<xsl:template match="id"                       mode="commit"/>
<xsl:template match="updated"                  mode="commit"/>
<xsl:template match="content[@type = 'xhtml']" mode="commit"/>

<xsl:template match="author" mode="commit">
	<xsl:copy>
		<xsl:value-of select="name"/>
	</xsl:copy>
</xsl:template>

<xsl:template match="published" mode="commit">
	<date>
		<xsl:attribute name="time">
			<xsl:value-of select="substring(text(), 12, 5)"/>
		</xsl:attribute>

		<xsl:apply-templates select="@*|node()" mode="commit"/>
	</date>
</xsl:template>

<xsl:template match="published/text()" mode="commit">
	<xsl:value-of select="substring(., 0, 11)"/>
</xsl:template>

<xsl:template match="link" mode="commit">
	<link>
		<xsl:value-of select="@href"/>
	</link>
</xsl:template>

<xsl:template match="content[@type = 'text']" mode="commit">
	<message>
		<xsl:apply-templates select="node()" mode="commit"/>
	</message>
</xsl:template>

<xsl:template match="content[@type = 'text']/text()" mode="commit">
	<xsl:call-template name="formatter">
		<xsl:with-param name="source" select="."/>
	</xsl:call-template>
</xsl:template>

<xsl:template match="@* | node()" mode="commit">
	<xsl:copy>
		<xsl:apply-templates select="@* | node()" mode="commit"/>
	</xsl:copy>
</xsl:template>

<xsl:template match="repositories/entry">
	<entry handle="{@handle}">
		<xsl:apply-templates select="entry" mode="commit"/>
	</entry>
</xsl:template>

</xsl:stylesheet>