diff options
author | Tatsushi Demachi <tdemachi@gmail.com> | 2014-10-18 00:10:19 +0900 |
---|---|---|
committer | spf13 <steve.francia@gmail.com> | 2014-11-01 22:41:04 -0400 |
commit | 5e28606b84ef230914d0e63aebe3925364ee3966 (patch) | |
tree | 9c88a8d4b1c62178540645300a73e5c754a54b7c /docs | |
parent | d013edb7f838b739db72530e06eb47721baec7b8 (diff) |
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
Diffstat (limited to 'docs')
-rw-r--r-- | docs/content/templates/list.md | 53 |
1 files changed, 52 insertions, 1 deletions
diff --git a/docs/content/templates/list.md b/docs/content/templates/list.md index c4c0bc29b..d2b58c49c 100644 --- a/docs/content/templates/list.md +++ b/docs/content/templates/list.md @@ -178,6 +178,15 @@ your list templates: </li> {{ end }} +### Order by PublishDate + + {{ range .Data.Pages.ByPublishDate }} + <li> + <a href="{{ .Permalink }}">{{ .Title }}</a> + <div class="meta">{{ .PublishDate.Format "Mon, Jan 2, 2006" }}</div> + </li> + {{ 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: </ul> {{ end }} +### Grouping by Page publish date + + {{ range .Data.Pages.GroupByPublishDate "2006-01" }} + <h3>{{ .Key }}</h3> + <ul> + {{ range .Pages }} + <li> + <a href="{{ .Permalink }}">{{ .Title }}</a> + <div class="meta">{{ .PublishDate.Format "Mon, Jan 2, 2006" }}</div> + </li> + {{ end }} + </ul> + {{ end }} + +### Grouping by Page param + + {{ range .Data.Pages.GroupByParam "param_key" }} + <h3>{{ .Key }}</h3> + <ul> + {{ range .Pages }} + <li> + <a href="{{ .Permalink }}">{{ .Title }}</a> + <div class="meta">{{ .Date.Format "Mon, Jan 2, 2006" }}</div> + </li> + {{ end }} + </ul> + {{ end }} + +### Grouping by Page param in date format + + {{ range .Data.Pages.GroupByParamDate "param_key" "2006-01" }} + <h3>{{ .Key }}</h3> + <ul> + {{ range .Pages }} + <li> + <a href="{{ .Permalink }}">{{ .Title }}</a> + <div class="meta">{{ .Date.Format "Mon, Jan 2, 2006" }}</div> + </li> + {{ end }} + </ul> + {{ end }} + ### Reversing Key Order The ordering of the groups is performed by keys in alpha-numeric order (A–Z, |