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]+$")