Arlolra has uploaded a new change for review.
https://gerrit.wikimedia.org/r/226667
Change subject: T104554: Strip whitespace after newlines in p / td
......................................................................
T104554: Strip whitespace after newlines in p / td
* Only in new elements and when scrubWikitext is enabled.
* Prevent indent-pre nowikis.
* Also, moves this code to the normalizeDOM pass.
Change-Id: If4972e4523a191a8b141a598080822e7a7260f48
---
M lib/mediawiki.WikitextSerializer.js
M lib/wts.normalizeDOM.js
M tests/parserTests-blacklist.js
M tests/parserTests.txt
4 files changed, 9 insertions(+), 7 deletions(-)
git pull ssh://gerrit.wikimedia.org:29418/mediawiki/services/parsoid
refs/changes/67/226667/1
diff --git a/lib/mediawiki.WikitextSerializer.js
b/lib/mediawiki.WikitextSerializer.js
index d5df07b..753dd3b 100644
--- a/lib/mediawiki.WikitextSerializer.js
+++ b/lib/mediawiki.WikitextSerializer.js
@@ -1244,9 +1244,6 @@
if (!reqd) {
nowiki = nowiki.replace(/^<nowiki>(\s+)<\/nowiki>/,
'$1');
- } else if (env.scrubWikitext) {
- nowiki = nowiki.replace(/^<nowiki>(\s+)<\/nowiki>/, '');
- rest = rest.replace(/^\s*/, '');
}
out = out + nowiki + rest + pieces[i + 3];
}
diff --git a/lib/wts.normalizeDOM.js b/lib/wts.normalizeDOM.js
index 4b510f3..2976307 100644
--- a/lib/wts.normalizeDOM.js
+++ b/lib/wts.normalizeDOM.js
@@ -135,7 +135,14 @@
if (emptyTag) {
var next = node.nextSibling;
node.parentNode.removeChild(node);
- node = next;
+ return next;
+ }
+
+ // Strip whitespace after newlines in new paragraphs and table cells
+ // to prevent indent-pre nowiki'ing.
+ var preventIndentPre = ['P', 'TD'].indexOf(node.nodeName) > -1;
+ if (preventIndentPre) {
+ node.textContent = node.textContent.replace(/^\s+/mg, '');
}
return node;
diff --git a/tests/parserTests-blacklist.js b/tests/parserTests-blacklist.js
index 3c827d6..4d5d865 100644
--- a/tests/parserTests-blacklist.js
+++ b/tests/parserTests-blacklist.js
@@ -1734,7 +1734,6 @@
add("html2wt", "Improperly nested inline or quotes tags with whitespace in
between", "<span> <s>x</s></span><s> </s>\n''' ''x'''''<nowiki/>'' ''\n");
add("html2wt", "Image: upright option (parsoid)",
"[[File:Foobar.jpg|thumb|caption]]\n[[File:Foobar.jpg|thumb|caption]]\n[[File:Foobar.jpg|thumb|500x500px|caption]]\n");
add("html2wt", "Image: upright option is ignored on inline and frame images
(parsoid)", "[[File:Foobar.jpg|500x500px|caption]]\n");
-add("html2wt", "3. Indent Pre Nowiki: suppress whitespace after newlines in
new paragraph or table cell", "Foo\n<nowiki>
bar\nbaz</nowiki>\n\n{|\n|Foo\n<nowiki> bar\n </nowiki>baz bang\n|}\n");
// Blacklist for selser
diff --git a/tests/parserTests.txt b/tests/parserTests.txt
index f149c1b..b4be0eb 100644
--- a/tests/parserTests.txt
+++ b/tests/parserTests.txt
@@ -24930,8 +24930,7 @@
baz
{|
-|-
-| Foo
+|Foo
bar
baz bang
|}
--
To view, visit https://gerrit.wikimedia.org/r/226667
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings
Gerrit-MessageType: newchange
Gerrit-Change-Id: If4972e4523a191a8b141a598080822e7a7260f48
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/services/parsoid
Gerrit-Branch: master
Gerrit-Owner: Arlolra <[email protected]>
_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits