Jekyll的站点地图插件 - 排除资产页面

时间:2018-01-09 17:22:30

标签: jekyll jekyll-extensions

我正在为Jekyll使用jekyll-sitemap插件。

有没有办法在assets文件夹中排除.html文件? 其中一些包含一些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时附带它(我无法为每个库每次都删除它们)

According to the docs,在前面的问题中使用sitemap: false应该解决它,但它似乎并没有起作用。

因为我在这些供应商文件中没有任何前端问题,所以我使用Jekyll's Front Matter defaults method这样做,但没有成功。

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

我还试过以下path但没有运气:

路径:&#34;资产&#34;

可能是path: 'assets'不会&#39;考虑子文件夹?

3 个答案:

答案 0 :(得分:0)

在_config.yml文件中,添加:

exclude :
 - assets/vanilla-lazyload/demos

答案 1 :(得分:0)

如果您的Jekyll版本为v3.7.2或更高版本,而您的jekyll-sitemap版本为v1.2.0或更高版本,则该方法可以正常工作:

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

**将匹配assets目录或其任何子目录中的任何文件。

Here's the relevant section in the docs.

答案 2 :(得分:0)

无需插件,您也可以轻松创建自己的站点地图:在 jekyll 主文件夹中创建一个名为“sitemap.xml”的文件,如_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>