フィードからタグクラウドを生成するためのGoogle App Engineアプリを作りました。
http://feed-tagcloud.appspot.com/json?url=feed_url
のようにフィードURLを指定してGETすると、
{"Movie":1,"JR":1,"Livedoor":1,"Book":1,"cat":3,"TV":1,"NHK":1,
"subversion":1,"Automobiles":1,"Train":1,"Baseball":2,"MovableType":6,
"sancha":5,"Buzz":1,"Microsoft":3,"Macintosh":3,"Google":6,"Office":3,
"Money":1,"Dragons":2,"API":1,"Hatena":5,"Blogger":7,"FeedBurner":3,
"AppEngine":5}
のように、フィードの各エントリのタグ情報を集計して、JSON形式で出力します。あとは適当なJavaScriptコードを書いてレンダリングするだけです。フィードは一時間キャッシュします。試していませんが、AtomでもRSSでもいけるはずです。あ、タグやカテゴリーが付与されていないフィードを食わせても意味ありません。
ここからが本題。
何のためにこれを作ったかというと、フィードからタグクラウドを生成するGoogleガジェットを実現するためです。
上のリンクをクリックすると、下のように確認画面が表示されます。
「Googleに追加」してやると、iGoogle上にタグクラウドを表示できます。
デフォルトでこのブログのタグクラウドが表示され(てしまい)ますが、設定を変更すれば、フィードURLやソート順、フォントサイズなどが設定できます。
このガジェットは(正直iGoogleに追加してもあんまり意味はなくて)このページの右サイドバーに表示されているように、Bloggerのサイドバーなどで使うと便利なガジェットです。というか、そのために作りました。
Bloggerの「ガジェットを追加」画面で「独自に追加」という項目を選択してください。
「http://feed-tagcloud.appspot.com/」というURLを入力して「追加」すれば使えます。
細かい設定はiGoogleの場合と同様に変更できます。
- タイトル
- タイトルを入力します。
- 高さ
- ガジェットの高さをピクセルで指定します。デフォルトで200ですが、タグの数に応じて適当に変更しましょう。
- Feed URL
- フィードのURLを指定します。blogspotでホスティングしている場合「http://blog-name.blogspot.com/feeds/posts/default」というURLになるはずです。「http://blog-name.blogspot.com/feeds/posts/default&orderby=published&max-results=100&redirect=false」などとオプションを付けてやると最近100件のポストを対象にすることができます。オプションについての詳しい情報はDeveloper's Guide: Protocol - Blogger Data API - Google Codeを参照。
- Tag base URL
- タグの表示ページのベースURLを指定します。blogspotなら「http://blog-name.blogspot.com/search/label/」などと指定します。MTなら「http://blog.example.com/mt/mt-search.cgi?blog_id=X&tag=」などと指定すればOK。
- Order By
- 「Tag name」を指定するとタグ名の昇順、「Count」を指定するとタグの頻度の降順で表示します。
- Algorithm
- フォントサイズの計算方法を指定します。「Linear」を指定すると頻度から線形補完し、「Logarithmic」を指定すると対数補完します。
- Link Color, Background Color
- リンクの色、背景色を指定します。
- Min font size, Max font size
- タグ表示の最小フォントサイズ、最大フォントサイズをptで指定します。
実はほとんど同じ機能を提供するガジェット(Sachin's Tech Place: Dynamic Label Cloud Gadget)が既にあります。Bloggerユーザでは、こちらを利用している方が結構多いかもしれません。ただし、IE8でエラーになって表示できない、最新のgadgets.* APIを使っていない、好きなようにカスタマイズできないなど、いくつか不都合な点があります。
feed-tagcloud-appengineは、IE8でも問題なく表示でき、gadgets.* APIを使っており(そのせいでGadgets Directoryに登録できないのですけど)、タグクラウドのソートができます。また、JSONのインタフェースが切ってあるので、それを利用してカスタマイズしたガジェットを作ったり、ガジェット以外から利用したりすることもできます。
ソースコードは例によってGoogle Codeに上げてあります。










