hugo

Unnamed repository; edit this file 'description' to name the repository.

git clone git://git.shimmy1996.com/hugo.git
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:
Mdocs/content/templates/functions.md | 12++++++++++++
Mtpl/template_funcs.go | 6++++++
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,