summaryrefslogtreecommitdiffstats
path: root/common/collections
diff options
context:
space:
mode:
authorBjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>2018-09-08 13:00:36 +0200
committerBjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>2018-09-08 20:20:26 +0200
commit6667c6d7430acc16b3683fbbacd263f1d00c8672 (patch)
treea238b6bf5a2e02da09e79eafa4784e7f51441144 /common/collections
parentcfda13b36367465016f4458ab9924c948ed02b6f (diff)
tpl/collections: Add group template func
This extends the page grouping in Hugo with a template function that allows for ad-hoc grouping. A made-up example: ``` {{ $cool := where .Site.RegularPages "Params.cool" true | group "cool" }} {{ $blue := where .Site.RegularPages "Params.blue" true | group "blue" }} {{ $paginator := .Paginate (slice $cool $blue) }} ``` Closes #4865
Diffstat (limited to 'common/collections')
-rw-r--r--common/collections/collections.go21
1 files changed, 21 insertions, 0 deletions
diff --git a/common/collections/collections.go b/common/collections/collections.go
new file mode 100644
index 000000000..bb47c8acc
--- /dev/null
+++ b/common/collections/collections.go
@@ -0,0 +1,21 @@
+// Copyright 2018 The Hugo Authors. All rights reserved.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+// Package collections contains common Hugo functionality related to collection
+// handling.
+package collections
+
+// Grouper defines a very generic way to group items by a given key.
+type Grouper interface {
+ Group(key interface{}, items interface{}) (interface{}, error)
+}