diff options
Diffstat (limited to 'xsl/img.xsl')
-rw-r--r-- | xsl/img.xsl | 51 |
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> |