15

我刚刚把我的整个博客从 WordPress 转移到了 Jekyll。仍然有一些需要修复的部分,但我现在正面临这个问题。我无法在 Jekyll 中生成站点地图。我看到有几个插件可以为我完成工作。

网站信息:

  • 通过 Github 页面托管的网站
  • 整个网站手工编码 - 不使用 JB 或 Octopress

如果你能得到一些关于如何做所需的指示,那就太好了。

注意:这个问题与它的前辈不同。我不是在寻找使用_site.

4

4 回答 4

14

正如本文中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>

在中,定义一个以站点的完整基本 URL_config.yml命名的变量(例如)。production_urlhttp://example.com

如果您想从站点地图中排除任何链接,请sitemap_exclude: y在页面或帖子的前面添加。

有关更高级的示例,请参阅这篇文章:使用 Jekyll 构建更好的 Sitemap.xml

于 2014-07-26T14:03:20.680 回答
12

您可以在站点根目录中创建一个名为“sitemap.xml”的新文件,并在该页面中使用流动标签来遍历所有页面并发布提取必要数据的帖子。假设您只想生成一个页面,该页面以符合适当标准的 xml 格式列出站点上的每个页面,这似乎很容易完成这项工作。

于 2012-11-28T03:23:37.957 回答
3

刚刚遇到这个是因为我的网站托管在 github-pages 上。似乎github页面现在支持这一点。

只需添加到 _config.yml:

gems:
  - jekyll-sitemap

(您可以选择添加到您的 Gemfile 中,但我的已通过依赖项包含在内)

(有趣的事实:github页面也支持jekyll-redirect-from)

于 2014-12-24T18:17:23.393 回答
2

如果不使用插件,您无法在 jekyll 中自动生成完整的站点地图。

您可以做的是制作自己的 ruby​​(或其他)脚本,将站点地图生成为 JSON 数据,然后将其插入到您的 config.yml 中。从那里您可以从 jekyll 访问该数据并显示它。

但是没有内置的方法可以仅使用 jekyll 来做到这一点。

于 2012-11-25T13:44:32.537 回答