Bitcron 下关于 feed 的两个问题

我估计有这两个问题的人应该不是很多,纯当记录吧。

Feedly 抓不到 feed

昨天我开心地打开 Feedly,发现新写的博文没有被抓取,于是立刻打开订阅地址,结果404。聪明如我赶紧看了一下博客根目录下的 template 文件夹(因为我的主题是自己写的,所以控制主题的文件都在 template 文件夹里),果然没有 feed.jade。为了弄清楚是我这边的问题还是 Bitcron 的问题,我打开了官方博客的订阅地址发现也是404,于是确定了是 Bitcron 抽风。看到这里可能有人会疑问,为什么 template 文件夹里没有 feed.jade。其实一开始的时候我放了的,但是后来下载官方几个主题研究的时候发现都没有 feed.jade 但是 /feed 页面都好好的,于是我猜应该是统一有个后备力量在支持着(←什么鬼解释)。为了保持简洁,我也把 feed.jade 删掉了,可有可无的话就断舍离呗。

在我确认了是这个“后备力量”出了问题以后,我决定祭出 feed.jade,让它重出江湖。然后还顺手把文章作者的显示问题给解决了,真的好佩服我自己。

让 feed 掌控在自己手里

新建一个文件,命名为 feed.jade,里面写下以下内容(多亏自己保留了以前的 feed 文件):

doctype xml
+set_content_type('application/xml')
feed(xmlns="http://www.w3.org/2005/Atom")
    title= site.title
    link(href="http://{{ request.host }}/")
    link(ref="self", href="http://{{ request.host }}/feed")
    id= site._id
    if posts
        updated= posts[0]['date'].strftime('%Y-%m-%dT%H:%M:%SZ')
    for post in posts
        entry
            post_url = 'http://' + request.host + post.url.escaped
            title= post.title.escaped
            link(href=post_url, rel="alternate")
            updated= post.date.strftime('%Y-%m-%dT%H:%M:%SZ')
            id= post.url_path.escaped
            author
                name= site.configs.admin_name
            summary(type="html")= post.content.escaped

显示作者名字

其中 author 下面的 name 控制的就是作者的名字。site.configs.admin_name 是后台(Dashboard)里 Advanced 里的 Admin Name。所以只要在后台里填写你想要显示的作者名称,就能反馈到 feed 里,然后被 Feedly 读取。

Feedly 截图
Feedly 中红色下划线部分是作者名字

我以前不知道,因为 feed 是“后备力量”在管理的嘛,所以当时发现作者名字也写着“水八口记”的时候就发邮件给客服了,也解决了。结果因为这次的事我发现几周前开始作者名字又不对了,还好现在可以自己控制 feed,所以改好了。从来没发现 feed.jade 这么有用!

Feedly 不显示 Favicon

既然加了 feed 文件,想着干脆研究一下前段时间就开始疑惑的问题:Feedly 里不显示 Favicon。不知道 Favicon 的朋友可以参考我以前写的这篇文章。在 Chrome 里开博客的时候是有的,但是 Feedly 里却不能抓取。在谷歌以后并没有找到特别准确的回答,但抱着试试看的心态把 favicon.ico 放回网站内以后,这个问题就奇迹般地解决了!

Feedly 截图
顺便曝光了我的订阅

由于最近整改博客的时候,我决定自建图床 cdn.shuiba.co。所以包括网站内需要的 logo、关于页面的支付宝二维码、当然还有其他博文内容涉及到的图片都放在图床里。由于图床和博客分而治之,所以我想会不会是这个问题,导致 Feedly 无法抓取从其他网站链接过来的 favicon.ico 文件。把文件重新放回来以后,链接也从 //cdn.shuiba.co/site/favicon.ico 变为 ../template/favicon.ico,没想到今天一看显示出来了,那可能就是因为得在同一个网站底下吧。或者还有一个可能是,因为我的图床开了防盗链功能,所以 Feedly 里的博文都读不出图片,同理也读不出 Favicon。但如果放在同一个网站内,可能在 Feedly 里显示的时候就不算来源于其他网站,所以不会触发防盗链功能吧。

上述的作者名称和 Favicon 的修改不会立刻反映在 Feedly 里,所以如果改了以后没看到效果也别着急,等第二天再刷刷看,一般来说都能成功。

哇好久没写这种伪极客笔记了,真有成就感!