diff options
author | Adrian Kummerlaender | 2014-10-24 18:59:25 +0200 |
---|---|---|
committer | Adrian Kummerlaender | 2014-10-24 18:59:25 +0200 |
commit | ee1786edd7972f9ff55fc8abb90a6d981d66998e (patch) | |
tree | c8776d08ded942982f6bc40438f1dffbeef25361 /source/99_result/timeline.xsl | |
parent | c3c2a4f161ab168debb64ed8a99dc1e4e3403364 (diff) | |
download | Overview-ee1786edd7972f9ff55fc8abb90a6d981d66998e.tar Overview-ee1786edd7972f9ff55fc8abb90a6d981d66998e.tar.gz Overview-ee1786edd7972f9ff55fc8abb90a6d981d66998e.tar.bz2 Overview-ee1786edd7972f9ff55fc8abb90a6d981d66998e.tar.lz Overview-ee1786edd7972f9ff55fc8abb90a6d981d66998e.tar.xz Overview-ee1786edd7972f9ff55fc8abb90a6d981d66998e.tar.zst Overview-ee1786edd7972f9ff55fc8abb90a6d981d66998e.zip |
Added timeline ATOM feed and removed XHTML target
* moved repository feeds to `repository` directory
* replaced paginated XHTML timeline target with and ATOM feed
** removed `paginated_timeline.xsl` transformation including the `04_meta` level
** removed CSS and master stylesheets
* added title, url and commit count meta data to `meta.xml`
* expanded ATOM feed URLs
* timeline feed has an upper limit of `commit_count` items
** repository feeds have the same limit because only `commit_count` commits of every repository are fetched in the first place
Diffstat (limited to 'source/99_result/timeline.xsl')
-rw-r--r-- | source/99_result/timeline.xsl | 101 |
1 files changed, 101 insertions, 0 deletions
diff --git a/source/99_result/timeline.xsl b/source/99_result/timeline.xsl new file mode 100644 index 0000000..4793e8c --- /dev/null +++ b/source/99_result/timeline.xsl @@ -0,0 +1,101 @@ +<?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 name="get_commit"> + <xsl:param name="repository"/> + <xsl:param name="hash"/> + + <xsl:variable name="commit" select="$root/repositories/entry[ + @handle = $repository + ]/commit[ + @hash = $hash + ]"/> + + <entry xmlns="http://www.w3.org/2005/Atom"> + <id> + <xsl:value-of select="$hash"/> + </id> + <title> + <xsl:value-of select="$commit/message/h1"/> + </title> + <link rel="alternate" title="{@hash}"> + <xsl:attribute name="href"> + <xsl:value-of select="concat( + $root/meta/mirror/repository, '/', + $repository, '/', + $root/meta/mirror/commit, + $hash + )"/> + </xsl:attribute> + </link> + <content type="xhtml"> + <div xmlns="http://www.w3.org/1999/xhtml"> + <xsl:apply-templates select="$commit/message/*[name() != 'h1']" mode="xhtml"/> + </div> + </content> + <updated> + <xsl:value-of select="$commit/date"/> + <xsl:text>T</xsl:text> + <xsl:value-of select="$commit/date/@time"/> + <xsl:text>:00+02:00</xsl:text> + </updated> + </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: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() <= $root/meta/commit_count]"/> + </feed> +</xsl:template> + +<xsl:template match="timeline/commit"> + <xsl:call-template name="get_commit"> + <xsl:with-param name="repository" select="@repository"/> + <xsl:with-param name="hash" select="@hash"/> + </xsl:call-template> +</xsl:template> + +</xsl:stylesheet> |