搞不懂為什麼 Blogger 不提供「近期迴響」這個東西,之前使用「資訊提供」網頁元素(Feed Widget)搭配迴響的消息來源(Feed,偏不想叫它資訊提供勒)是做出了個堪用的東西,但可惜的是它不像 WordPress.com 一樣可以顯示迴響網頁標題。
解決方案找不到,頭痛了一陣子,也試用過 Beautiful Beta 提供的方案,但他有幾個大缺點:顯示的「標題」並不是真正的標題,而是連結名稱解析來的字串:
@Ramani: I noticed that the post title is no exactly the same as the linkname. I checked the json-feed contents, and it offers no posttitle. You can get the post-id from the feed.entry.id object, but I have not come up with a trick to derive the posttitle fom the post-id.
-- Hans簡譯:我也知道連結名稱不真能代表網頁標題,不過 Blogger 的 JSON 裡完全沒有網頁標題;雖然也可以從文章的 JSON 找同 post-id 的標題,但我不幹。(譯註:ㄜ,最後那個「我不幹」是我亂講的 XD)
這點碰上中文更是致命啊...
- 我問作者那些程式我可否自己修?他沒理我 XD (還是我留錯地方了?因為回去已經看不到我的留言...)
本來放棄了,但昨天查詢 JSON 資訊的時候發現水瓶子那邊已經有可以支援中文的版本「JSON 應用(2):最新迴響的標題」,這很棒!馬上拿回來裝裝看,發現一些地方跟我想的不太一樣:
- 沒有考慮 noscript:mmm... 我會希望讓沒有開 Script 的人也能看到基本的東西。
- 版面顯示方式:這沒什麼好壞只是我不習慣,事實上原來的方式感覺還蠻有效率的。
所以經由水瓶子的友善回應,我稍微修改成自己的版本(嗯,其實還改蠻多的,因為我的需求比較簡單),也提供大家參考,修改的地方簡述如下:
- 考慮不開 Script 的朋友:照後面提到的步驟修改的話,即使對方關閉 Script 也可以看到原來的 Feed Widget 版本。
- 程式碼比較簡單:剛說了我的需求比較簡單,所以寫的程式也簡單,或許你改起來會更輕鬆?
還有些小缺點... 不過目前是堪用狀態,總之先放出來給大家看,要修改請自便、發現問題歡迎幫我 debug... XD 安裝方法如下:
- 先到「範本>網頁元素」中插入一個「資訊提供」網頁元素,怎麼設定都行,只要來源的地方填上「http://你的blogspot網址/feeds/comments/full」就行了。建議標題直接命名為「近期迴響」。
儲存後切換到「範本>修改 HTML」處,在內容中找到你剛剛輸入的標題(近期迴響),那一整行長得應該像這樣:
<b:widget id='Feed2' locked='false' title='近期迴響' type='Feed'/>
麻煩先把剛那段程式碼中粗體的「/>」刪掉,隨即貼上以下這段程式:
> <b:includable id='main'> <h2><data:title/></h2> <div class='widget-content'> <div id='divrc'><ul expr:id='data:widget.instanceId + "_feedItemListDisplay"'> <b:loop values='data:feedData.items' var='i'> <li><b:if cond='data:showItemAuthor'> <b:if cond='data:i.author != ""'> <span class='item-author'> <data:i.author/> said: </span> </b:if> </b:if> <span class='item-title'> <a expr:href='data:i.alternate.href'> <data:i.title/> </a> </span> <b:if cond='data:showItemDate'> <b:if cond='data:i.str_published != ""'> <span class='item-date'>  - <data:i.str_published/> </span> </b:if> </b:if> </li> </b:loop> </ul></div> <script type='text/javascript'> g_iShowCount=5; //這個 5 改成你要顯示的數目 g_szBlogDomain="blog.bobchao.net"; //這邊改成你的 blogspot 網址 </script> <script src='http://page.bobchao.net/rc.js' type='text/javascript'/> </div> </b:includable> </b:widget>
記得修改程式中提到的兩個變數。
- 先預覽一下會比較保險,沒問題之後就可以存檔了。
這樣會引入http://page.bobchao.net/rc.js 程式碼,要 debug 請往這邊走 :)
其實原版我有些地方不太了解,像是不知道為什麼要取 id 跟排序,不過我的需求來講應該用不到就是了。GData 還有很多查詢參數,如果其提供的 JSON 都能用的話,或許我以後還會再修改一下(例如,我現在才看到有 entryID 這玩意...)