aboutsummaryrefslogtreecommitdiff
path: root/source
diff options
context:
space:
mode:
authorAdrian Kummerlaender2014-10-26 11:40:28 +0100
committerAdrian Kummerlaender2014-10-26 11:40:28 +0100
commit0d0e34feb65ba998f8b1df06b498de3f56ea6b7e (patch)
treebf404e95a5abb1ac95c7c638e112ca8d4e812171 /source
parentee1786edd7972f9ff55fc8abb90a6d981d66998e (diff)
downloadOverview-0d0e34feb65ba998f8b1df06b498de3f56ea6b7e.tar
Overview-0d0e34feb65ba998f8b1df06b498de3f56ea6b7e.tar.gz
Overview-0d0e34feb65ba998f8b1df06b498de3f56ea6b7e.tar.bz2
Overview-0d0e34feb65ba998f8b1df06b498de3f56ea6b7e.tar.lz
Overview-0d0e34feb65ba998f8b1df06b498de3f56ea6b7e.tar.xz
Overview-0d0e34feb65ba998f8b1df06b498de3f56ea6b7e.tar.zst
Overview-0d0e34feb65ba998f8b1df06b498de3f56ea6b7e.zip
Replaced local Git log extraction with CGit ATOM feeds
* I just realized that repository specific commit feeds are already provided by both CGit and GitHub ** i.e. I made the mistake of not checking if my current system already provides the required functionality when I wanted to aggregate my commits and found this to be a use case for StaticXSLT * feeds are fetched via `curl` ** this will be a local request in production ** the messages are still cleaned using `sed` and transformed into _XHTML_ using `peg-markdown` * instead of reading a customized Git log output CommitLog now simply transforms CGit ATOM feeds using identity templates ** this requires ATOM namespace removal which is implemented in `utility/remove_namespace.xsl`
Diffstat (limited to 'source')
-rw-r--r--source/00_content/meta.xml5
-rw-r--r--source/00_content/repositories.xml14
-rw-r--r--source/01_raw/repository_feeds.xsl (renamed from source/01_raw/commits.xsl)12
-rw-r--r--source/02_augment/commits.xsl51
-rw-r--r--source/99_result/repository/atom.xsl81
-rw-r--r--source/99_result/timeline.xsl15
6 files changed, 50 insertions, 128 deletions
diff --git a/source/00_content/meta.xml b/source/00_content/meta.xml
index 56bbb9d..869431b 100644
--- a/source/00_content/meta.xml
+++ b/source/00_content/meta.xml
@@ -3,9 +3,4 @@
<title>CommitLog</title>
<url>http://localhost:8000</url>
<commit_count>20</commit_count>
-
- <mirror>
- <repository>http://code.kummerlaender.eu</repository>
- <commit>commit/?id=</commit>
- </mirror>
</datasource>
diff --git a/source/00_content/repositories.xml b/source/00_content/repositories.xml
index d7b0f05..6f0cbfd 100644
--- a/source/00_content/repositories.xml
+++ b/source/00_content/repositories.xml
@@ -1,24 +1,24 @@
<?xml version="1.0" encoding="UTF-8"?>
<datasource>
<entry handle="InputXSLT">
- <path>~/projects/dev/InputXSLT</path>
+ <feed>http://code.kummerlaender.eu/InputXSLT/atom/?h=master</feed>
</entry>
<entry handle="blog.kummerlaender.eu">
- <path>~/projects/dev/blog.kummerlaender.eu</path>
+ <feed>http://code.kummerlaender.eu/blog.kummerlaender.eu/atom/?h=master</feed>
</entry>
<entry handle="SimpleParser">
- <path>~/projects/dev/parser</path>
+ <feed>http://code.kummerlaender.eu/SimpleParser/atom/?h=master</feed>
</entry>
<entry handle="StaticXSLT">
- <path>~/projects/dev/StaticXSLT</path>
+ <feed>http://code.kummerlaender.eu/StaticXSLT/atom/?h=master</feed>
</entry>
<entry handle="BuildXSLT">
- <path>~/projects/dev/BuildXSLT</path>
+ <feed>http://code.kummerlaender.eu/BuildXSLT/atom/?h=master</feed>
</entry>
<entry handle="GraphStorage">
- <path>~/projects/dev/graphdb</path>
+ <feed>http://code.kummerlaender.eu/GraphStorage/atom/?h=master</feed>
</entry>
<entry handle="BinaryMapping">
- <path>~/projects/dev/BinaryMapping</path>
+ <feed>http://code.kummerlaender.eu/BinaryMapping/atom/?h=master</feed>
</entry>
</datasource>
diff --git a/source/01_raw/commits.xsl b/source/01_raw/repository_feeds.xsl
index b5fe201..24cc2d8 100644
--- a/source/01_raw/commits.xsl
+++ b/source/01_raw/repository_feeds.xsl
@@ -7,18 +7,18 @@
>
<xsl:include href="[utility/datasource.xsl]"/>
+<xsl:include href="[utility/remove_namespace.xsl]"/>
<xsl:variable name="meta">
- <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"/>
+ <datasource type="main" mode="full" source="00_content/repositories.xml" target="repositories"/>
+ <target mode="plain" value="repository_feeds.xml"/>
</xsl:variable>
<xsl:template match="repositories/entry">
<entry handle="{@handle}">
- <xsl:copy-of select="InputXSLT:external-command(
- concat('./utility/git_log.sh ', path, ' ', $root/meta/commit_count)
- )/self::command/commit"/>
+ <xsl:apply-templates mode="remove_namespace" select="InputXSLT:external-command(
+ concat('./utility/fetch_feed.sh ', feed/text())
+ )/self::command/feed/entry"/>
</entry>
</xsl:template>
diff --git a/source/02_augment/commits.xsl b/source/02_augment/commits.xsl
index 27f9bcd..7f17240 100644
--- a/source/02_augment/commits.xsl
+++ b/source/02_augment/commits.xsl
@@ -2,49 +2,66 @@
<xsl:stylesheet
version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
- xmlns:InputXSLT="function.inputxslt.application"
- exclude-result-prefixes="InputXSLT"
>
<xsl:include href="[utility/datasource.xsl]"/>
+<xsl:include href="[utility/formatter.xsl]"/>
<xsl:variable name="meta">
- <datasource type="main" mode="full" source="01_raw/commits.xml" target="repositories"/>
+ <datasource type="main" mode="full" source="01_raw/repository_feeds.xml" target="repositories"/>
<target mode="plain" value="commits.xml"/>
</xsl:variable>
-<xsl:template name="formatter">
- <xsl:param name="format"/>
- <xsl:param name="source"/>
-
- <xsl:copy-of select="InputXSLT:external-command(
- $format,
- $source
- )/self::command/node()"/>
+<xsl:template match="entry" mode="commit">
+ <commit hash="{id}">
+ <xsl:apply-templates select="@*|node()" mode="commit"/>
+ </commit>
</xsl:template>
-<xsl:template match="date" mode="commit">
+<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"/>
- </xsl:copy>
+ </date>
</xsl:template>
-<xsl:template match="date/text()" mode="commit">
+<xsl:template match="published/text()" mode="commit">
<xsl:value-of select="substring(., 0, 11)"/>
</xsl:template>
-<xsl:template match="message/text()" mode="commit">
+<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="format">markdown</xsl:with-param>
<xsl:with-param name="source" select="."/>
</xsl:call-template>
</xsl:template>
-<xsl:template match="@*|node()" mode="commit">
+<xsl:template match="@* | node()" mode="commit">
<xsl:copy>
<xsl:apply-templates select="@*|node()" mode="commit"/>
</xsl:copy>
@@ -52,7 +69,7 @@
<xsl:template match="repositories/entry">
<entry handle="{@handle}">
- <xsl:apply-templates select="commit" mode="commit"/>
+ <xsl:apply-templates select="entry" mode="commit"/>
</entry>
</xsl:template>
diff --git a/source/99_result/repository/atom.xsl b/source/99_result/repository/atom.xsl
deleted file mode 100644
index f858dea..0000000
--- a/source/99_result/repository/atom.xsl
+++ /dev/null
@@ -1,81 +0,0 @@
-<?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/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($root/meta/url, '/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>
diff --git a/source/99_result/timeline.xsl b/source/99_result/timeline.xsl
index 4793e8c..dfcca01 100644
--- a/source/99_result/timeline.xsl
+++ b/source/99_result/timeline.xsl
@@ -44,21 +44,12 @@
<xsl:value-of select="$hash"/>
</id>
<title>
- <xsl:value-of select="$commit/message/h1"/>
+ <xsl:value-of select="$commit/title"/>
</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>
+ <link rel="alternate" title="{$commit/title}" href="{$commit/link}"/>
<content type="xhtml">
<div xmlns="http://www.w3.org/1999/xhtml">
- <xsl:apply-templates select="$commit/message/*[name() != 'h1']" mode="xhtml"/>
+ <xsl:apply-templates select="$commit/message/*" mode="xhtml"/>
</div>
</content>
<updated>