修改了一下RSS输出

Microlog自带的RSS输出使用的是Atom格式,但是之前却发现Chrome和twitterfeed对我的blog的feed输出都有问题,Chrome是直接把feed打印成了文本,而twitterfeed倒是可以parse我的输出,就是发布到twitter上去的时候不贴链接。在确认自己的twitterfeed设置没有问题之后(感谢maotouc同学的贴图教学),决定好好修一修这个feed的输出。

首先想到了去官方组织validate一下,google一下找到了这里,是W3C官方的Atom feed validater。发现直接输入blog地址不能进行验证,于是查看模板代码,发现有如下问题:

 

 

改好之后就可以进行validation了。

然后又开始找不能贴链接的原因,在feed验证过程中发现一个问题,就是feed中生成的<id>有重复的问题,而且是无效的URI,代码如下:

 

 

这样写的问题在于,如果一篇文章没有指定slug,就会造成id变成:“http://blog.perlfect.me/entry/”。如果有多个文章都没有slug,自然就会出现重复id。

幸好发现文章的链接都是对的,所以直接复制粘贴:

 

 

这样,feed输出终于顺利通过了validation。不过这其中发现feedburner会给blog的feed里插入写乱七八糟的元素,例如:

 

 

不知是何居心…搞得W3C的validator还抱怨一回……

然后上载至appspot。feed重新生成一回,然后因为id变了,所有的文章在google reader里就又涌出来一遍……也不知道twitterfeed的问题解决了没有,这期间我甚至还迷信地把atom模板里的utf-8改成了UTF-8…

不过说回来W3C的这个在线标准验证还挺好用的,收到侧边栏里了。

然后顺便做了一点优化,在<meta> 里加了keyword和description,也算是小小做了一把SEO。顺便看了一眼appengine的quote,发现生成feed很耗……于是enable了memcache,并增加了cache的有效时间,反正我又不是拿blog当twitter写的人……

最后在怨念一下:为啥appengine的应用不支持SVN?满地打滚要求支持中……

本文网址:http://blog.perlfect.me/2010/07/14/atom-feed-fix.html

comments powered by Disqus