Создание 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