https://www.mediawiki.org/wiki/Special:Code/MediaWiki/111488

Revision: 111488
Author:   gwicke
Date:     2012-02-14 21:08:25 +0000 (Tue, 14 Feb 2012)
Log Message:
-----------
Port urlencoded char support to preprocessor-supporting link target
production, and remove old link_target production.

Modified Paths:
--------------
    trunk/extensions/VisualEditor/modules/parser/pegTokenizer.pegjs.txt

Modified: trunk/extensions/VisualEditor/modules/parser/pegTokenizer.pegjs.txt
===================================================================
--- trunk/extensions/VisualEditor/modules/parser/pegTokenizer.pegjs.txt 
2012-02-14 21:04:57 UTC (rev 111487)
+++ trunk/extensions/VisualEditor/modules/parser/pegTokenizer.pegjs.txt 
2012-02-14 21:08:25 UTC (rev 111488)
@@ -461,7 +461,15 @@
       return flatten_string ( r );
   }
 
-link_preprocessor_text
+wikilink_preprocessor_text 
+  = r:( t:[^%<~[{\n\r\t|!\]} &=]+ { return t.join(''); }
+  / urlencoded_char
+  / directive
+  / !inline_breaks !"]]" text_char )+ {
+      return flatten ( r );
+  }
+
+extlink_preprocessor_text
   = r:( t:[^'<~[{\n\r|!\]}\t&="' 
\u00A0\u1680\u180E\u2000-\u200A\u202F\u205F\u3000]+ { return t.join(''); }
   / directive
   / urlencoded_char
@@ -743,7 +751,7 @@
         "[" 
         & { return setFlag('extlink'); }
         //target:urllink
-        target:link_preprocessor_text
+        target:extlink_preprocessor_text
         text:(( space / [\u00A0\u1680\u180E\u2000-\u200A\u202F\u205F\u3000] )* 
               t:inlineline { return t } )?
         "]" {
@@ -901,7 +909,7 @@
   = "[[" 
     ! url
     //target:link_target 
-    target:preprocessor_text
+    target:wikilink_preprocessor_text
     lcontent:( "|" lt:link_text { return lt } )* 
     "]]" 
     // XXX In real MediaWiki, this is a language-dependent positive character
@@ -931,16 +939,6 @@
       return [obj].concat(textTokens, [new EndTagTk( 'a' )]);
   }
 
-link_target
-  = h:( c:[^|%\n\]]+ { return c.join('') } // quickly eat anything unsuspicious
-      / !"]]" 
-        hi:(
-              [^|%\n]
-            / urlencoded_char
-            / '%'
-           ) { return hi }
-      )* { return h.join(''); }
-
 link_text
   = & { return setFlag('linkdesc'); }
     h:inline 


_______________________________________________
MediaWiki-CVS mailing list
MediaWiki-CVS@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mediawiki-cvs

Reply via email to