I Shar

I Shar

мир глазами веб-разработчика

Hugo: карта сайта

шаблон карты сайта (sitemap.xml) для hugo

I Shar

время чтения 2 мин.

Photo by Cris Ovalle on Unsplash

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

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

  1. .Sitemap.ChangeFreq - частота обновления страницы,
  2. .Sitemap.Priority - приоритет страницы,
  3. .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
   }
}

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


Спасибо за внимание.

    • hugo
    • template

Новые публикации

Далее

Категории

О нас

Frontend & Backend. Статьи, обзоры, заметки, код, уроки.