Subscribe My Most Popular Post

还是在上周末的时候,看到了Microsoft RSS TeamSLE(Simple List Extensions)扩展。三个单词中,最重要的是List,SLE主要是用来解决Feed订阅阅读模式的某种特定需求而产生的:

  • Treat Feed as List
  • Define customized sorting functions
  • Define customized filting functions

从订阅者的角度来说,订阅了这种Feed,本地的Feed列表将完全和Feed服务器提供的保持同步。这种同步包括几个方面:

  1. Feed Item的次序与服务器上完全相同,如果有更新,则Feed Reader也会更新顺序
  2. Feed Reader不会缓存过期的Feed Item,如果某一个Item从Feed中删除,本地Feed Reader也会将它从本地(或者在线Feed Reader Storage)删除。

简单的说,你通过Feed Reader看到的Feed应该与Feed Publisher发布的完全一致。

这种特定应用的需求会有很多,比如典型的几种应用:

  • Top 10 Best Seller - 比如Top 10 畅销书籍,Top 10 Music等等,对这种Feed的关注通常是更加关注于当前那10个;
  • Wish List - 如果我已经得到了某个东西,就会把它从SLE中拿去,这样,订阅了我的Wish List的人也就不会再看到这个,不会送重复的东西了:);
  • Open Positions - 当前职位列表,过期的职位通常意义不大。

可以看到,这些应用都有一些共同的特点,就是Feed本身更倾向于一种通知(Notification),过期的Item意义不大,而且,通常,这个List本身的次序是很重要的。

Specification很简单,通过以下这个声明来确定某个Feed是否是SLE(支持RSS2.0 & Atom),下面是一个RSS 2.0中的例子:

  1. <rss version="2.0"  xmlns:cf="http://www.microsoft.com/schemas/rss/core/2005">
  2.   <channel>
  3.     <cf:treatAs>list</cf:treatAs>
  4.     <title> Top 10 Popular Post </title>
  5.    
  6.     ..........
  7.     ..........
  8.  
  9.   </channel>
  10. </rss>

Sorting和Grouping(Filtering)的规则举例:

  1. <cf:listinfo>       
  2.     <cf:sort ns="http://www.xerdoc.com/rss/pl/" element="date" label="Publish Date" data-type="date"/>
  3.     <cf:sort ns="http://www.xerdoc.com/rss/pl/" element="rank" label="Popular Rank" data-type="number"/>
  4.     <cf:sort ns="http://www.xerdoc.com/rss/pl/" element="comments" label="Comments" data-type="number"/>
  5.     <cf:sort ns="http://www.xerdoc.com/rss/pl/" element="pingbacks" label="Pingbacks" data-type="number"/>
  6.     <cf:sort ns="http://www.xerdoc.com/rss/pl/" element="trackbacks" label="Trackbacks" data-type="number"/>
  7.     <cf:sort ns="http://www.xerdoc.com/rss/pl/" element="pageviews" label="Page Views" data-type="number"/>
  8.     <cf:group ns="http://www.xerdoc.com/rss/pl/" element="author" label="Author"/>
  9. </cf:listinfo>

当然,SLE不止是一个针对于Feed Publisher的标准,还需要Feed Reader的支持。与一般的Feed不同,Feed Reader在处理SLE的时候会有一些特殊处理,现有的Feed Reader还基本上不支持SLE,除了IE7 Beta2。

为了试验,我做了一个简单的WordPress Most Popular Post的插件。基本的打分是采用Popular Context插件,根据留言数量,Pingback、Trackback数量,浏览数量等因素来确定一篇文章的受欢迎程度,最后,提供一个WordPress的Top 10 Popular Post的SLE,可以用IE7 Beta2订阅来看看效果。

右面可以根据Comments,Pingback,Pageview来排序,也可以Filter来选择某个作者的Post。

订阅:

Most Popular Post @ Xerdoc’s Weblog

Most Popular Post @ Meng Yan’s Weblog

相关阅读:

Simple List Extensions Specification

Simple List Extensions in action

Understanding Lists and SLE

Popularity: 72%

Related entries:

  • No Related Posts

4 Responses to “Subscribe My Most Popular Post”

  1. piscdong Says:

    为什么comment内容不显示啊

  2. piscdong Says:

    cf:sort ns=”http://www.xerdoc.com/rss/pl/” element=”date” …
    “http://www.xerdoc.com/rss/pl/”有什么作用?好像不能访问啊

  3. Meng Yan Says:

    to piscdong:

    It’s XML element’s namespace.

  4. PiscDong studio Says:

    网站更新(2006-05-09)…

    1、改写部分JavaScript代码
    主要是Ajax这部分代码,另外切换样式部分的程序以前是用Ajax调用PHP程序保存cookie,现在改成直接用JavaScript保存。

    2、在RSS里加入SLE(Simple List Extensions)
    接触SLE有一…

Leave a comment

(required)

(required)


Information for comment users
Line and paragraph breaks are implemented automatically. Your e-mail address is never displayed. Please consider what you're posting.

Use the buttons below to customise your comment.


RSS feed for comments on this post | TrackBack URI

 

Creative Commons License
This work is licensed under a Creative Commons License.