123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116 |
- {{/* Pages Widget */}}
- {{/* https://wowchemy.com/docs/widget/ */}}
- {{/* Initialise */}}
- {{ $ := .root }}
- {{ $st := .page }}
- {{ $items_offset := $st.Params.content.offset | default 0 }}
- {{ $items_count := $st.Params.content.count }}
- {{ if eq $items_count 0 }}
- {{ $items_count = 65535 }}
- {{ else }}
- {{ $items_count = $items_count | default 5 }}
- {{ end }}
- {{ $items_sort := $st.Params.content.order | default "desc" }}
- {{/* Query */}}
- {{ $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 }}
- {{ end }}
- {{ if $st.Params.content.filters.category }}
- {{ $archive_page = site.GetPage (printf "categories/%s" (urlize $st.Params.content.filters.category)) }}
- {{ $query = $query | intersect $archive_page.Pages }}
- {{ end }}
- {{ if $st.Params.content.filters.publication_type }}
- {{ $archive_page = site.GetPage (printf "publication_types/%s" $st.Params.content.filters.publication_type) }}
- {{ $query = $query | intersect $archive_page.Pages }}
- {{ end }}
- {{ if $st.Params.content.filters.author }}
- {{ $archive_page = site.GetPage (printf "authors/%s" (urlize $st.Params.content.filters.author)) }}
- {{ $query = $query | intersect $archive_page.Pages }}
- {{ end }}
- {{ if $st.Params.content.filters.exclude_featured }}
- {{ $query = where $query "Params.featured" "!=" true }}
- {{ end }}
- {{ if $st.Params.content.filters.exclude_past }}
- {{ $query = where $query "Date" ">=" now }}
- {{ end }}
- {{ if $st.Params.content.filters.exclude_future }}
- {{ $query = where $query "Date" "<" now }}
- {{ end }}
- {{ $count := len $query }}
- {{/* Sort */}}
- {{ $sort_by := "Date" }}
- {{ $query = sort $query $sort_by $items_sort }}
- {{/* Offset and Limit */}}
- {{ if gt $items_offset 0 }}
- {{ $query = first $items_count (after $items_offset $query) }}
- {{ else }}
- {{ $query = first $items_count $query }}
- {{ 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, $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 | and $archive_page }}
- {{ $archive_link := "" }}
- {{ if $st.Params.content.archive.link }}
- {{ $archive_link = $st.Params.content.archive.link | relLangURL }}
- {{ else }}
- {{ $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">
- <a href="{{ $archive_link }}">
- {{ $archive_text | emojify }}
- <i class="fas fa-angle-right"></i>
- </a>
- </div>
- {{ end }}
- </div>
|