feat(sitemap.xml): add sitemap.xml layout file to generate a sitemap for the website

The sitemap.xml layout file is added to the project. This layout file generates a sitemap for the website using the data from the pages. The sitemap includes URLs for all pages except those in the "gallery" section. Each URL includes the location, last modified date (if available), change frequency (if available), and priority (if available). If a page is translated, alternate links are included for each translation.
This commit is contained in:
Sped0n
2023-11-03 10:11:28 +08:00
parent 88da65ef67
commit 325acbd194

47
layouts/sitemap.xml Normal file
View File

@@ -0,0 +1,47 @@
<urlset
xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"
xmlns:xhtml="http://www.w3.org/1999/xhtml"
>
{{- range (where .Data.Pages "Section" "!=" "gallery") -}}
<url>
<loc>
{{- .Permalink -}}
</loc>
{{- if not .Lastmod.IsZero -}}
<lastmod>
{{- .Lastmod.Format "2006-01-02T15:04:05-07:00" -}}
</lastmod>
{{- end -}}
{{- with .Sitemap.ChangeFreq -}}
<changefreq>
{{- . -}}
</changefreq>
{{- end -}}
{{- if ge .Sitemap.Priority 0.0 -}}
{{- $weeks := div (sub now.Unix .Lastmod.Unix) 604800 -}}
{{- $priority := sub 1 (div $weeks 10.0 ) -}}
{{- if ge .Sitemap.Priority $priority -}}
<priority>{{ .Sitemap.Priority }}</priority>
{{- else -}}
<priority>{{ $priority }}</priority>
{{- end -}}
{{- end -}}
{{- if .IsTranslated -}}
{{- range .Translations -}}
<xhtml:link
rel="alternate"
hreflang="{{ .Lang }}"
href="{{ .Permalink }}"
/>
{{- end -}}
<xhtml:link
rel="alternate"
hreflang="{{ .Lang }}"
href="{{ .Permalink }}"
/>
{{- end -}}
</url>
{{- end -}}
</urlset>