aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAdrian Kummerlaender2014-10-22 19:56:55 +0200
committerAdrian Kummerlaender2014-10-22 19:56:55 +0200
commitc3c2a4f161ab168debb64ed8a99dc1e4e3403364 (patch)
treed24d8b367fd2e099671df20dcc6bfe10a6b213b9
parentf6667b9796d590428b071e3d1923b5b0a6fa3579 (diff)
downloadOverview-c3c2a4f161ab168debb64ed8a99dc1e4e3403364.tar
Overview-c3c2a4f161ab168debb64ed8a99dc1e4e3403364.tar.gz
Overview-c3c2a4f161ab168debb64ed8a99dc1e4e3403364.tar.bz2
Overview-c3c2a4f161ab168debb64ed8a99dc1e4e3403364.tar.lz
Overview-c3c2a4f161ab168debb64ed8a99dc1e4e3403364.tar.xz
Overview-c3c2a4f161ab168debb64ed8a99dc1e4e3403364.tar.zst
Overview-c3c2a4f161ab168debb64ed8a99dc1e4e3403364.zip
Added basic repository ATOM feeds
* feed contains all commits of the respective repository which are included in the timeline view ** i.e. currently up to 20 * this transformation is based on the one used to generate the blog article feed * the goal of this project is to generate various feeds to be included into [my blog](https://github.com/KnairdA/blog.kummerlaender.eu/)
-rw-r--r--source/99_result/feed/atom.xsl81
1 files changed, 81 insertions, 0 deletions
diff --git a/source/99_result/feed/atom.xsl b/source/99_result/feed/atom.xsl
new file mode 100644
index 0000000..e59a3a6
--- /dev/null
+++ b/source/99_result/feed/atom.xsl
@@ -0,0 +1,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>