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