hugo

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

git clone git://git.shimmy1996.com/hugo.git
commit cae07ce84b3bd4a33fd18b5109a1a3c3dce2191c
parent 4f9c109dc5431553e5dbf98e0ed37487c12e8d16
Author: Ricardo N Feliciano <FelicianoTech@gmail.com>
Date:   Sat, 22 Sep 2018 14:58:46 -0400

tpl/collections: Allow first function to return an empty slice

Fixes #5235
Diffstat:
Mdocs/content/en/functions/first.md | 2++
Mtpl/collections/collections.go | 4++--
Mtpl/collections/collections_test.go | 1+
3 files changed, 5 insertions(+), 2 deletions(-)
diff --git a/docs/content/en/functions/first.md b/docs/content/en/functions/first.md
@@ -25,3 +25,5 @@ aliases: []
     {{ .Render "summary" }}
 {{ end }}
 ```
+
+*Note: Exclusive to `first`, LIMIT can be '0' to return an empty array.*
diff --git a/tpl/collections/collections.go b/tpl/collections/collections.go
@@ -215,8 +215,8 @@ func (ns *Namespace) First(limit interface{}, seq interface{}) (interface{}, err
 		return nil, err
 	}
 
-	if limitv < 1 {
-		return nil, errors.New("can't return negative/empty count of items from sequence")
+	if limitv < 0 {
+		return nil, errors.New("can't return negative count of items from sequence")
 	}
 
 	seqv := reflect.ValueOf(seq)
diff --git a/tpl/collections/collections_test.go b/tpl/collections/collections_test.go
@@ -256,6 +256,7 @@ func TestFirst(t *testing.T) {
 		{int64(2), []int{100, 200, 300}, []int{100, 200}},
 		{100, []int{100, 200}, []int{100, 200}},
 		{"1", []int{100, 200, 300}, []int{100}},
+		{0, []string{"h", "u", "g", "o"}, []string{}},
 		{int64(-1), []int{100, 200, 300}, false},
 		{"noint", []int{100, 200, 300}, false},
 		{1, nil, false},