Подтвердить что ты не робот

Создание файла Sitemap в Jekyll без плагина

Я просто переместил весь блог из WordPress в Jekyll. Есть еще некоторые части, которые нуждаются в фиксации здесь и там, но я столкнулся с этой проблемой в данный момент. Я не могу генерировать файлы Sitemap в Jekyll. Я видел, что есть несколько плагинов, которые могут мне помочь.

Информация на сайте:

  • Сайт, размещенный через страницы Github
  • Весь сайт в ручном режиме - не используется JB или Octopress

Было бы здорово, если бы я мог получить некоторые указания относительно того, как это сделать.

Примечание. Этот вопрос не совпадает с предшественниками. Я не ищу варианты, которые используют _site.

4b9b3361

Ответ 1

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

Ответ 2

Как объясняется John Day в этой статье, вы можете создать файл sitemap.xml в сайта с этим контентом:

---
layout: nil
title : "Sitemap"
sitemap_exclude: y
---
<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
    {% for post in site.posts %}
    <url>
        <loc>{{site.production_url}}{{ post.url | remove: 'index.html' }}</loc>
    </url>
    {% endfor %}

    {% for page in site.pages %}
    {% if page.sitemap_exclude != 'y' %}
    <url>
        <loc>{{site.production_url}}{{ page.url | remove: 'index.html' }}</loc>
    </url>
    {% endif %}
    {% endfor %}
</urlset>

В _config.yml определите переменную с именем production_url с полным базовым URL-адресом сайта (например, http://example.com).

Если вы хотите исключить любые ссылки из файла Sitemap, включите sitemap_exclude: y в передний вопрос страницы или сообщения.

Более подробный пример относится к этой статье: Создание лучшего файла Sitemap.xml с Jekyll.

Ответ 3

Вы не можете автоматически генерировать полную карту сайта в jekyll без использования плагинов.

Что вы можете сделать, это сделать свой собственный ruby ​​(или еще) script, который генерирует карту сайта как данные JSON, а затем вставляет ее в ваш config.yml. Оттуда вы можете получить доступ к этим данным из jekyll и отобразить его.

Но нет встроенного способа сделать это только с jekyll.

Ответ 4

Просто натолкнулся на это, потому что мой сайт размещен на github-страницах. Кажется, что github-страницы теперь поддерживают это.

Просто нужно было добавить в _config.yml:

gems:
  - jekyll-sitemap

(Вы можете дополнительно добавить свой Gemfile, но мой уже был включен через зависимость)

(забавный факт: jekyll-redirect-from также поддерживается страницами github)