site-avatar

Cynosura

Trying to light up the dark.

Hello Pelican

尝试利用 Pelican 替代原本使用的 Hexo

尝试利用 Pelican 替代原本使用的 Hexo,并废除了独立 Blog 入口。

Pelican 上手还是挺简单的,基本上参照 官方文档 即可快速生成可用的文章页。

相较于 Hexo,Pelican 基于 Python,终于不用被 Node.js 那堆依赖折腾得死去活来了,整体操作逻辑也更加清晰。但由于 Pelican 的用户较少,网络上可用的主题屈指可数,无意中拉高了使用门槛。建议对 Pelican 有兴趣的可以像我一样动手折腾自定义主题;基于官方的 simple 主题修改不难,只要对着文档修改,加上自己的一点样式即可。

用半天时间移植了原本用于 Hexo 的自定义主题,目前只修改好了 base、article 和 index 页就仓促上线了,难免存在疏漏。如果遇到样式问题请在下面留言告诉我,非常感谢~

增加 RSS 支持

斟酌再三,还是决定为文章页增加 RSS (实际是 Atom) 支持,仅需在配置文件里指定生成路径即可。

FEED_ALL_ATOM = 'feeds/all.atom.xml'
FEED_DOMAIN = SITEURL
FEED_MAX_ITEMS = 15
RSS_FEED_SUMMARY_ONLY = False
CATEGORY_FEED_ATOM = None
TRANSLATION_FEED_ATOM = None
AUTHOR_FEED_ATOM = None
AUTHOR_FEED_RSS = None

FEED_ALL_ATOM 指定 RSS 的生成位置。Pelican 提倡尽量使用绝对地址,这种理念在 官方文档 的相关设置中就有所体现。

若该值未设置成绝对地址,则在每次生成中会跳出警告:Feeds generated without SITEURL set properly may not be valid。要使用相对地址并去除警告,则必须设置 FEED_DOMAIN。

FEED_DOMAIN 指定 RSS 生成域名,可直接使用 SITEURL 变量,更加灵活。

FEED_MAX_ITEMS 设置 RSS 生成的最大文章量。这里推荐设置一个合适的限制值,以防文章较多时,RSS 为读者推送动辄上百篇的文章,影响阅读体验。我认为设置在 10~20 篇左右为宜。

RSS_FEED_SUMMARY_ONLY 指定 RSS 包括全文,还是仅生成摘要信息。个人建议 RSS 包含全文而非摘要,仅生成摘要虽然能引导读者跳转到网站阅读,但这种操作十分影响阅读体验。试想当你在阅读器看到感兴趣的文章,却要跳转到网页才能继续观看,你会选择跳转还是直接关闭呢,相信你心里自有答案。

设置并重新执行文章生成后,RSS 就会在指定位置生成好了,添加到网页任意位置即可。

生成站点地图 (Sitemap)

生成站点地图 (Sitemap) 可以告诉搜索引擎应该抓取哪些页面,及文章优先级排序,从而帮助搜索引擎准确收录文章。Pelican 支持通过 pip 来安装及管理插件,安装 Sitemap 插件 并写入配置文件,即可一键生成站点地图。

首先通过 pip 来安装插件: python -m pip install pelican-sitemap

安装完成后,将如下信息放入配置文件,并重新生成站点。

SITEMAP = {
"format": "xml",
"priorities": {
"articles": 0.8,
"indexes": 1.0,
"pages": 0.8
},
"changefreqs": {
"articles": "monthly",
"indexes": "daily",
"pages": "monthly"
}
}

其中 priorities 指定了页面的优先级,changefreqs 则告知搜索引擎页面的更新频率。一般首页拉取频率设置高一点,文章不是周更的就保持默认月更选项,无需变动。

生成站点地图并部署在服务器以后,在 Google Search Console 填入站点地图的 URL 地址并上传,之后 Google 将会定期抓取站点地图并生成索引收录。

本文信息

作者 赤茶
发布时间
文章分类 技术

版权许可

本文所有内容(包括图片)均采用 CC BY-SA 4.0 协议授权。

你可以在保留署名与相同方式共享的前提下转载、引用或再创作。

转载时请注明出处,并附上本文永久链接与本声明内容。

评论

注:留言系统基于 Disqus,部分网络环境可能无法正常加载。