坂元です。
リリース後になってしまい申し訳ないのですが、(サブ)タイトルで以前のバージョンと
挙動が変わっているケースに当たりました。
tdiary.confで
@options['apply_plugin'] = true
を指定していない場合に、(サブ)タイトル内でプラグインを使おうとするとうまく
展開されないようです。
以下、tDiaryスタイルでの確認用のサンプルです。
----ここから----
<<%= a "http://www.example.com/~hs/" %>
こっちはNG
<<a HREF="http://www.example.com/">test</a>
こっちはOK
----ここまで----
ソースを追ったところ、tdiary.rbの(sub)title_proc()から呼ばれている、
apply_plugin()で@options['apply_plugin']の値をチェックしているのが原因の
ようなのですが、このチェックをやめると他への影響が大きそうです。
場当たり的ですが、手元でとりあえず動くようにしたパッチです。
# diff -u tdiary.rb.old tdiary.rb
--- tdiary.rb.old Sun Mar 2 03:58:20 2008
+++ tdiary.rb Sun Mar 2 04:05:28 2008
@@ -795,7 +795,7 @@
@title_procs.each do |proc|
title = proc.call( date, title )
end
- apply_plugin( title )
+ apply_plugin( title, false, true )
end
def add_body_enter_proc( block = Proc::new )
@@ -843,7 +843,7 @@
@subtitle_procs.each do |proc|
subtitle = proc.call( date, @section_index[date], subtitle )
end
- apply_plugin( subtitle )
+ apply_plugin( subtitle, false, true )
end
def add_section_leave_proc( block = Proc::new )
@@ -946,10 +946,10 @@
str.gsub( /<[^"'<>]*(?:"[^"]*"[^"'<>]*|'[^']*'[^"'<>]*)*(?:>|(?=<)|$)/, '' )
end
- def apply_plugin( str, remove_tag = false )
+ def apply_plugin( str, remove_tag = false, force = false )
return '' unless str
r = str.dup
- if @options['apply_plugin'] and str.index( '<%' ) then
+ if (force or @options['apply_plugin']) and str.index( '<%' ) then
r = str.untaint if $SAFE < 3
Safe::safe( @conf.secure ? 4 : 1 ) do
begin
TADA Tadashi さんは書きました:
> ただただしです。
>
> 先ほどITS上にあった最後の2.2.1マイルストーンを潰したので、リリース準備ができ
> ました。あさって29日にリリースします。よろしければTrunkにして、動作確認をし
> てみて下さい。
>
> 特にリンク元のまわりにだいぶ手が入っています。2.2.0では最新の1日分しか過去の
> 日記へのリンク元を保持しませんでしたが、最新版では数日分を残すようになって
> います。保存日数は@latest_limit(トップページで表示される日数)と同じです。
>
|