RSS feed
「還有人用 RSS 嗎?」
「沒了吧」
好啦,雖然看起來沒人用,但我還是想寫一下 RSS feed。一來了解技術、二來這是部落格的重要功能、第三就是看了點文章後,有點想「力挽狂瀾」的熱血。至於什麼文章,可以移到後面的 Ref 來看。
最基礎來說,RSS feed 檔案是 XML 檔案。然後用 Conditional GET 推送請求。
總之,要做的話,就要做出這段 XML。看起來,用 Atom 格式比較新。接著,因為 RSS 就是個 XML,所以出乎意料的簡單,連 gem 也不需要。
那如果要維基百科那樣的格式,要怎麼做呢?
首先,你需要有一個專門放 RSS feed 的 controller:
# In app/controllers/foobar_controller.rb
def index
respond_to do |format|
format.atom
end
end
接著建立一個 Builder 檔案以產生 XML:
# In app/views/foobar/index.atom.builder
atom_feed({'xml:lang' => 'zh-TW'}) do |feed|
feed.title("Example Feed")
feed.subtitle("A subtitle.")
feed.author do |a|
a.name("John Doe")
a.email("johndoe@example.com")
end
end
我們還要給個 entry……
# In app/views/foobar/index.atom.builder
atom_feed({'xml:lang' => 'zh-TW'}) do |feed|
feed.entry(article) do |entry|
entry.title(article.title)
entry.link("http://example.org/2003/12/13/atom03")
entry.summary("Some text.")
end
end
總之,針對 <property>value</property>
的東西,你要在 builder 這樣寫成 feed.property("value")
這樣。把必要的東西寫好,接著用 URL 地址貼上訂閱器。收工。