aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAdrian Kummerlaender2014-10-24 18:59:25 +0200
committerAdrian Kummerlaender2014-10-24 18:59:25 +0200
commitee1786edd7972f9ff55fc8abb90a6d981d66998e (patch)
treec8776d08ded942982f6bc40438f1dffbeef25361
parentc3c2a4f161ab168debb64ed8a99dc1e4e3403364 (diff)
downloadOverview-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
-rw-r--r--source/00_content/meta.xml5
-rw-r--r--source/00_content/repositories.xml1
-rw-r--r--source/01_raw/commits.xsl7
-rw-r--r--source/02_augment/commits.xsl (renamed from source/02_augment/formatted_commits.xsl)2
-rw-r--r--source/03_merge/timeline.xsl2
-rw-r--r--source/04_meta/paginated_timeline.xsl24
-rw-r--r--source/99_result/main.css20
-rw-r--r--source/99_result/repository/atom.xsl (renamed from source/99_result/feed/atom.xsl)8
-rw-r--r--source/99_result/stream.xsl110
-rw-r--r--source/99_result/timeline.xsl101
-rw-r--r--utility/master.xsl35
11 files changed, 116 insertions, 199 deletions
diff --git a/source/00_content/meta.xml b/source/00_content/meta.xml
index b802002..56bbb9d 100644
--- a/source/00_content/meta.xml
+++ b/source/00_content/meta.xml
@@ -1,4 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
<datasource>
+ <title>CommitLog</title>
+ <url>http://localhost:8000</url>
+ <commit_count>20</commit_count>
+
<mirror>
<repository>http://code.kummerlaender.eu</repository>
<commit>commit/?id=</commit>
diff --git a/source/00_content/repositories.xml b/source/00_content/repositories.xml
index fc4d47e..d7b0f05 100644
--- a/source/00_content/repositories.xml
+++ b/source/00_content/repositories.xml
@@ -1,3 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
<datasource>
<entry handle="InputXSLT">
<path>~/projects/dev/InputXSLT</path>
diff --git a/source/01_raw/commits.xsl b/source/01_raw/commits.xsl
index c606030..b5fe201 100644
--- a/source/01_raw/commits.xsl
+++ b/source/01_raw/commits.xsl
@@ -9,16 +9,15 @@
<xsl:include href="[utility/datasource.xsl]"/>
<xsl:variable name="meta">
- <datasource type="main" mode="full" source="00_content/repositories.xml" target="repositories"/>
+ <datasource type="main" mode="full" source="00_content/repositories.xml" target="repositories"/>
+ <datasource type="support" mode="full" source="00_content/meta.xml" target="meta"/>
<target mode="plain" value="commits.xml"/>
</xsl:variable>
-<xsl:variable name="commit_count">20</xsl:variable>
-
<xsl:template match="repositories/entry">
<entry handle="{@handle}">
<xsl:copy-of select="InputXSLT:external-command(
- concat('./utility/git_log.sh ', path, ' ', $commit_count)
+ concat('./utility/git_log.sh ', path, ' ', $root/meta/commit_count)
)/self::command/commit"/>
</entry>
</xsl:template>
diff --git a/source/02_augment/formatted_commits.xsl b/source/02_augment/commits.xsl
index fed8c94..27f9bcd 100644
--- a/source/02_augment/formatted_commits.xsl
+++ b/source/02_augment/commits.xsl
@@ -10,7 +10,7 @@
<xsl:variable name="meta">
<datasource type="main" mode="full" source="01_raw/commits.xml" target="repositories"/>
- <target mode="plain" value="formatted_commits.xml"/>
+ <target mode="plain" value="commits.xml"/>
</xsl:variable>
<xsl:template name="formatter">
diff --git a/source/03_merge/timeline.xsl b/source/03_merge/timeline.xsl
index 0bed670..ebf7b44 100644
--- a/source/03_merge/timeline.xsl
+++ b/source/03_merge/timeline.xsl
@@ -8,7 +8,7 @@
<xsl:include href="[utility/reference_commit.xsl]"/>
<xsl:variable name="meta">
- <datasource type="main" mode="full" source="02_augment/formatted_commits.xml" target="repositories"/>
+ <datasource type="main" mode="full" source="02_augment/commits.xml" target="repositories"/>
<target mode="plain" value="timeline.xml"/>
</xsl:variable>
diff --git a/source/04_meta/paginated_timeline.xsl b/source/04_meta/paginated_timeline.xsl
deleted file mode 100644
index cb25d3b..0000000
--- a/source/04_meta/paginated_timeline.xsl
+++ /dev/null
@@ -1,24 +0,0 @@
-<?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/reference_commit.xsl]"/>
-
-<xsl:variable name="meta">
- <datasource type="main" mode="full" source="03_merge/timeline.xml" target="timeline"/>
- <target mode="plain" value="paginated_timeline.xml"/>
-</xsl:variable>
-
-<xsl:variable name="commits_per_page">20</xsl:variable>
-<xsl:variable name="total" select="ceiling(count(datasource/timeline/commit) div $commits_per_page)"/>
-
-<xsl:template match="timeline/commit[position() mod $commits_per_page = 1]">
- <entry index="{floor(position() div $commits_per_page)}" total="{$total}">
- <xsl:apply-templates select=". | following-sibling::commit[not(position() > ($commits_per_page - 1))]" mode="commit"/>
- </entry>
-</xsl:template>
-
-</xsl:stylesheet>
diff --git a/source/99_result/main.css b/source/99_result/main.css
deleted file mode 100644
index 0452889..0000000
--- a/source/99_result/main.css
+++ /dev/null
@@ -1,20 +0,0 @@
-body{margin:1em;padding:0;font:1em Droid Sans,sans-serif,Verdana,Arial,FreeSans;color:#272828;word-wrap:break-word}
-a{text-decoration:underline;color:#272828}
-a:hover{color:black}
-p{padding:0;margin:0}
-h2{font-size:1.4em;margin:0;color:#F80}
-h2 a{font-size:.8em;text-decoration:none;color:#272828;font-weight:normal;display:inline-block;vertical-align:middle;max-width:95%}
-h2 a:hover{text-decoration:underline}
-ul{padding:0;margin:0 0 0 2.5em}
-ul li{list-style-type:circle;margin:.2em 0 .2em 0}
-ul li a{background:0}
-p.info{font-size:.8em;margin-bottom:.5em;margin-left:1.5em}
-p.info a{text-decoration:none;color:#272828;margin:0 .1em 0 .1em}
-p.info a:hover{text-decoration:underline}
-.commit{border-bottom:.3em dotted #e3e8e8;padding-bottom:.5em;overflow:hidden}
-#pagination{height:1.5em;margin-top:.5em}
-#pagination span.disabled{display:none}
-#pagination span a{text-decoration:none;color:#272828}
-#pagination span a:hover{text-decoration:underline}
-#pagination span a.pagination-previous{float:left}
-#pagination span a.pagination-next{float:right}
diff --git a/source/99_result/feed/atom.xsl b/source/99_result/repository/atom.xsl
index e59a3a6..f858dea 100644
--- a/source/99_result/feed/atom.xsl
+++ b/source/99_result/repository/atom.xsl
@@ -15,14 +15,14 @@
<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"/>
+ <datasource type="main" mode="iterate" source="02_augment/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="url" select="concat($root/meta/url, '/feed/', $title, '.xml')"/>
<xsl:variable name="latest" select="repository/entry/commit[1]"/>
<xsl:template match="datasource">
@@ -58,7 +58,7 @@
<xsl:attribute name="href">
<xsl:value-of select="concat(
$root/meta/mirror/repository, '/',
- ../@handle, '/',
+ ../@handle, '/',
$root/meta/mirror/commit,
@hash
)"/>
diff --git a/source/99_result/stream.xsl b/source/99_result/stream.xsl
deleted file mode 100644
index 5c037d6..0000000
--- a/source/99_result/stream.xsl
+++ /dev/null
@@ -1,110 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<xsl:stylesheet
- version="1.0"
- xmlns="http://www.w3.org/1999/xhtml"
- xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
->
-
-<xsl:include href="[utility/master.xsl]"/>
-<xsl:include href="[utility/xhtml.xsl]"/>
-<xsl:include href="[utility/date-time.xsl]"/>
-
-<xsl:variable name="meta">
- <datasource type="main" mode="iterate" source="04_meta/paginated_timeline.xml" target="page"/>
- <datasource type="support" mode="full" source="02_augment/formatted_commits.xml" target="commits"/>
- <datasource type="support" mode="full" source="00_content/meta.xml" target="meta"/>
- <target mode="xpath" value="concat($datasource/page/entry/@index, '/index.html')"/>
-</xsl:variable>
-
-<xsl:template name="get_commit">
- <xsl:param name="repository"/>
- <xsl:param name="hash"/>
-
- <xsl:variable name="commit" select="$root/commits/entry[@handle = $repository]/commit[@hash = $hash]"/>
-
- <div class="commit">
- <h2>
- <xsl:text>» </xsl:text>
- <a href="">
- <xsl:value-of select="$commit/message/h1"/>
- </a>
- </h2>
- <p class="info">
- <xsl:call-template name="format-date">
- <xsl:with-param name="date" select="$commit/date"/>
- <xsl:with-param name="format" select="'M x, Y'"/>
- </xsl:call-template>
- <xsl:text> at </xsl:text>
- <xsl:value-of select="$commit/date/@time"/>
- <xsl:text> | </xsl:text>
- <a>
- <xsl:attribute name="href">
- <xsl:value-of select="concat(
- $root/meta/mirror/repository, '/',
- $repository
- )"/>
- </xsl:attribute>
-
- <xsl:value-of select="$repository"/>
- </a>
- <xsl:text> | </xsl:text>
- <a>
- <xsl:attribute name="href">
- <xsl:value-of select="concat(
- $root/meta/mirror/repository, '/',
- $repository, '/',
- $root/meta/mirror/commit,
- $commit/@hash
- )"/>
- </xsl:attribute>
-
- <xsl:value-of select="$commit/@hash"/>
- </a>
- </p>
-
- <xsl:apply-templates select="$commit/message/*[name() != 'h1']" mode="xhtml"/>
- </div>
-</xsl:template>
-
-<xsl:template match="page/entry">
- <xsl:apply-templates />
-
- <div id="pagination">
- <xsl:if test="@index > 0">
- <span>
- <a class="pagination-previous" href="/0">
- <xsl:text>« first</xsl:text>
- </a>
- </span>
-
- <span>
- <a class="pagination-previous" href="/{@index - 1}">
- <xsl:text>« newer</xsl:text>
- </a>
- </span>
- </xsl:if>
-
- <xsl:if test="@index &lt; @total - 1">
- <span>
- <a class="pagination-next" href="/{@total - 1}">
- <xsl:text>last »</xsl:text>
- </a>
- </span>
-
- <span>
- <a class="pagination-next" href="/{@index + 1}">
- <xsl:text>older »</xsl:text>
- </a>
- </span>
- </xsl:if>
- </div>
-</xsl:template>
-
-<xsl:template match="page/entry/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>
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() &lt;= $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>
diff --git a/utility/master.xsl b/utility/master.xsl
deleted file mode 100644
index 4f3597c..0000000
--- a/utility/master.xsl
+++ /dev/null
@@ -1,35 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<xsl:stylesheet
- version="1.0"
- xmlns="http://www.w3.org/1999/xhtml"
- xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
->
-
-<xsl:output
- method="xml"
- doctype-public="-//W3C//DTD XHTML 1.0 Strict//EN"
- doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"
- omit-xml-declaration="yes"
- encoding="UTF-8"
- indent="no"
-/>
-
-<xsl:variable name="root" select="/datasource"/>
-
-<xsl:template match="/">
-<html>
- <head>
- <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
- <meta name="viewport" content="width=device-width,initial-scale=1.0"/>
-
- <link rel="stylesheet" type="text/css" href="/main.css" />
- </head>
- <body>
- <xsl:apply-templates />
- </body>
-</html>
-</xsl:template>
-
-<xsl:template match="text()|@*"/>
-
-</xsl:stylesheet>