这几天考虑把网站推到搜索引擎,也不考虑推广啥的,但不说别的,至少要搜索域名至少也得出现个链接呗。
预处理
首先,建立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 %}