diff options
author | Bjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com> | 2018-09-08 13:00:36 +0200 |
---|---|---|
committer | Bjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com> | 2018-09-08 20:20:26 +0200 |
commit | 6667c6d7430acc16b3683fbbacd263f1d00c8672 (patch) | |
tree | a238b6bf5a2e02da09e79eafa4784e7f51441144 /common | |
parent | cfda13b36367465016f4458ab9924c948ed02b6f (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')
-rw-r--r-- | common/collections/collections.go | 21 | ||||
-rw-r--r-- | common/types/types.go | 2 |
2 files changed, 22 insertions, 1 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) +} diff --git a/common/types/types.go b/common/types/types.go index fca58edcb..ca74391f8 100644 --- a/common/types/types.go +++ b/common/types/types.go @@ -1,4 +1,4 @@ -// Copyright 2017-present The Hugo Authors. All rights reserved. +// 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. |