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 <abrea...@wikimedia.org>

_______________________________________________
MediaWiki-commits mailing list
MediaWiki-commits@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to