Карта сайта в Hugo: Уникальные особенности и возможности настройки

dc2fcb8d cd1e 436e 9f7c cedc339df34b HTML

Hugo включает в себя встроенный шаблон карты сайта, соответствующий протоколу версии 0.9. Если вам не нужно модифицировать файл sitemap.xml, то никаких дополнительных действий со стороны пользователя не требуется. Однако, если возникает необходимость в переопределении шаблона карты сайта, это можно легко сделать.

Основные параметры карты сайта

Карта сайта (sitemap) в Hugo представлена в виде страницы (Page) и может использовать все переменные, доступные для страницы, а также несколько специфичных для карты сайта переменных:

  • .Sitemap.ChangeFreq — частота обновления страницы.
  • .Sitemap.Priority — приоритет страницы.
  • .Sitemap.Filename — наименование файла карты сайта.

Если вы создадите файл /layouts/sitemap.xml или layouts/_default/sitemap.xml, он заменит встроенный в Hugo шаблон карты сайта.

Настройка для многоязычных сайтов

Для многоязычных сайтов Hugo автоматически создает индексный файл карты сайта. Этот файл можно переопределить, создав файл layouts/sitemapindex.xml или layouts/_default/sitemapindex.xml.

Пример шаблона карты сайта

Вот пример шаблона карты сайта, соответствующий версии протокола 0.9:

{{ printf "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"yes\" ?>" | safeHTML }}
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9" xmlns:xhtml="http://www.w3.org/1999/xhtml">
{{ range .Data.Pages }}
<url>
<loc>{{ .Permalink }}</loc>
{{ if not .Lastmod.IsZero }}
<lastmod>{{ .Lastmod.Format "2006-01-02T15:04:05-07:00" | safeHTML }}</lastmod>
{{ end }}
{{ with .Sitemap.ChangeFreq }}
<changefreq>{{ . }}</changefreq>
{{ end }}
{{ if ge .Sitemap.Priority 0.0 }}
<priority>{{ .Sitemap.Priority }}</priority>
{{ end }}
{{ if .Translated }}
{{ range .Translations }}
<xhtml:link rel="alternate" hreflang="{{ .Lang }}" href="{{ .Permalink }}" />
{{ end }}
{{ end }}
</url>
{{ end }}
</urlset>

Пример шаблона индексного файла для многоязычного сайта

Вот пример шаблона индексного файла для многоязычного сайта:

{{ printf "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"yes\" ?>" | safeHTML }}
<sitemapindex xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
{{ range .Sites }}
<sitemap>
<loc>{{ .SitemapAbsURL }}</loc>
{{ if not .LastChange.IsZero }}
<lastmod>{{ .LastChange.Format "2006-01-02T15:04:05-07:00" | safeHTML }}</lastmod>
{{ end }}
</sitemap>
{{ end }}
</sitemapindex>

Конфигурация карты сайта

Для настройки параметров карты сайта (sitemap.xml), значения переменных указываются в конфигурационном файле Hugo. Примеры для различных форматов конфигурационных файлов:

конфигурация.toml
[sitemap]
changefreq = "monthly"
filename = "sitemap.xml"
priority = 0.5

конфигурация.yaml

sitemap:
changefreq: monthly
filename: sitemap.xml
priority: 0.5

config.json

{
"sitemap": {
"changefreq": "monthly",
"filename": "sitemap.xml",
"priority": 0.5
}
}

Переопределение переменных в шаблонах

Переменные карты сайта также могут быть переопределены в отдельных файлах шаблонов. В этом случае они заменят значения, указанные в конфигурационном файле, во время рендеринга.

Теперь у вас есть полное руководство по настройке и переопределению карты сайта в Hugo. Используйте эти возможности, чтобы оптимизировать вашу карту сайта под конкретные нужды вашего проекта.

Оцените статью