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
と
default.cssいじってみました。検証してみたところエラーはないようです。
CSSはhttp://nga.jp/theme/default.cssで検証結果はこちら
http://jigsaw.w3.org/css-validator/validator?uri=http%3A%2F%2Fwww.nga.jp%2F%7Esample%2Fdiary%2F&warning=1&profile=css2
うぐ。最新版(Revision 1.4)でやってくれると嬉しかった……。
つーか、問題はdefault.css「だけではない」という点なのだ(笑)。
げ!(^^;
早速のプラグイン化ありがとうございます。:)
では、お言葉に甘えて。バグではありませんが。
misc/plugin/README.html の insert プラグインの解説に
「このプラグインは、ファイルにアクセスするため、tdiary.conf で @secure が true に設定されていないと利用できません」
とあるのですが、false ですよね。
実は別の場所に移しただけだったりして.
消しちゃうのもったいないもん.うひひ.
え〜、でも、うちの日記では書き始めて間もない頃の日記に突っ込まれたことが…。
だからどーしろ、ってのはないですけど。