MediaWiki:Gadget-libExtraUtil.js: Difference between revisions
Content deleted Content added
Version 2.1.1: parseTemplates: fix test for recursive templates |
Version 2.2.2: parseTemplates: recognise three braces ( {{{parameter}}} ) as not being a template - may occur when a template has been subst'ed |
||
Line 17:
// <nowiki>
window.extraJs = { version: '2.2.
/* ========== Polyfills to support IE11 and Edge<14 ============================================= */
Line 398:
var numUnclosed = 0;
// are we inside a comment, or between nowiki tags, or in a {{{parameter}}}?
var inComment = false;
var inNowiki = false;
var inParameter = false;
var startIdx, endIdx;
Line 406 ⟶ 407:
for (var i=0; i<n; i++) {
if ( !inComment && !inNowiki && !inParameter ) {
if (wikitext[i] === '{' && wikitext[i+1] === '{' && wikitext[i+2] === '{' && wikitext[i+3] !== '{') {
inParameter = true;
i += 2;
} else if (wikitext[i] === '{' && wikitext[i+1] === '{') {
if (numUnclosed === 0) {
startIdx = i+2;
Line 432 ⟶ 436:
}
} else { // we are in a comment or nowiki or {{{parameter}}}
if (wikitext[i] === '|') {
// swap out pipes with \1 character
Line 442 ⟶ 446:
inNowiki = false;
i += 8;
} else if (wikitext[i] === '}' && wikitext[i+1] === '}' && wikitext[i+2] === '}') {
inParameter = false;
i += 2;
}
}
|