jenkins-bot has submitted this change and it was merged.
Change subject: New category doesn't need indent-pre nowiki protection
......................................................................
New category doesn't need indent-pre nowiki protection
* Probably should be generalized to other SOL cases, if this is the
right approach.
Change-Id: Ic74170cf6746e971c4f728a2f36c5ba47142835e
---
M lib/mediawiki.WikitextSerializer.js
M tests/parserTests-blacklist.js
M tests/parserTests.txt
3 files changed, 22 insertions(+), 7 deletions(-)
Approvals:
Subramanya Sastry: Looks good to me, approved
jenkins-bot: Verified
diff --git a/lib/mediawiki.WikitextSerializer.js
b/lib/mediawiki.WikitextSerializer.js
index 0ab4fd4..515813a 100644
--- a/lib/mediawiki.WikitextSerializer.js
+++ b/lib/mediawiki.WikitextSerializer.js
@@ -1072,10 +1072,11 @@
};
function stripUnnecessaryIndentPreNowikis(wt) {
- var pieces = wt.split(/(^<nowiki>\s+<\/nowiki>)([^\n]*(?:\n|$))/m);
+ var pieces =
wt.split(/^((?:<!--(?:[^\-]|-(?!->))*-->)*)(<nowiki>\s+<\/nowiki>)([^\n]*(?:\n|$))/m);
var out = pieces[0];
- for (var i = 1; i < pieces.length; i += 3) {
- var nowiki = pieces[i], rest = pieces[i+1];
+ for (var i = 1; i < pieces.length; i += 4) {
+ out += pieces[i];
+ var nowiki = pieces[i+1], rest = pieces[i+2];
// Ignore comments
var htmlTags = rest.match(/<[^!][^<>]*>/g) || [];
var reqd = true;
@@ -1091,15 +1092,20 @@
reqd = true;
break;
} else if (Consts.HTML.BlockTags.has(tagName)) {
- // Block tags on a line suppres nowikis
+ // Block tags on a line suppress nowikis
reqd = false;
}
+ }
+
+ // Just spaces and categories, huh
+ if ( reqd && /^(\[\[Category\:[^\]]*?\]\]|\s)*$/.test( rest ) )
{
+ reqd = false;
}
if (!reqd) {
nowiki = nowiki.replace(/^<nowiki>(\s+)<\/nowiki>/,
'$1');
}
- out = out + nowiki + rest + pieces[i+2];
+ out = out + nowiki + rest + pieces[i+3];
}
return out;
}
diff --git a/tests/parserTests-blacklist.js b/tests/parserTests-blacklist.js
index f83dded..f5c730d 100644
--- a/tests/parserTests-blacklist.js
+++ b/tests/parserTests-blacklist.js
@@ -2367,8 +2367,7 @@
add("selser", "Render invalid page names as plain text (bug 51090) [2,0,3]",
"uy7lbslcu8mvaemi\n\n[[./../foo|bar]]\n[[foo�|bar]]\n[[foo/.|bar]]\n[[foo/..|bar]]\n[[foo~~~bar]]\n[[foo>bar]]\n[[foo[bar]]\n[[.]]\n[[..]]\n[[foo././bar]]\n");
add("selser", "Render invalid page names as plain text (bug 51090)
[2,0,[2,0,0,0,4,0,4,0,0,0,4,0,0,0,0,0,0,0,0,0,3,0,2]]",
"ixtw0uq17iqtcsor\n\n[[./../foo|bar]]\n[[foo�|bar]]\n[[foo/.|bar]]\n[[foo/..|bar]]\n[[foo~~~bar]]\n[[foo>bar]]\n[[foo[bar]]\n[[.]]\n[[..]]\n[[foo././bar]]\n\ncjgyt6cnj124kj4i[[{{echo|./../foo}}|bar]]\n[[{{echo|foo/.}}4i3f1qev8b5u3di{{echo|foo/..}}t26yvjmagszl4n29{{echo|foo~~~~bar}}]]\n[[{{echo|foo>bar}}3vx6jfw5gbvs4i{{echo|foo././bar}}]]\n[[{{echo|foo{bar}}]]\n[[{{echo|foo}bar}}]]\n[[{{echo|foo[bar}}]]\n[[{{echo|foo]bar}}{{echo|foo<bar}}<nowiki>3vz7g6pd5lzhncdi]]</nowiki>");
add("selser", "Category / paragraph interactions
[[0,3,2],0,2,4,[3,2,0],0,[2],3,0,[3],0,[3,3,4,1,4,2,3],0,3,4,0,4,3,0,0,2,0,0,0]",
"Foo 83zrad4tpxxkcsor Bar\n\nysekf8brayr885mi\n\nFoo
[[Category:Baz]]\nBar\n\nduknjpcnvnyzxgvi\n\nhroyapi5paqhncdi[[Category:Baz]]\nBar\n\nmsiv1cjc1q8e61orFoo\n[[Category:Baz]]
\n\nljrvpzob03tedn29[[Category:Baz]]6bqrn9ug03npcik95jcarnywu55klnmi[[Category:Baz]]\n\nik3u2lqitfomkj4i[[Category:Baz]]\nn8wwykwa78f72e29\n\n[[Category:Baz]]\n9dl89xg0l57phkt9\n
{{echo|[[Category:Baz]]}}\n[[Category:Baz]]");
-add("selser", "Category / paragraph interactions
[4,0,0,0,[4,1,0],3,3,0,0,0,2,[2,0,0,1,3,0,0],0,1,3,0,2,0,2,0,0,0,4,2]",
"y2ksxygpidn7y14i\n\nFoo
[[Category:Baz]]\nBar\n\ntqcbbea7bmiy66r[[Category:Baz]]\nBar\n[[Category:Baz]]
Bar\nc42dqedyb3u6usor\n\ndjmvd61k80kymn29Foo\n[[Category:Baz]]\n
[[Category:Baz]][[Category:Baz]]\nBar\n\n[[Category:Baz]]\n<nowiki>
</nowiki>[[Category:Baz]]\nvyv3u18bgs4z33di\n[[Category:Baz]]\ne98vfkx1eqld6lxr\n\n[[Category:Baz]]\n
{{echo|[[Category:Baz]]}}\nviznyhgcd9muz0k9\n\nd830mwe1qg1oflxr[[Category:Baz]]");
-add("selser", "Category / paragraph interactions
[[0,1,0],0,[2,0,4],4,[0,2,4],0,1,0,0,0,0,3,0,2,0,0,2,0,3,3,0,0,0,0]", "Foo
[[Category:Baz]] Bar\n\n9o6ehd9bnpuba9k9Foo
[[Category:Baz]]hykpnr0z0mdvx6r\n\nwfd3z9z3ux0nqaor\n\nFoo\nts1y9gdg8f0nqaor[[Category:Baz]]8kkz36bki8tihpvi\n\nFoo\n[[Category:Baz]]
Bar\n\nnarm95sza9ssjor[[Category:Baz]]\n
[[Category:Baz]]\nd3pv2h2yewcj714i\n[[Category:Baz]]\n
{{echo|[[Category:Baz]]}}\n[[Category:Baz]]");
+add("selser", "Category / paragraph interactions
[4,0,0,0,[4,1,0],3,3,0,0,0,2,[2,0,0,1,3,0,0],0,1,3,0,2,0,2,0,0,0,4,2]",
"y2ksxygpidn7y14i\n\nFoo
[[Category:Baz]]\nBar\n\ntqcbbea7bmiy66r[[Category:Baz]]\nBar\n[[Category:Baz]]
Bar\nc42dqedyb3u6usor\n\ndjmvd61k80kymn29Foo\n[[Category:Baz]]\n
[[Category:Baz]][[Category:Baz]]\nBar\n\n[[Category:Baz]]\n
[[Category:Baz]]\nvyv3u18bgs4z33di\n[[Category:Baz]]\ne98vfkx1eqld6lxr\n\n[[Category:Baz]]\n
{{echo|[[Category:Baz]]}}\nviznyhgcd9muz0k9\n\nd830mwe1qg1oflxr[[Category:Baz]]");
add("selser", "Category / paragraph interactions
[1,0,1,0,1,0,1,0,0,0,2,[4,0,0,0,0,4,0],3,0,4,0,0,1,4,4,0,0,3,0]", "Foo
[[Category:Baz]] Bar\n\nFoo
[[Category:Baz]]\nBar\n\nFoo\n[[Category:Baz]]\nBar\n\nFoo\n[[Category:Baz]]
Bar\nqyq2tw4tbcjfko6r\n\n8rsqjn6ahwoecdi[[Category:Baz]]\n
[[Category:Baz]]\n7qub38k3od0od2t9\nBar\n\n[[Category:Baz]]\njml3cn3gxdt5ipb9[[Category:Baz]]\n[[Category:Baz]]\n7www48dkmtg74x6r\n\nfddlp7i37zwr8uxr\n
{{echo|[[Category:Baz]]}}[[Category:Baz]]");
add("selser", "Section headings with TOC [3,4,0,0,3,2,[3],3,0,4,3,3,0]",
"px8b3ng5n4lpu8fr\n\n=== Subheadline 1
===\np64mngpetwfm9529\n\n======<nowiki/>======\n\n== Headline 2
==\nzvfwz386e7xbhuxr\n\n===Another headline===");
add("selser", "Handling of sections up to level 6 and beyond
[1,2,1,2,1,0,[3],2,2,4,[2],4,0,0,1,0,0,3,1]", "= Level 1
Heading=\n7e043zzvvtzf47vi\n\n== Level 2 Heading==\n0pp0pcwrmkakyb9\n\n===
Level 3
Heading===\n====<nowiki/>====\n253vnq49otg9zfr\nmncpvxste96vquxr\n\n===== Level
5 Heading=====\n91qmbb1e2vlpu8fr\n\n======ohqkkrlkoqi79zfr Level 6
Heading======\n6hv8gbhdqngn9udi\n\n======= Level 7
Heading=======\n======<nowiki>== Level 8 Heading==</nowiki>======\n=========
Level 9 Heading=========\n======<nowiki>==== Level 10
Heading====</nowiki>======");
diff --git a/tests/parserTests.txt b/tests/parserTests.txt
index d9a5482..a39c373 100644
--- a/tests/parserTests.txt
+++ b/tests/parserTests.txt
@@ -22404,6 +22404,16 @@
!! end
!! test
+New category doesn't need indent-pre nowiki protection
+!! options
+parsoid=html2wt
+!! html
+<!-- this is great --> <link rel="mw:PageProp/Category"
href="./Category:Good" />
+!! wikitext
+<!-- this is great --> [[Category:Good]]
+!! end
+
+!! test
New interlanguage links (href variations)
!! options
parsoid=html2wt
--
To view, visit https://gerrit.wikimedia.org/r/188971
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings
Gerrit-MessageType: merged
Gerrit-Change-Id: Ic74170cf6746e971c4f728a2f36c5ba47142835e
Gerrit-PatchSet: 2
Gerrit-Project: mediawiki/services/parsoid
Gerrit-Branch: master
Gerrit-Owner: Arlolra <[email protected]>
Gerrit-Reviewer: Arlolra <[email protected]>
Gerrit-Reviewer: Marcoil <[email protected]>
Gerrit-Reviewer: Subramanya Sastry <[email protected]>
Gerrit-Reviewer: jenkins-bot <>
_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits