FrontPage  Index  Search  Changes  Login

Ticket-96

RD+スタイルでプラグイン引数がエスケープされる

Priority
Normal
Reporter
sakai
Status
New
Assigned to
?
Version
HEAD
Milestone
?
Created
2008-06-08

Description

[Hiki-dev:01163] RD+スタイルでプラグイン引数がエスケープされる

HikiをRD+スタイルで使っていて、プラグイン引数中の & 等がエスケープされてプラグインに引き渡されていることに気付きました。例えば {{hoge "&"}} と書いた場合、 "&" ではなく "&" という文字列がhogeプラグインに渡されてしまいます。

special_parseに引き渡されるcontentは既にHTMLに変換済みの文字列なので、プラグインの呼び出し処理を行う前にunescapeHTMLを呼ぶ必要があるのではないかと思います。

Index: rd2html.rb
===================================================================
RCS file: /cvsroot/hiki/hiki/style/rd+/rd2html.rb,v
retrieving revision 1.9
diff -u -p -r1.9 rd2html.rb
--- rd2html.rb	26 Dec 2005 12:33:49 -0000	1.9
+++ rd2html.rb	15 Sep 2007 03:28:16 -0000
@@ -76,13 +76,13 @@ module Hiki
      return content if content.nil? or content == ""
      #Eval Plugin
      content = content.gsub(EVAL_PLUGIN_RE) do |match|
-        method = $1
+        method = $1.unescapeHTML
        ret = ''
        begin
          ret = Hiki::Util.apply_plugin(method, @plugin, @conf)
          ret.gsub!(@regex_modulenames, "\\&#{ESC_WORD}") if @regex_modulenames
        rescue Exception
-          err = "Plugin Error: #{$!}" #<pre>#{match.to_s.escapeHTML}</pre>"
+          err = "Plugin Error: #{$!}" #<pre>#{match}</pre>"
          if @conf.plugin_debug
            err += "</p><p>Back trace<pre>"
            $!.backtrace.each do |v|

Changelog

Name:
Comment:
Change Properties
Priority:
Status:
Version:
Milestone:
Assigned to:
Last modified:2008/06/08 12:47:27
Keyword(s):
References: