shithub: hugo

Download patch

ref: e08cabadb6f0d61b818dfe4be404decb6c6e8ca2
parent: 871e811339b660232557dca10a6d181a5320d745
author: Tom Helmer Hansen <[email protected]>
date: Sat Jan 17 10:46:27 EST 2015

Rewrite first argument to interface{}

--- a/tpl/template.go
+++ b/tpl/template.go
@@ -880,6 +880,24 @@
 	return chompRegexp.ReplaceAllString(s, ""), nil
 }
 
+// Trim leading/trailing characters defined by b from a
+func Trim(a interface{}, b string) (string, error) {
+	aStr, err := cast.ToStringE(a)
+	if err != nil {
+		return "", err
+	}
+	return strings.Trim(aStr, b), nil
+}
+
+// Replace all occurences of b with c in a
+func Replace(a interface{}, b string, c string) (string, error) {
+	aStr, err := cast.ToStringE(a)
+	if err != nil {
+		return "", err
+	}
+	return strings.Replace(aStr, b, c, -1), nil
+}
+
 func SafeHtml(text string) template.HTML {
 	return template.HTML(text)
 }
@@ -1237,8 +1255,8 @@
 		"relref":      RelRef,
 		"apply":       Apply,
 		"chomp":       Chomp,
-    "replace":     func(a string, b string, c string) string { return strings.Replace(a, b, c, -1) },
-    "trim":        func(a string, b string) string { return strings.Trim(a, b) },
+		"replace":     Replace,
+		"trim":        Trim,
 	}
 
 	chompRegexp = regexp.MustCompile("[\r\n]+$")