diff options
author | Adrian Kummerlaender | 2014-10-26 11:40:28 +0100 |
---|---|---|
committer | Adrian Kummerlaender | 2014-10-26 11:40:28 +0100 |
commit | 0d0e34feb65ba998f8b1df06b498de3f56ea6b7e (patch) | |
tree | bf404e95a5abb1ac95c7c638e112ca8d4e812171 /source/02_augment | |
parent | ee1786edd7972f9ff55fc8abb90a6d981d66998e (diff) | |
download | Overview-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.xsl | 51 |
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> |