JSON feed for MovableType
作ったプラグインは、mt-jsonfeed.plです。RSSフィードと同じようにファイルに書き出すために簡単なテンプレートを作らなければならないのが、ちょっとめんどくさいのですが。。。
インストール方法は下記。
- まず上記のプラグインをダウンロードして$MT_HOME/plugins/以下に配置します。
- 次に必要なモジュールをCPANからインストールしておきましょう。必要なものはJSONとJcodeです。
- 次に適当な名前を付けてテンプレートを1つ追加します。テンプレートの内容は下記のような感じ。charset_fromとcharset_toは元のコードと出力コード(デフォルトは両方utf-8)、obj_nameは出力するjsに使うオブジェクト名、numは出力するエントリの数です。
- 最後に上記で作成したテンプレートを作成すると、JSON形式のフィードが出力されます。
<$MTJSONFeed charset_from="euc" charset_to="utf8" obj_name="JSONFeed" num="10"$>
<div id="container"><h2>my json feeds</h2></div>
<script type="text/javascript" src="http://example.com/jsonfeed.js" charset="UTF-8"></script>
<script type="text/javascript">
var ul = document.createElement('ul')
for (var i=0, post; post = JSONFeed.posts[i]; i++) {
var li = document.createElement('li')
var a = document.createElement('a')
a.setAttribute('href', post.permalink)
a.appendChild(document.createTextNode(post.title))
li.appendChild(a)
ul.appendChild(li)
}
document.getElementById('container').appendChild(ul)
</script>
ちなみに自分の環境だと<script>タグにcharsetを指定してやらないと日本語が入ってる場合にはブラウザで文字コードが解析できず、JavaScriptエンジンでコケました。でもSafariだとcharsetを指定してやってもだめっぽいです。charsetを指定する以外にもJSONのjsを出力するときのヘッダのContent-Typeにcharset=を付けてもイケます。
表示例は続きにありますです。