From: Santhosh Thottingal Date: Mon, 2 Apr 2012 11:12:40 +0000 (+0530) Subject: Fix Bug 33653 -JqueryMsg parser should support templates without replacements X-Git-Tag: 1.31.0-rc.0~24039^2 X-Git-Url: http://git.cyclocoop.org/%22%20.%20generer_url_ecrire%28%22suivi_revisions%22%29%20.%20%22?a=commitdiff_plain;h=1db56c66a533e1abf57a692fb529006db55991d7;p=lhc%2Fweb%2Fwiklou.git Fix Bug 33653 -JqueryMsg parser should support templates without replacements - The patch was already reviewed but was in jsgrammar branch of svn. - Relavant revisions from svn: r111629 Change-Id: I946d3c8da9261d4c04963abf7d30cdb06448212c --- diff --git a/resources/mediawiki/mediawiki.jqueryMsg.js b/resources/mediawiki/mediawiki.jqueryMsg.js index 6c00bd15a1..a8d4a3add3 100644 --- a/resources/mediawiki/mediawiki.jqueryMsg.js +++ b/resources/mediawiki/mediawiki.jqueryMsg.js @@ -407,12 +407,23 @@ return result === null ? null : [ result[0], result[2] ]; } + function templateWithOutReplacement() { + var result = sequence( [ + templateName, + colon, + paramExpression + ] ); + return result === null ? null : [ result[0], result[2] ]; + } + var colon = makeStringParser(':'); var templateContents = choice( [ function() { var res = sequence( [ - templateWithReplacement, + // templates can have placeholders for dynamic replacement eg: {{PLURAL:$1|one car|$1 cars}} + // or no placeholders eg: {{GRAMMAR:genitive|{{SITENAME}}} + choice( [ templateWithReplacement, templateWithOutReplacement ] ), nOrMore( 0, templateParam ) ] ); return res === null ? null : res[0].concat( res[1] ); diff --git a/resources/mediawiki/mediawiki.jqueryMsg.peg b/resources/mediawiki/mediawiki.jqueryMsg.peg index 74c57e4b2a..e059ed1d9e 100644 --- a/resources/mediawiki/mediawiki.jqueryMsg.peg +++ b/resources/mediawiki/mediawiki.jqueryMsg.peg @@ -22,11 +22,15 @@ template templateContents = twr:templateWithReplacement p:templateParam* { return twr.concat(p) } + / twr:templateWithOutReplacement p:templateParam* { return twr.concat(p) } / t:templateName p:templateParam* { return p.length ? [ t, p ] : [ t ] } templateWithReplacement = t:templateName ":" r:replacement { return [ t, r ] } +templateWithOutReplacement + = t:templateName ":" p:paramExpression { return [ t, p ] } + templateParam = "|" e:paramExpression* { return e.length > 1 ? [ "CONCAT" ].concat(e) : e[0]; }