211108-1405 Hugo create shortcode or template for Day
Goal: convert “2010-01-01” into “Day 1234”.
First tried to create a Hugo shortode, but you can’t use a shortcode inside a template:
Process: loading templates: ".../index.html:84:1": parse failed: template: index.html:84: unexpected "<" in command
Next step - a partial template! To call them one uses {{ partial templatename .}}
, with .
being the “context”. I passed .Key
, that has the groupBy date, and it works.
So, the partial template day.html
does ugly math to get the number of days since the first day of 2019:
{{ $date := (printf . | time) }}
{{ $startUnix := (printf "2019-01-01" | time) }}
{{ $diff := sub $date.Unix $startUnix.Unix }}
{{ $diffInDays := div $diff 86400}}
{{ $diffInDays }}
Then I use it inside templates like this:
<h2 class="title day">
{{ partial "day.html" .Key }}
</h2>
Nel mezzo del deserto posso dire tutto quello che voglio.