Плагин карты сайта Jekyll - исключить страницы ресурсов

Я использую плагин jekyll-sitemap для Jekyll.

Есть ли способ исключить файлы.html внутри assets папка? Некоторые из них содержат некоторые примеры HTML, и в конечном итоге в моем файле sitemaps.xml есть такие вещи, которые не имеют смысла:

<url>
<loc>https://example.com/blog/assets/vanilla-lazyload/demos/with_picture.html</loc>
<lastmod>2017-11-18T15:05:22+01:00</lastmod>
</url>

куда with_picture.html демонстрационный файл библиотеки Javascript, который поставляется вместе с ним при использовании npm install (и я не могу потрудиться удалить их каждый раз для каждой библиотеки)

Согласно документам, используя sitemap: false на нашем фронте вопрос должен решить это, но это, кажется, не работает вообще.

Поскольку у меня нет каких-либо предварительных материалов в этих файлах вендора, я использую для этого метод по умолчанию Front Matter в Jekyll, но безуспешно.

# in my _config.yml
defaults:
  - scope:
      path: 'assets/'
    values:
      sitemap: false

Я также попробовал следующее path без удачи

путь: "активы"

Может быть так path: 'assets' не принять во внимание подпапки?

3 ответа

Если ваша версия Jekyll v3.7.2 или выше и ваш jekyll-sitemap версия v1.2.0 или выше, это должно работать:

defaults:
  -
    scope:
      path: 'assets/**'
    values:
      sitemap: false

В ** будет соответствовать любому файлу в assets каталог или в любом из его подкаталогов.

Вот соответствующий раздел в документации.

Вы можете легко создать свою собственную карту сайта без плагина: создайте файл с именем sitemap.xml в своей основной папке jekyll, как показано рядом с _post, _pages и _includes.

Все, что файл должен содержать, это следующее:

      ---
layout: null
---
<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.sitemaps.org/schemas/sitemap/0.9 http://www.sitemaps.org/schemas/sitemap/0.9/sitemap.xsd" xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
  {% for post in site.posts %}
    <url>
      <loc>{{ site.url }}{{ post.url }}</loc>
      {% if post.lastmod == null %}
        <lastmod>{{ post.date | date_to_xmlschema }}</lastmod>
      {% else %}
        <lastmod>{{ post.lastmod | date_to_xmlschema }}</lastmod>
      {% endif %}
      <changefreq>monthly</changefreq>
      <priority>1.0</priority>
    </url>
  {% endfor %}
  {% for page in site.pages %}
    {% if page.sitemap != null and page.sitemap != empty %}
      <url>
        <loc>{{ site.url }}{{ page.url }}</loc>
        <lastmod>{{ page.sitemap.lastmod | date_to_xmlschema }}</lastmod>
        <changefreq>{{ page.sitemap.changefreq }}</changefreq>
        <priority>{{ page.sitemap.priority }}</priority>
       </url>
    {% endif %}
  {% endfor %}
</urlset>

В вашем файле _config.yml добавьте:

exclude :
 - assets/vanilla-lazyload/demos
Другие вопросы по тегам