[前][次][番号順一覧][スレッド一覧]

hikidoc:146

From: Kazuhiko <kazuhiko@f...>
Date: Sun, 13 Dec 2009 09:39:15 +0100
Subject: [hikidoc:146] Re: ブラケットリンクのエスケープ処理

かずひこです。

TADA Tadashi wrote:
> ブラケットによるリンクの指定( [[hoge|http://example.com]] )の中で、
> 「hoge」の部分に「|」を含めたい場合に「\|」とすることでエスケープ
> できるように期待しているようですが、動作してない気がします。

'\|'でエスケープできるというのは、少なくともTextFormattingRulesと
TextFormattingRules.jaには仕様として書かれていないのですが、これって単に
一番最後の'|'以降がリンクURIというのではだめな理由はあるのでしょうか。

以下の変更で、既存のテストも含めてすべて通るのは確認しました。

Index: test/test_hikidoc.rb
===================================================================
--- test/test_hikidoc.rb        (revision 125)
+++ test/test_hikidoc.rb        (working copy)
@@ -246,6 +246,8 @@
                    "[[&]]")
     assert_convert(%Q|<p><a href="aa">aa</a>bb<a href="cc">cc</a></p>\n|,
                    "[[aa]]bb[[cc]]")
+    assert_convert(%Q!<p><a href="aa">a|a</a></p>\n!,
+                   "[[a|a|aa]]")
   end

   def test_inter_wiki_name
Index: lib/hikidoc.rb
===================================================================
--- lib/hikidoc.rb      (revision 125)
+++ lib/hikidoc.rb      (working copy)
@@ -437,7 +437,7 @@
   end

   def compile_bracket_link(link)
-    if m = /\A(?>[^|\\]+|\\.)*\|/.match(link)
+    if m = /\A(.*)\|/.match(link)
       title = m[0].chop
       uri = m.post_match
       fixed_uri = fix_uri(uri)

かずひこ

--
ML: hikidoc@m...
使い方: http://QuickML.com/

[前][次][番号順一覧][スレッド一覧]

       145 2009-12-12 02:49 [t@t...              ] ブラケットリンクのエスケープ処理        
->     146 2009-12-13 09:39 ┗[kazuhiko@f...       ]                                       
       147 2009-12-13 15:55  ┣[t@t...              ]                                     
       149 2010-01-05 09:45  ┗[kazuhiko@f...       ]                                     
       150 2010-01-05 15:44   ┗[kimuraw@i...        ]