feat: add folder filter to Pages widget

New front matter key: `content.filters.folders`
This commit is contained in:
George Cushen committed 2021-12-31 13:25:06 +00:00
1 parent 0a09b435e3
commit 611b5215c3
2 files changed
+31 -18

No files matched your search

+1 -1
View File
@@ -53,8 +53,8 @@
{{ if $bg.image }}
{{/* See Hugo note on linking assets in styles: https://github.com/gohugoio/hugoThemes#common-permalink-issues */}}
{{ $bg_img := resources.Get (printf "media/%s" $bg.image) }}
{{ $bg_img = $bg_img.Fit "1920x1920 webp" }}
{{ if $bg_img }}
{{ $bg_img = $bg_img.Fit "1920x1920 webp" }}
{{ $style_bg = printf "%sbackground-image: url('%s');" $style_bg $bg_img.Permalink }}
{{ else }}
{{ errorf "Couldn't find `%s` in the `assets/media/` folder - please add it." $bg.image }}
+30 -17
View File
@@ -1,9 +1,10 @@
{{/* Pages Widget */}}
{{/* https://wowchemy.com/docs/widget/ */}}
{{/* Initialise */}}
{{ $ := .root }}
{{ $st := .page }}
{{ $items_type := $st.Params.content.page_type | default "post" }}
{{ $items_offset := $st.Params.content.offset | default 0 }}
{{ $items_count := $st.Params.content.count }}
{{ if eq $items_count 0 }}
@@ -14,10 +15,21 @@
{{ $items_sort := $st.Params.content.order | default "desc" }}
{{/* Query */}}
{{ $query := where site.RegularPages "Type" $items_type }}
{{ $archive_page := site.GetPage "Section" $items_type }}
{{ $query := site.RegularPages }}
{{ $archive_page := "" }}
{{/* Filters */}}
{{ if $st.Params.content.page_type }}
{{ $query = where $query "Type" $st.Params.content.page_type }}
{{ $archive_page = site.GetPage "Section" $st.Params.content.page_type }}
{{ end }}
{{ if $st.Params.content.filters.folders }}
{{ $folders := $st.Params.content.filters.folders }}
{{ $query = where $query "Section" "in" $folders }}
{{/* Init archive page to main folder */}}
{{ $main_folder := index $folders 0 }}
{{ $archive_page = site.GetPage "Section" $main_folder }}
{{ end }}
{{ if $st.Params.content.filters.tag }}
{{ $archive_page = site.GetPage (printf "tags/%s" (urlize $st.Params.content.filters.tag)) }}
{{ $query = $query | intersect $archive_page.Pages }}
@@ -57,31 +69,19 @@
{{ $query = first $items_count $query }}
{{ end }}
{{/* Localisation */}}
{{ $i18n := "" }}
{{ if eq $items_type "post" }}
{{ $i18n = "more_posts" }}
{{ else if eq $items_type "event" }}
{{ $i18n = "more_talks" }}
{{ else if eq $items_type "publication" }}
{{ $i18n = "more_publications" }}
{{ else }}
{{ $i18n = "more_pages" }}
{{ end }}
{{ $columns := $st.Params.design.columns | default "2" }}
<div class="col-12 {{if eq $columns "2"}}col-lg-8{{end}}">
{{ with $st.Content }}{{ . }}{{ end }}
{{ range $index, $post := $query }}
{{ range $index, $item := $query }}
{{ partial "functions/render_view" (dict "page" $st "item" . "view" ($st.Params.design.view | default "compact") "index" $index) }}
{{end}}
{{/* Archive link */}}
{{ $show_archive_link := $st.Params.content.archive.enable | default (gt $count $items_count) }}
{{ if $show_archive_link }}
{{ if $show_archive_link | and $archive_page }}
{{ $archive_link := "" }}
{{ if $st.Params.content.archive.link }}
@@ -90,6 +90,19 @@
{{ $archive_link = $archive_page.RelPermalink }}
{{ end }}
{{/* Localisation */}}
{{ $items_type := $archive_page.Type }}
{{ $i18n := "" }}
{{ if eq $items_type "post" }}
{{ $i18n = "more_posts" }}
{{ else if eq $items_type "event" }}
{{ $i18n = "more_talks" }}
{{ else if eq $items_type "publication" }}
{{ $i18n = "more_publications" }}
{{ else }}
{{ $i18n = "more_pages" }}
{{ end }}
{{ $archive_text := $st.Params.content.archive.text | default (i18n $i18n) | default "See all" }}
<div class="see-all">