summaryrefslogtreecommitdiffstats
path: root/common/collections/collections.go
diff options
context:
space:
mode:
authorBjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>2018-09-10 09:48:10 +0200
committerBjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>2018-09-14 10:12:08 +0200
commite27fd4c1b80b7acb43290ac50e9f140d690cf042 (patch)
tree34b0f36bde4598781f9b331b5956fae3b4b33866 /common/collections/collections.go
parentb7ca3e1b3a83ef27bef841c319edb5b377cc4102 (diff)
tpl/collections: Add collections.Append
Before this commit you would typically use `.Scratch.Add` to manually create slices in a loop. With variable overwrite in Go 1.11, we can do better. This commit adds the `append` template func. A made-up example: ```bash {{ $p1 := index .Site.RegularPages 0 }}{{ $p2 := index .Site.RegularPages 1 }} {{ $pages := slice }} {{ if true }} {{ $pages = $pages | append $p2 $p1 }} {{ end }} ``` Note that with 2 slices as arguments, the two examples below will give the same result: ```bash {{ $s1 := slice "a" "b" | append (slice "c" "d") }} {{ $s2 := slice "a" "b" | append "c" "d" }} ``` Both of the above will give `[]string{a, b, c, d}`. This commit also improves the type handling in the `slice` template function. Now `slice "a" "b"` will give a `[]string` slice. The old behaviour was to return a `[]interface{}`. Fixes #5190
Diffstat (limited to 'common/collections/collections.go')
-rw-r--r--common/collections/collections.go2
1 files changed, 1 insertions, 1 deletions
diff --git a/common/collections/collections.go b/common/collections/collections.go
index 854f705b3..f2dd3071d 100644
--- a/common/collections/collections.go
+++ b/common/collections/collections.go
@@ -24,5 +24,5 @@ type Grouper interface {
// in collections.Slice template func to get types such as Pages, PageGroups etc.
// instead of the less useful []interface{}.
type Slicer interface {
- Slice(items []interface{}) (interface{}, error)
+ Slice(items interface{}) (interface{}, error)
}