Hugo: карта сайта
шаблон карты сайта (sitemap.xml) для hugo
Hugo поставляется со встроенным шаблоном карты сайта, соответствующим протоколу версии 0.9, если нет необходимости модифицировать sitemap.xml, никакой работы со стороны пользователя не требуется. Тем не менее, при необходимости переопределить шаблон карты сайта можно.
Карта сайта (sitemap), является страницей (Page) и поэтому может использовать все переменные, доступные для страницы, а также переменные, специфичные только для карты сайта:
- .Sitemap.ChangeFreq - частота обновления страницы,
- .Sitemap.Priority - приоритет страницы,
- .Sitemap.Filename - наименование файла карты сайта.
Если создан файл /layouts/sitemap.xml
или layouts/_default/sitemap.xml
, он будет использоваться вместо встроенного в ядро Hugo шаблона карты сайта.
Для многоязычных сайтов создается индексный файл карты сайта, который можно заместить файлом layouts/sitemapindex.xml
или layouts/_default/sitemapindex.xml
.
Вот пример шаблона карты сайта, соответствующий 0.9 версии протокола Sitemap:
{{ printf "" | safeHTML }}
{{ range .Data.Pages }}
{{ .Permalink }} {{ if not .Lastmod.IsZero }}
{{ safeHTML ( .Lastmod.Format "2006-01-02T15:04:05-07:00" ) }} {{ end }}{{ with .Sitemap.ChangeFreq }}
{{ . }} {{ end }}{{ if ge .Sitemap.Priority 0.0 }}
{{ .Sitemap.Priority }} {{ end }}{{ if .IsTranslated }}{{ range .Translations }}
{{ end }}
{{ end }}
{{ end }}
А это пример шаблона индексного файла для многоязычного сайта:
{{ printf "" | safeHTML }}
{{ range . }}
{{ .SitemapAbsURL }}
{{ if not .LastChange.IsZero }}
{{ .LastChange.Format "2006-01-02T15:04:05-07:00" | safeHTML }}
{{ end }}
{{ end }}
Для того, чтобы задать параметры конфигурации карты сайта (sitemap.xml), значения переменных карты сайта устанавливаются в файле конфигурации.
Например, для config.toml
, это будет выглядеть так:
[sitemap]
changefreq = "monthly"
filename = "sitemap.xml"
priority = 0.5
Для config.yaml
:`
sitemap:
changefreq: monthly
filename: sitemap.xml
priority: 0.5
Для config.json
:
{
"sitemap": {
"changefreq": "monthly",
"filename": "sitemap.xml",
"priority": 0.5
}
}
Так же, переменные карты сайта могут быть переопределены в отдельных файлах шаблонах, в этом случае они заменят значения, указанные в конфигурационном файле, во врем рендеринга.
Спасибо за внимание.