diff options
author | Adrian Kummerlaender | 2014-10-22 19:56:55 +0200 |
---|---|---|
committer | Adrian Kummerlaender | 2014-10-22 19:56:55 +0200 |
commit | c3c2a4f161ab168debb64ed8a99dc1e4e3403364 (patch) | |
tree | d24d8b367fd2e099671df20dcc6bfe10a6b213b9 /source | |
parent | f6667b9796d590428b071e3d1923b5b0a6fa3579 (diff) | |
download | Overview-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/)
Diffstat (limited to 'source')
-rw-r--r-- | source/99_result/feed/atom.xsl | 81 |
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> |