2006-05-23
_ category プラグインを利用した タグクラウド 表示プラグイン
tDiary のプラグインつくりが最近は結構楽しくなってきて,いろいろアイデアが出ては実装できるかなぁとか,ちまちまプログラミングをしているわけですが,今日は category プラグインを機能拡張したタグクラウド表示プラグインを作ってみました.タグクラウドとは,
tag cloud。SBMのようなタグを利用するウェブサイトで、多くのタグを集めて表示したもの。またそのような情報の表示方法。クラウドは「雲」や「群れ」の意味。
最初にタグクラウドを利用したウェブサイトはウェブアルバムサービスのFlickrであると言う(Flickrの人気タグページ)。それと同様に人気や利用頻度の高いタグが大きな文字で強調される表示方法がとられる場合が多い。
はてな - タグクラウドとはより引用
というもので,最近は tDiary でも category_to_tag プラグインを利用して,カテゴリわけではなく tag づけっぽくしているサイトもちらほら.もともと tDiary の category プラグインでも category_list 表示などでカテゴリを一覧にすることができたのですが,これをタグクラウド風に表示しようというのが,このプラグインの目的.
Ruby でタグクラウドを生成するには,Ruby で TagCloud (tagcloud-ruby) が使えそう,Perl の HTML::TagCloud の Ruby 版といったところのようです.これと category.rb を利用してタグクラウド表示させてみました.
表示文字数を引数として上限値を設定するようにしてあります.また,期間は 4 半期ごとの集計が表示されるような仕組みになっています.このへんは設定画面から集計期間,上限値などを設定できるようにしたほうがいいかな.
フォント周りや更新時間による色分けなどもう少し変更したいところはいろいろあるけどひとまず公開.
インストール方法は,yatsulog さんのところから tagcloud をコピーして tagcloud.rb として,index.rb と同じ場所に配置してください.
plugin ディレクトリに category_to_tagcloud を配置して,category.rb,category_tag_cloud.rb を有効にしてください.
あとはタグクラウドを表示させたい部分で,
<%= tag_list 10 %>
といった感じで,ヘッダーかフッターに記述してください.引数の 10 は表示するタグの最大数です.未指定の場合はすべてのタグが表示されます.
サンプルはすでに気がついている人もいるかもしれませんが,右サイドバーにでかでかとでています.ちょっと前まで毎日「Diary」というカテゴリでほとんど書いてたから,Diary が一番大きくなってしまっていますが…
追記:タグにスペースが入っていると正常に動作しないバグがありました.最新版では修正されています.[2006/05/24 12:53]
2006-05-21
_ Ajax を使った tDiary のプレビュー表示
同じようなのをちょこちょこ作りはじめてたら,HSBT さんに先を越されてしまった.ページ遷移なしでプレビュー表示できるのはなかなかいい感じ.でも,プラグイン部分も表示された方がいいよなぁと思ってしまう.
実はプラグイン部分も表示できるように tDiary の update.rb をたたいてプレビュー表示ができないかを試していたのですが,どうにもうまくいかずに挫折.というのも,レスポンスが文字列としてしか扱えないので,実際に利用したいプレビュー部分のみを切り出すのが面倒だったから.
xmlhttprequest のレスポンスの取得には,responseText か responseXML が使えるのですが,後者の場合はちゃんとした XML じゃないとパースができない.ちなみにレスポンスの mime-type が text/xml でないと何も取得できないのですが,overrideMimeType('text/xml') としてやることで無理矢理取得することができます.まぁ,できたところでエラーになってしまうのですが…
でも,やっぱりできないのはやっぱり気になるので無理矢理表示できるようにしてみた.で,とりあえずプレビュー時に返される HTML で日記プレビュー部分の <div class="day"> の開始位置と,<div class="footer"> の開始位置を indexOf で割り出して,その値をキーに substring で文字列を切り出して,innerHTML で表示という荒技でなんとかやってみた.
今のところ,テキスト入力やプラグイン関連もリアルタイムに更新されるようになっているので,入力していて書いたあとからさくさくとプレビューできるは結構気持ちいい.一文字ごとにサーバへリクエストをとばすのはちょっとうざいかなと思ったので,少々小細工がしてあります.
プレビューの表示位置とか,もうちょっといじってもよさそうですが,とりあえず公開してみます.
- realtime-preview.rb(タグ生成プラグイン共存版)
- realtime-preview-with-xmlhttprequest.rb(単体動作版)
以前,公開したタグ生成プラグインと共存させる場合は,xmlhttprequest の部分は再利用できるので,共存版を.タグ生成プラグインを使っていない場合は,単体動作版をダウンロードしてください.
plugin ディレクトリに入れて追記画面で本文を入力すると,入力フォームの下にリアルタイムにプレビュー表示されます.一応,amazon プラグインなんかがうまく表示されているのは確認していますが,このプラグインが動かないとかあったらお知らせください.
_ 1 ヶ月点検
新車 1 ヶ月点検でディーラーへ.点検時のオイル無料交換券があったので,ちょうど走行距離も 1000 km 近かったので交換.
点検は 1 時間ほどで終了.特に問題点はなく,空気圧の調整などをして帰宅.
2006-05-19
_ 納豆・とろろ
火曜の夜から出張で関東方面へ.今日の夕方に名古屋へ戻ってきました.
品川からの帰りの新幹線でとなりは外国人のカップル.横に座ってたそのおねーさんの手には,「納豆」とかかれたおにぎりが….外国人でも納豆食べられる人は食べられるんだねーとか思いながら 1 時間後.
おねーさんの彼氏が鞄をごそごそして取り出したのは「やまかけそば」.またしてもねばねば系.日本人でもとろろが苦手な人ってけっこういたりするけど(私の弟も絶対に食べられない),この人はまったくもって大丈夫なようでした.ちなみに箸の使い方も上手でした.でも,そばをすするのはできないようでした.
_ TrackBack [http://www.smallstyle.com/20060524.html#p01 SmallStyle タグク..]
_ TrackBack [http://www.smallstyle.com/20060702.html#p02 SmallStyle cat..]