summaryrefslogtreecommitdiff
path: root/xsl/img.xsl
diff options
context:
space:
mode:
Diffstat (limited to 'xsl/img.xsl')
-rw-r--r--xsl/img.xsl51
1 files changed, 48 insertions, 3 deletions
diff --git a/xsl/img.xsl b/xsl/img.xsl
index e2a9824..0c10fd2 100644
--- a/xsl/img.xsl
+++ b/xsl/img.xsl
@@ -14,10 +14,55 @@
<!-- ..but modify the src attribute to have a ?git-hash suffix -->
<xsl:attribute name="src">
- <xsl:value-of select="@src"/>
- <xsl:text>?</xsl:text>
- <xsl:value-of select="$version"/>
+
+ <xsl:variable name="replace_jpg">
+ <xsl:call-template name="replace-string">
+ <xsl:with-param name="text" select="@src"/>
+ <xsl:with-param name="replace" select="'.jpg'" />
+ <xsl:with-param name="with" select="''"/>
+ </xsl:call-template>
+ </xsl:variable>
+
+ <xsl:variable name="replace_jpg_png">
+ <xsl:call-template name="replace-string">
+ <xsl:with-param name="text" select="$replace_jpg"/>
+ <xsl:with-param name="replace" select="'.png'" />
+ <xsl:with-param name="with" select="''"/>
+ </xsl:call-template>
+ </xsl:variable>
+
+ <xsl:value-of select="$replace_jpg_png"/>
+
+ <xsl:choose>
+ <xsl:when test="contains(@src, '.jpg')">
+ <xsl:value-of select="$versioned_jpg"/>
+ </xsl:when>
+ <xsl:when test="contains(@src, '.png')">
+ <xsl:value-of select="$versioned_png"/>
+ </xsl:when>
+ </xsl:choose>
</xsl:attribute>
</xsl:copy>
</xsl:template>
+
+ <xsl:template name="replace-string">
+ <xsl:param name="text"/>
+ <xsl:param name="replace"/>
+ <xsl:param name="with"/>
+ <xsl:choose>
+ <xsl:when test="contains($text,$replace)">
+ <xsl:value-of select="substring-before($text,$replace)"/>
+ <xsl:value-of select="$with"/>
+ <xsl:call-template name="replace-string">
+ <xsl:with-param name="text"
+select="substring-after($text,$replace)"/>
+ <xsl:with-param name="replace" select="$replace"/>
+ <xsl:with-param name="with" select="$with"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$text"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
</xsl:stylesheet>