Создание sitemap в Jekyll

Создание карты сайта, используя генератор статических сайтов Jekyll без помощи сторонних плагинов.

Для создания карты сайта существует несколько способов:

  • - используя плагины для Jekyll на языке Ruby;
  • - воспользоваться каким-либо онлайн сервисом;
  • - или автоматизировать процесс создания xml-карты самому. Этим и займёмся.

Создадим в главной папке (корне) сайта файл sitemap.xml следующего содержания:

---
layout: null
sitemap:
  exclude: 'yes'
---

<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
{% for post in site.posts %}{% unless post.published == false or post.sitemap.exclude == 'yes' %}
    <url>
        <loc>{{ site.url }}{{ post.url }}</loc>
        {% if post.last-modified-date %}<lastmod>{{ post.last-modified-date | date_to_xmlschema }}</lastmod>{% endif %}
    </url>
{% endunless %}{% endfor %}

{% for page in site.pages %}{% unless page.sitemap.exclude == "yes" %}
    <url>
        <loc>{{ site.url }}{{ page.url }}</loc>
        <lastmod>{{ page.path | file_date | date_to_xmlschema }}</lastmod>
    </url>
{% endunless %}{% endfor %}

{% for category in site.categories %}
    {% capture category_link %} blog/{{ category[0] }}/index.html {% endcapture %}
    <url>
        <loc>{{ site.url }}/blog/{{ category[0] }}/</loc>
    </url>
{% endfor %}

</urlset>

Строчка со значением exclude == "yes" - означает исключение страницы из XML-карты. Для этого нужно добавить во все страницы, которые хотим исключить, следующий параметр.

---
sitemap:
  exclude: 'yes'
---

В данном примере обязательными тегами для sitemap.xml являются:

<urlset> - является обёрткой для XML-тегов и содержит действующий стандарт протокола
<url> - тег родителя адреса страницы
<loc> - URL страницы

Так же доступны необязательные теги для использования.

<lastmod> - дата последнего редактирования страницы
<changefreq> - значение для поисковиков, насколько часто будет редактироваться страница.
Данное значение является лишь подсказкой для роботов, и не даёт никаких гарантий.
Диапазон значений: от 'всегда' до 'никогда' (always, hourly, ..., yearly, never)
<priority> - приоритет (ценность) страниц относительно друг друга (в диапазоне 0,0 - 1,0)

Более подробно о настройках и XML-формате можно ознакомиться на официальном сайте sitemaps.org.

Изучаем английский
EnglishRussian
SitemapКарта сайта
XML (eXtensible Markup Language)Расширяемый язык разметки
URL (Uniform Resource Locator)Универсальный определитель местонахождения
ExcludeИсключать
IncludeВключать
Change freqИзменить частоту
admin