Implement collapsing consecutive posts in a series

Signed-off-by: Danila Fedorin <danila.fedorin@gmail.com>
This commit is contained in:
2024-11-25 19:15:07 -08:00
parent dde3fb61ae
commit 8b8d3c7fd0
5 changed files with 43 additions and 2 deletions

View File

@@ -2,9 +2,10 @@
{{ .Content }}
{{ i18n "recentPosts" }}:
{{ partial "uniquebyseries.html" (dict "scratch" .Scratch) }}
<ul class="post-list">
{{ range first 10 (where (where .Site.Pages.ByDate.Reverse "Section" "blog") ".Kind" "!=" "section") }}
{{ partial "post.html" (dict "page" .) }}
{{ range first 10 (.Scratch.Get "pages") }}
{{ partial "post.html" (dict "page" . "linkSeries" true) }}
{{ end }}
</ul>

View File

@@ -15,4 +15,13 @@
</p>
{{ end }}
<p class="post-preview">{{ .page.Summary }} {{ if .page.Truncated }}...{{ end }}</p>
{{- if .linkSeries -}}
{{- $term := index (.page.GetTerms "series") 0 -}}
{{- with $term -}}
<p class="series-link">
{{- partial "icon.html" "corner-down-right" -}}
{{- i18n "latestInSeries" }} <a href="{{ $term.Permalink }}">{{ $term.Title }}</a>
</p>
{{- end -}}
{{- end }}
</li>

View File

@@ -0,0 +1,14 @@
{{- $scratch := .scratch -}}
{{- $scratch.Set "pages" slice -}}
{{- $tmpScratch := newScratch -}}
{{- range $post := (where (where site.Pages.ByDate.Reverse "Section" "blog") ".Kind" "!=" "section") -}}
{{- $term := index ($post.GetTerms "series") 0 -}}
{{- if $term -}}
{{- if not ($tmpScratch.Get $term.Permalink) -}}
{{- $tmpScratch.Set $term.Permalink true -}}
{{- $scratch.Add "pages" $post -}}
{{- end -}}
{{- else -}}
{{- $scratch.Add "pages" $post -}}
{{- end -}}
{{- end -}}