ただのにっき
2002-01-25(金) 8534歩 [長年日記]
■ tDiary
あら探しは大切なことなので、推奨します。とくにおれみたいな「ノリ・プログラマ」がコードを書いてる場合は(笑)。モバイルモードでぜんぜんテストしてなかったよ(をい)。ツッコミが全部見えないのも修正。これは古いバグだなぁ。誰も気づかなかったのか。
■ ということで、上記の修正を行った現在のスナップショットは1.3.3.20020124。1.3.3からはいくつか非互換アリ。プラグインまわりはこの辺で打ち止めにしたいところ。
まず、update、headerの「コールバック系プラグイン」の登録方法をクラス変数への追加からメソッド呼び出しに変更。考えてみたらクラス変数使う必然なんてぜんぜんなかった。バカみたい。というわけで、@@update_proc
・@@header_proc
へのProcの追加は、そのままadd_update_proc
・add_header_proc
への呼び出しに置き換えて下さい。引数にProcインスタンスを。
■ あと、ツッコミ時にもupdateが呼ばれるようになったので、場合分けをしたいときには@mode
を見ること。この変更はツッコミメールをプラグイン化するために行ったんだけど、プラグイン内でできることってセキュアモードだと極端に少ないので、メールを送るなんて論外なことにあとで気づく。ダメじゃん。ということでメール送信のプラグイン化は断念。
その代わり、別の方法で差し替えられるようにしてみた。TDiaryComment#sendmail
メソッドを外部ファイルで上書きしちまう、という乱暴な方法だが。これもスマートな方法が見つかったら変えるかも。つーかデザインパターンくらい使えよ、おれ。詳しくはmisc/mail-via-(smtp|qmail|sendmail).rbを参照。tdiary.confにこれらのうちどれかをrequire
しないとツッコミメールが送られない非互換あり。互換性確保のために、smtpだけあらかじめrequire
するように戻すかも。
ちなみにうちの環境ではqmailやsendmailはうまく動かんかった。同じコードがMTA経由で動くMobilerではOKなので、httpdのuidじゃダメなのかも知れない。誰かテストしてくらはい。
■ 他には、ツッコミメールのSubjectに投稿者の名前を入れるようにしたとか、段落アンカーのname属性を、日毎表示時以外はなくしたとか(これでHTML-Lintの成績がグンとアップ![笑])。
■ tDiaryプラグインTips: Alternate Stylesheet
昨日この話を読んで、プラグイン化できるよな、と思っていた。今日になってこういうことも書かれているようなので、ちょっと書いてみる。alternate-stylesheet.rb、もちろん最新スナップショット専用:
def css_tag r = %Q[<meta http-equiv="content-style-type" content="text/css">\n] if @theme and @theme.length > 0 then css = "#{theme_url}/#{@theme}.css" else css = @css end r << %Q[ <link rel="stylesheet" href="#{css}" type="text/css" media="all">\n] %w(default desert line lovely maroon midnight nebula pool_side).each do |theme| r << %Q[ <link rel="Alternate stylesheet" title="" href="#{theme_url}/#{theme}.css" type="text/css">\n] unless theme == @theme end r end
これをmozillaあたりで見ると、標準添付のテーマがいかにダメかがよくわかるなぁ(笑)。たぶんcolor
と