日曜日, 20 3 月 2005
| #Obfuscateが効かない |
|
|
このブログを運用しているblojsomも2.24にバージョンアップしたところ不具合らしき現象が見つかった。
テンプレートにasualを指定している場合、asual-column.vmの中に#Obfuscate($BLOJSOM_BLOG.getBlogOwnerEmail())というマクロが使用されているが、2.24に上げるとこの#Obfuscate()がそのまま表示されてしまう。
この#Obfuscate()マクロはブログオーナーのメールアドレスを16進変換し表示するためだけのものだが、このマクロが無いとメールアドレスがそのまま表示されてしまいスパマー用クローラにメールアドレスを収集されるかも知れない、困った。
とりあえず原因を探るために調べ始めた。
#Obfuscate()がそのまま表示されてしまうということはVelocityに解析対象とみなされていないということなので#Obfuscate()が定義されているvmファイルを探すことに。
どうやらblojsom-plugins-templates-2.24.jar内のorg/blojsom/plugin/velocity/page-macros.vmに定義されているようだ。
早速開いて見てみると
その下に#RSSEnclosure()というマクロも定義されていたので試しにこのマクロは使用できるかテンプレートでテストしてみたところこのマクロもそのまま表示されてしまった、やっぱりおかしい。
#Obfuscate()の前にある#MultiBlogFriendlyPermalink()もそのまま表示される。
しかしその前にある#MathCommentFormItem()は正常に処理され表示された。
どうやら#MultiBlogFriendlyPermalink()マクロに何か問題があるようだ。
見ると
が、何も変わらず…。
その後足したり引いたりしてみて色々試してみたところ
結果として#Obfuscate()マクロは使えるようになったが#MultiBlogFriendlyPermalink()マクロはそのままなので依然使用できない。
でもこの#MultiBlogFriendlyPermalink()マクロはどこにも使用されていないようだし、そもそも使い道が分からないので気にしない。
テンプレートにasualを指定している場合、asual-column.vmの中に#Obfuscate($BLOJSOM_BLOG.getBlogOwnerEmail())というマクロが使用されているが、2.24に上げるとこの#Obfuscate()がそのまま表示されてしまう。
この#Obfuscate()マクロはブログオーナーのメールアドレスを16進変換し表示するためだけのものだが、このマクロが無いとメールアドレスがそのまま表示されてしまいスパマー用クローラにメールアドレスを収集されるかも知れない、困った。
とりあえず原因を探るために調べ始めた。
#Obfuscate()がそのまま表示されてしまうということはVelocityに解析対象とみなされていないということなので#Obfuscate()が定義されているvmファイルを探すことに。
どうやらblojsom-plugins-templates-2.24.jar内のorg/blojsom/plugin/velocity/page-macros.vmに定義されているようだ。
早速開いて見てみると
#macro(Obfuscate $text)$BLOJSOM_PLUGIN_SIMPLE_OBFUSCATION.obfuscate($text)#endと定義されていたが特に問題は無いように思える。
その下に#RSSEnclosure()というマクロも定義されていたので試しにこのマクロは使用できるかテンプレートでテストしてみたところこのマクロもそのまま表示されてしまった、やっぱりおかしい。
#Obfuscate()の前にある#MultiBlogFriendlyPermalink()もそのまま表示される。
しかしその前にある#MathCommentFormItem()は正常に処理され表示された。
どうやら#MultiBlogFriendlyPermalink()マクロに何か問題があるようだ。
見ると
#set ($entryLink = $entry.getMetaData().get("BLOJSOM_PLUGIN_INTERNAL_AGGREGATOR_BLOG_URL")
$categoryForEntry$entry.getDateAsFormat("yyyy")/$entry.getDateAsFormat("MM")/
$entry.getDateAsFormat("dd")/$entry.getPermalink()")
の部分に対応の取れていない"があったのでこれを削除してみた。が、何も変わらず…。
その後足したり引いたりしてみて色々試してみたところ
$categoryForEntry$entry.getDateAsFormat("yyyy")/$entry.getDateAsFormat("MM")/
$entry.getDateAsFormat("dd")/$entry.getPermalink()"
の部分を削除すれば正常に処理される事が判明したが、削除するわけにもいかないのでとりあえずこの#MultiBlogFriendlyPermalink()マクロのブロックをpage-macros.vmの一番最後に移動させて#Obfuscate()マクロと#RSSEnclosure()マクロを有効にさせた。結果として#Obfuscate()マクロは使えるようになったが#MultiBlogFriendlyPermalink()マクロはそのままなので依然使用できない。
でもこの#MultiBlogFriendlyPermalink()マクロはどこにも使用されていないようだし、そもそも使い道が分からないので気にしない。
Posted by at 3:02 午前 in Java/blojsom/






