Создание файла Sitemap в Jekyll без плагина
Я просто переместил весь блог из WordPress в Jekyll. Есть еще некоторые части, которые нуждаются в фиксации здесь и там, но я столкнулся с этой проблемой в данный момент. Я не могу генерировать файлы Sitemap в Jekyll. Я видел, что есть несколько плагинов, которые могут мне помочь.
Информация на сайте:
- Сайт, размещенный через страницы Github
- Весь сайт в ручном режиме - не используется JB или Octopress
Было бы здорово, если бы я мог получить некоторые указания относительно того, как это сделать.
Примечание. Этот вопрос не совпадает с предшественниками. Я не ищу варианты, которые используют _site
.
Ответы
Ответ 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)