Arlolra has uploaded a new change for review.
https://gerrit.wikimedia.org/r/230943
Change subject: Don't migrate trailing whitespace in anchors in rtTestMode
......................................................................
Don't migrate trailing whitespace in anchors in rtTestMode
* Reduces the noise in our roundtrip testing.
* Also, just drop the trailing whitespace, rather than migrating it
out, if next text node starts with spaces.
* Examples,
enwiki/Annona_conica
enwiki/Accra_International_Conference_Centre
and many more ...
Change-Id: I3ebdc361128c6c2750925ff1a7a32dcf6a9d9b33
---
M lib/wts.normalizeDOM.js
M tests/parserTests.txt
2 files changed, 30 insertions(+), 19 deletions(-)
git pull ssh://gerrit.wikimedia.org:29418/mediawiki/services/parsoid
refs/changes/43/230943/1
diff --git a/lib/wts.normalizeDOM.js b/lib/wts.normalizeDOM.js
index f7937c9..cf65fbd 100644
--- a/lib/wts.normalizeDOM.js
+++ b/lib/wts.normalizeDOM.js
@@ -199,6 +199,29 @@
}
};
+Normalizer.prototype.moveTrailingSpacesOut = function(node) {
+ var next = DU.nextNonDeletedSibling(node);
+ var last = DU.lastNonDeletedChildNode(node);
+ var endsInSpace = DU.isText(last) && last.nodeValue.match(/\s+$/);
+ // Conditional on rtTestMode to reduce the noise in testing.
+ if (!this.inRtTestMode && endsInSpace) {
+ last.nodeValue = last.nodeValue.substring(0, endsInSpace.index);
+ if (!DU.isText(next)) {
+ var txt = node.ownerDocument.createTextNode('');
+ node.parentNode.insertBefore(txt, next);
+ next = txt;
+ }
+ // Try to be a little smarter and drop the spaces if possible.
+ if (!/^\s+/.test(next.nodeValue)) {
+ next.nodeValue = endsInSpace[0] + next.nodeValue;
+ // next (a text node) is new / had new content added to
it
+ this.addDiffMarks(next, 'inserted');
+ }
+ this.addDiffMarks(node, 'children-changed');
+ this.addDiffMarks(node.parentNode, 'children-changed');
+ }
+};
+
/**
* Normalizations implemented right now:
* -------------------------------------
@@ -240,24 +263,7 @@
if (/^mw:WikiLink$/.test(node.getAttribute('rel')) &&
this.stripIfEmpty(node) !== node) {
return next;
}
- var last = DU.lastNonDeletedChildNode(node);
- var endsInSpace = DU.isText(last) &&
last.nodeValue.match(/\s+$/);
- // Move trailing spaces out of links
- if (endsInSpace) {
- last.nodeValue = last.nodeValue.substring(0,
endsInSpace.index);
- if (!DU.isText(next)) {
- var txt = node.ownerDocument.createTextNode('');
- node.parentNode.insertBefore(txt, next);
- next = txt;
- }
- next.nodeValue = endsInSpace[0] + next.nodeValue;
-
- // Update diff markers
- // next (a text node) is new / had new content added to
it
- this.addDiffMarks(next, 'inserted');
- this.addDiffMarks(node, 'children-changed');
- this.addDiffMarks(node.parentNode, 'children-changed');
- }
+ this.moveTrailingSpacesOut(node);
return node;
// Table cells
@@ -270,7 +276,6 @@
this.addDiffMarks(first, 'inserted', true);
this.addDiffMarks(node, 'children-changed');
}
-
return node;
// Default
diff --git a/tests/parserTests.txt b/tests/parserTests.txt
index d96347d..df5f5cd 100644
--- a/tests/parserTests.txt
+++ b/tests/parserTests.txt
@@ -25405,10 +25405,13 @@
!! html/parsoid
<p><a rel="mw:WikiLink" href="./Berlin" title="Berlin">Berlin </a>is the
capital of Germany.</p>
<p><a rel="mw:WikiLink" href="./Foo" title="Foo">Foo </a><b>bar</b></p>
+<p><a rel="mw:WikiLink" href="./Boston" title="Boston">Boston </a> is a
city.</p>
!! wikitext
[[Berlin ]]<nowiki/>is the capital of Germany.
[[Foo ]]'''bar'''
+
+[[Boston ]] is a city.
!! end
!! test
@@ -25421,10 +25424,13 @@
!! html/parsoid
<p><a rel="mw:WikiLink" href="./Berlin" title="Berlin">Berlin </a>is the
capital of Germany.</p>
<p><a rel="mw:WikiLink" href="./Foo" title="Foo">Foo </a><b>bar</b></p>
+<p><a rel="mw:WikiLink" href="./Boston" title="Boston">Boston </a> is a
city.</p>
!! wikitext
[[Berlin]] is the capital of Germany.
[[Foo]] '''bar'''
+
+[[Boston]] is a city.
!! end
!! test
--
To view, visit https://gerrit.wikimedia.org/r/230943
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings
Gerrit-MessageType: newchange
Gerrit-Change-Id: I3ebdc361128c6c2750925ff1a7a32dcf6a9d9b33
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