summaryrefslogtreecommitdiff
path: root/xsl/img.xsl
diff options
context:
space:
mode:
authorBenjamin Franzke <benjaminfranzke@googlemail.com>2016-07-05 08:54:53 +0200
committerBenjamin Franzke <benjaminfranzke@googlemail.com>2016-07-05 08:57:55 +0200
commitec83b34a8f2ab92966ecbfc196245f5965306484 (patch)
treec38ff2e99b54598aed3b897e6416b3d9da46ddf4 /xsl/img.xsl
parent7c0de6da893a1e709663c462170ff2c0e4110ac1 (diff)
downloadmutti-web-ec83b34a8f2ab92966ecbfc196245f5965306484.tar.gz
mutti-web-ec83b34a8f2ab92966ecbfc196245f5965306484.tar.bz2
mutti-web-ec83b34a8f2ab92966ecbfc196245f5965306484.zip
Allow to use different resource caching schemes
On the deployment server we no use make versioned_jpg="'s/.*/.&.jpg/'" versioned_png="'s/.*/.&.png/'" to generate resource urls like image.f74d4ea.png
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>