Files
hugo-recipes/layouts/_default/list.html

123 lines
5.2 KiB
HTML

{{ define "main" }}
{{ $oldYear := "" }}
{{ $sortedPages := sort .Data.Pages "Params.release" "desc" }}
{{ $paginator := .Paginate $sortedPages }}
{{- /* $sortedPages := .Data.Pages.ByParam "release" */ -}}
{{- /* $paginator := .Paginate $sortedPages */ -}}
{{- /* $customPages := slice */ -}}
{{- /* range .Data.Pages */ -}}
{{- /* $orderDate := .Params.release | default .Date */ -}}
{{- /* print $orderDate */ -}}
{{- /* $customPages = $customPages | append (dict "Page" . "orderDate" $orderDate) */ -}}
{{- /* end */ -}}
{{- /* $sortedPages := sort $customPages "Params.orderDate" "desc" */ -}}
{{- /* $paginator := .Paginate $sortedPages */ -}}
<main class="posts">
<h1>{{ .Title }}</h1>
{{ if .Params.subtitle }}
<strong>{{ .Params.subtitle | markdownify }}</strong>
{{ end }}
{{ if .Content }}
<div class="content">{{ .Content }}</div>
{{ end }}
{{ range $paginator.Pages }}
{{/* Show the Release attribute if later than Date. */}}
{{ $date := .Date }}
{{ if and (.Params.release) (ge (time.AsTime .Params.release) (time.AsTime .Date)) }}
{{ $date = .Params.release }}
{{ end }}
{{ $date = time.AsTime $date }}
{{/* Custom year grouping in order to keep paginator order. */}}
{{ $year := $date.Year }}
{{ if not (eq $oldYear $year) }}
{{ if not (eq $oldYear "") }}
</div>
{{ end }}
<div class="posts-group">
<div class="post-year">{{ time.Format "2006" $date }}</div>
{{ end }}
{{ $oldYear = $year }}
<ul class="posts-list">
{{/* If marked Hidden or Release date is in the future, skip. */}}
{{ if .Params.hidden }}
{{ continue }}
{{ end }}
{{ if and (.Params.release) (ge (time.AsTime .Params.release) (time now)) }}
{{ continue }}
{{ end }}
<li class="post-item">
<a href="{{.Permalink}}" class="post-item-inner">
<span class="post-title">
{{ if .Params.draft }}
{{ print "(DRAFT) "}}
{{ end }}
{{ if .Params.pinned }}
<img style="display: inline-block; vertical-align: middle; margin-right: 4px;"
src="/feathericons/16px-a9a9b3/paperclip.svg" alt="Pinned:"
>
{{ end }}
{{ if .Params.video }}
Video:
{{ else if .Params.audio }}
Audio:
{{ else if .Params.tags }}
{{ $prefix := (index .Params.tags 0 | title) }}
{{ if eq $prefix "Ebook" }}
eBook:
{{ else }}
{{ $prefix }}:
{{ end }}
{{ end }}
{{ .Title }}{{ if and (.Params.subtitle) (and (.Params.author) (.Params.date)) }}
{{ "--" | markdownify }} {{ .Params.subtitle}}
{{ end }}
{{ if .Params.feathericon }}
<img style="display: inline-block; vertical-align: middle; margin-right: 4px;"
src="/feathericons/16px-a9a9b3/{{ print .Params.feathericon }}.svg" alt=""
>
{{ else if .Params.video }}
<img style="display: inline-block; vertical-align: middle; margin-right: 4px;"
src="/feathericons/16px-a9a9b3/film.svg" alt="(VIDEO)"
>
{{ else if .Params.audio }}
<img style="display: inline-block; vertical-align: middle; margin-right: 4px;"
src="/feathericons/16px-a9a9b3/music.svg" alt="(AUDIO)"
>
{{ end }}
</span>
<span class="post-day">
{{ if .Site.Params.dateformShort }}
{{ time.Format .Site.Params.dateformShort $date }}
{{ else }}
{{ time.Format "Jan 2" $date }}
{{ end }}
</span>
</a>
</li>
{{ end }}
</ul>
</div>
{{ partial "pagination-list.html" . }}
</main>
{{ end }}