{{ .Title }}
{{ .Content }}Featured
{{- $featured := where .Pages "Params.featured" true }}
{{- with $featured }}
{{- range . }}
{{- $img := resources.Get (.Params.image | default "/images/thumbnail.webp") }}
{{- $img = $img.Process "resize 600x" }}
{{- end }}
{{- end }}
{{ .Title }}
{{ .Summary }}
{{ template "guide-metadata" . }}
{{- $taxonomies := slice "products" "subjects" "levels" "languages" }}
Array.isArray(arr) && arr.length === 0);
},
showItem(taxonomies) {
if (this.noFilters()) return true;
let match = false;
for (const taxonomy in this.filters) {
const selectedTerms = this.filters[taxonomy];
if (selectedTerms.length > 0) {
const itemTerms = taxonomies[taxonomy] || [];
// Check if all selected terms are included in the item's terms
const hasAnyTerms = selectedTerms.some(term => itemTerms.includes(term));
if (hasAnyTerms) {
match = true;
break;
}
}
}
return match;
},
init() {
const url = new URL(window.location.href);
for (const [key, value] of url.searchParams.entries()) {
if (value) {
this.filters[key] = value.split('~');
}
}
}
}"
x-cloak
@guide-filter.window="filters = $event.detail.filters; document.getElementById('all-guides').scrollIntoView({ behavior: 'smooth' })">
{{- end }}
{{ end }}
{{- define "guide-metadata" }}
All guides
{{- range .Pages }} {{- $opts := dict "page" . "taxonomies" $taxonomies }} {{- $filters := partial "utils/filter-terms.html" $opts }}{{ .Title }}
{{ template "guide-metadata" . }}
{{- $taxoterms := .GetTerms "languages" }}
{{- $taxoterms = $taxoterms | append (.GetTerms "levels") }}
{{- $taxoterms = $taxoterms | append (.GetTerms "subjects") }}
{{- range $taxoterms }}
{{- .Page.LinkTitle }}
{{- end }}
{{- with .Params.time }}
{{ partialCached "icon" "schedule" "schedule" }}
{{ . }}
{{- end }}