211108-1246 Hugo groupBy to group stuff by days
Previously I had the posts split by days (“Day 1234”), now for every former h2-header I have a separate post, but still want to split them by days.
Hugo can group posts by stuff, including by dates. 1
This kinda works with pagination. 2
Now my list.html
template for Diensttagebuch uses this to iterate through days/groups:
{{ $pages_k := where .RegularPagesRecursive ".Parent.Title" "Days" }}
{{ $pages_j := where $pages_k "Params.draft" "ne" true}}
{{ $pages_l := where $pages_j "Params.hidden" "ne" true}}
{{ range (.Paginate ($pages_l.GroupByDate "2006-01-02")).PageGroups }}
With the important bit being here, this iterates by day, not by month as in the examples:
$pages_l.GroupByDate "2006-01-02"
Then the “day” header itself is {{.Key}}
, to get the day of the month + month-year I do this:
<span class="day">{{ dateFormat "02" .Key }}</span>
{{ dateFormat "Jan 2006" .Key }}
Then iterating through the individual posts inside each “day” is:
{{ range .Pages }}
<a href="{{ .RelPermalink }}">{{.Title}}</a>
<span class="description">
{{ .Content }}
</span>
{{ end }}
-
Everything that has to do with grouping and lists described here: Lists of Content in Hugo | Hugo) ↩︎