aboutsummaryrefslogtreecommitdiff
path: root/source/02_augment
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/02_augment
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/02_augment')
-rw-r--r--source/02_augment/commits.xsl51
1 files changed, 34 insertions, 17 deletions
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>