commit c1f8b188f7c05cd38e7bac71998fffd0485dd5f5
parent 9349a889e2bf6262681164f41c9221a382fd57ae
Author: digitalcraftsman <digitalcraftsman@users.noreply.github.com>
Date: Sat, 27 Feb 2016 16:51:07 +0100
Add template function slice
Diffstat:
2 files changed, 18 insertions(+), 0 deletions(-)
diff --git a/docs/content/templates/functions.md b/docs/content/templates/functions.md
@@ -75,6 +75,18 @@ or Create a map on the fly to pass into
+### slice
+
+`slice` allows you to create an array (`[]interface{}`) of all arguments that you pass to this function.
+
+One use case is the concatenation of elements in combination with `delimit`:
+
+```html
+{{ delimit (slice "foo" "bar" "buzz") ", " }}
+<!-- returns the string "foo, bar, buzz" -->
+```
+
+
### echoParam
Prints a parameter if it is set.
diff --git a/tpl/template_funcs.go b/tpl/template_funcs.go
@@ -105,6 +105,11 @@ func dictionary(values ...interface{}) (map[string]interface{}, error) {
return dict, nil
}
+// slice returns a slice of all passed arguments
+func slice(args ...interface{}) []interface{} {
+ return args
+}
+
func compareGetFloat(a interface{}, b interface{}) (float64, float64) {
var left, right float64
var leftStr, rightStr *string
@@ -1558,6 +1563,7 @@ func init() {
"seq": helpers.Seq,
"shuffle": shuffle,
"singularize": singularize,
+ "slice": slice,
"slicestr": slicestr,
"sort": sortSeq,
"split": split,