From 00dfcc647760811f9780b30ff3b9b723593b14fe Mon Sep 17 00:00:00 2001 From: Tatsushi Demachi Date: Sat, 18 Oct 2014 00:10:19 +0900 Subject: [PATCH] Add sort and grouping functions for publish date and param of Page `GroupBy` is modified to allow it to receive a method name argument for example `Type` as its first argument. It is only allowed to call with a method which takes no arguments and returns a result or a pair of a result and an error. The functions discussed at #443 are also added - `ByPublishDate`: Order contents by `PublishDate` front matter variable - `GroupByPublishDate(format, order)`: Group contents by `PublishDate` front matter variable formatted in string like `GroupByDate` - `GroupByParam(key, order)`: Group contents by `Param` front matter variable specified by `key` argument - `GroupByParamDate(key, format, order)`: Group contents by `Param` front matter variable specified by `key` argument and formatted in string like `GroupByDate`. It's effective against `time.Time` type front matter variable --- content/templates/list.md | 53 ++++++++++++++++++++++++++++++++++++++- 1 file changed, 52 insertions(+), 1 deletion(-) diff --git a/content/templates/list.md b/content/templates/list.md index c4c0bc29b..d2b58c49c 100644 --- a/content/templates/list.md +++ b/content/templates/list.md @@ -178,6 +178,15 @@ your list templates: {{ end }} +### Order by PublishDate + + {{ range .Data.Pages.ByPublishDate }} +
  • + {{ .Title }} +
    {{ .PublishDate.Format "Mon, Jan 2, 2006" }}
    +
  • + {{ end }} + ### Order by Length {{ range .Data.Pages.ByLength }} @@ -219,7 +228,7 @@ Can be applied to any of the above. Using Date for an example. ## Grouping Content Hugo provides some grouping functions for list pages. You can use them to -group pages by Section, Date etc. +group pages by Section, Type, Date etc. Here are a variety of different ways you can group the content items in your list templates: @@ -252,6 +261,48 @@ your list templates: {{ end }} +### Grouping by Page publish date + + {{ range .Data.Pages.GroupByPublishDate "2006-01" }} +

    {{ .Key }}

    + + {{ end }} + +### Grouping by Page param + + {{ range .Data.Pages.GroupByParam "param_key" }} +

    {{ .Key }}

    + + {{ end }} + +### Grouping by Page param in date format + + {{ range .Data.Pages.GroupByParamDate "param_key" "2006-01" }} +

    {{ .Key }}

    + + {{ end }} + ### Reversing Key Order The ordering of the groups is performed by keys in alpha-numeric order (A–Z,