NiceLeeのBlog 用爱发电 bilibili~

Jekyll 站点地图的生成

2018-12-11
niceLee

阅读:


这几天考虑把网站推到搜索引擎,也不考虑推广啥的,但不说别的,至少要搜索域名至少也得出现个链接呗。

预处理

首先,建立sitemap.xml文件,为了让Jekyll能正确处理,先加入以下部分让其正确识别:

---
layout: null
---

sitemap格式

样例模板应该长这样:

<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<url>
    <loc>http://blog.n1ce.top</loc>
    <lastmod>2018-12-12T08:53:18+00:00</lastmod>
    <changefreq>daily</changefreq>
    <priority>1.0</priority>
</url>
</urlset>

其中,

  • loc为超链接
  • lastmod为更新时间,需要符合 ISO 8601 格式,使用liquid时可以直接调用date_to_xmlschema
  • changefreq为更新频率
  • priority为权重

sitemap内容

首页

这个没啥好讲的。

<!--主页-->
<url>
    <loc>http://blog.n1ce.top</loc>
    <lastmod>2018-12-12T08:53:18+00:00</lastmod>
    <changefreq>daily</changefreq>
    <priority>1.0</priority>
</url>

顶部链接

我在顶部链接都加上了header的类型,生成网页的时候也是直接遍历pages得到的,以下类似

<!--顶部链接-->
{% for my_page in site.pages %}
{% if my_page.type == 'header' %}
<url>
    <loc>{{ my_page.url | prepend: site.feed_siteurl }}</loc>
    <lastmod>{{ site.time | date_to_xmlschema }}</lastmod>
    <changefreq>daily</changefreq>
    <priority>1.0</priority>
</url>
{% endif %}
{% endfor %}

博文链接

直接遍历博文即可。

<!--博文链接-->
{% for post in site.posts %}
<url>
    <loc>{{ post.url | prepend: site.feed_siteurl }}</loc>
    <lastmod>{{ post.date | date_to_xmlschema }}</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
</url>
{% endfor %}

其它链接

其它链接即有直接指定url,但不是header类型的页面。(静态资源或普通页面是直接复制到相应目录位置,但想让收录的一般来说都是指定permalink的。当然,你也可以根据需要采取其它方法)

<!--其它链接-->
{% for my_page in site.pages %}
{% if my_page.type != 'header' and my_page.permalink %}
<url>
    <loc>{{ my_page.url | prepend: site.feed_siteurl }}</loc>
    <lastmod>{{ site.time | date_to_xmlschema}}</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.5</priority>
</url>
{% endif %}
{% endfor %}

内容
隐藏