トップ «前日 最新 翌日» 編集
RSS feed

ただのにっき


2001-12-26(水) 8958歩 [長年日記]

tDiary 1.3.2

リリースしました。夕べ出そうと思ってたけど、Ruby 1.6.6が出たのでちょっと動作確認などしておりました。問題なかったけど(たぶん)。今年はおそらくこれで最後。

1.3.1からの変更点は以下の通り(スナップショットでの変更点を含む)。

  • プラグインの実装
  • プラグインのサンプル提供(misc/plugin)
  • 最新表示で月をまたぐ
  • ツッコミサマリの表示長を2倍に
  • ツッコミサマリは新しい方を優先して表示
  • ツッコミフォームを、リンク元表示の上に移動
  • セクションを囲む<div class="section">を追加
  • symlinkで複数日記を運用する場合の負担軽減
  • mod_rubyで動かないバグをFIX
  • 更新時に呼ばれるプラグインのテスト実装

 詳しくはChangeLogを参照。プラグインに関する文書をmisc/plugin/README.htmlとして書いたのでどうぞよろしく。

最後の「更新時に呼ばれるプラグイン」についてちょっと解説。

通常のプラグインは実装者が好きな名前をつけられるんだけど、それを日記記述者がどこかで明示しなくてはならない。何かのイベントをきっかけに呼ばれるコールバックのような仕組みはこれではダメなので、名前を固定する必要がある(もちろんあらかじめ名前を登録するという方法もあるけど、複雑すぎる気がする)。そこで、updateという固定名称のプラグイン呼び出しをshow.rhtmlに埋め込んだ。

じゃあプラグイン実装者はこのupdateを上書きしちゃえばいいかというとそれでは困る。競合するとどれかひとつしか呼ばれなくなってしまうので。そこで、updateはそのままで、@@update_procというArraryなクラス変数にProcオブジェクトを追加してもらうことにしてみた。例えば、きたさんのrecent_listを外部ファイルに出力したいなんて場合はこう書く:

@@update_proc << Proc::new do
   open( 'recent_list.html', 'w' ) do |f|
      f.write( recent_list )
   end
end

 このサンプルのままだとHTML的に完結してないとか問題はあるけど、基本的にはこんな感じ。これを応用すると更新情報をrdfで出したり……なんて真似もできるはず。なお、updateは文字列を返しても意味ないので、空文字列を返すように実装されております。

 あと、ツッコミがあった時にはupdateは呼ばれない。ツッコミも引っかけたかったら、@mode'comment'の場合にだけ動作するプラグインを書いて、@header@footerに埋め込めばいいので。じゃあなんて更新時は同じやり方ができないんだ、というと、更新時には@header@footerを使わないからなのであった(笑)。

 でもなー。なんかスマートじゃないんだよ。もっといい方法が思いついたら、この実装はさくっとやめちゃうかも。

tDiaryプラグイン紹介

今日の紹介は2件。

きたさんのカレンダーは、hns風のカレンダー表示をするプラグイン。これの名称がcalendar2なので、1.3.2に添付のドロップダウン型カレンダーはdropdown_calendar.rbというファイル名に変更されました(夕べのスナップショットを持ってった人は気をつけましょう)。標準添付するから完成度上げてください(笑) >きた あと、recent_listも。

それから、妙にランキング好きなzoeさんの最近のツッコミ。あ、これはランキングじゃないか。zoeさんのプラグインもいくつか標準添付したいなぁ。

Kondara

姉御復活だ。嬉しいなぁ。

忘年会

今日はS.P.C.の忘年会で、仕事のあと小田原へ。いままで小田原をベースにしてきたけど、来年の2Qからは新横浜に移動かな。寂しいのぅ。もう一回くらい、小田原で部会をしよう。

本日のツッコミ(全1件) [ツッコミを入れる]
きた (2001-12-26(水) 13:08)

うひー.
完成度向上目指して頑張ります.


トップ «前日 最新 翌日» 編集
RSS feed