site-avatar

Cynosura

Trying to light up the dark.

Hello Pelican

尝试利用 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,部分网络环境可能无法正常加载。