jenkins-bot has submitted this change and it was merged.

Change subject: Fix excess nowiki escaping in list elements
......................................................................


Fix excess nowiki escaping in list elements

* "<ul><li> <s></s>: a</li></ul>" was getting serialized to
  "* <s></s><nowiki>: a</nowiki>" because of a buggy wt-escape
  handler for list elements.

* This patch fixes it and updates wt_escape.tests.txt
  TODO: Migrate recent changes to this file to parserTests.txt

Change-Id: I495873740a8ad0cd4ce471cd57c514378e7d88a5
---
M js/lib/mediawiki.WikitextSerializer.js
M js/tests/wt_escape.tests.txt
2 files changed, 7 insertions(+), 4 deletions(-)

Approvals:
  GWicke: Looks good to me, approved
  jenkins-bot: Verified



diff --git a/js/lib/mediawiki.WikitextSerializer.js 
b/js/lib/mediawiki.WikitextSerializer.js
index 9ff2992..c89535e 100644
--- a/js/lib/mediawiki.WikitextSerializer.js
+++ b/js/lib/mediawiki.WikitextSerializer.js
@@ -153,9 +153,9 @@
        }
 };
 
-WEHP.liHandler = function(liNode, state, text) {
+WEHP.liHandler = function(liNode, state, text, opts) {
        // Only bullets at the beginning of the list trigger escaping
-       if (DU.isText(liNode.firstChild) && state.currLine.text === '') {
+       if (state.currLine.text === '' && opts.node === liNode.firstChild) {
                return text.match(/^[#\*:;]/);
        } else {
                return false;
@@ -465,7 +465,7 @@
                // Escape 'res' if necessary
                var origRes = res;
                if (this.escapeText) {
-                       res = this.serializer.escapeWikiText(this, res, { 
isLastChild: !node.nextSibling } );
+                       res = this.serializer.escapeWikiText(this, res, { node: 
node, isLastChild: !node.nextSibling } );
                        this.escapeText = false;
                }
 
@@ -1588,7 +1588,6 @@
                                state.inWideTD = true;
                        }
                        emitStartTag(res, node, state, cb);
-                       // state.resetCurrLine(node);
                        state.serializeChildren(node, cb, 
state.serializer.wteHandlers.tdHandler);
                        // FIXME: bad state hack!
                        state.inWideTD = undefined;
diff --git a/js/tests/wt_escape.tests.txt b/js/tests/wt_escape.tests.txt
index 5a5ee87..47a7f72 100644
--- a/js/tests/wt_escape.tests.txt
+++ b/js/tests/wt_escape.tests.txt
@@ -247,6 +247,8 @@
 *]]bar <span><nowiki>[[foo]]</nowiki></span>
 
 *=bar <span>foo]]</span>=
+
+* <s></s>: a
 !! result
 <ul><li> bar <span>[[foo]]</span>
 </li></ul>
@@ -258,6 +260,8 @@
 </li></ul>
 <ul><li>=bar <span>foo]]</span>=
 </li></ul>
+<ul><li> <s></s>: a
+</li></ul>
 
 !!end
 

-- 
To view, visit https://gerrit.wikimedia.org/r/60784
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: merged
Gerrit-Change-Id: I495873740a8ad0cd4ce471cd57c514378e7d88a5
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/extensions/Parsoid
Gerrit-Branch: master
Gerrit-Owner: Subramanya Sastry <[email protected]>
Gerrit-Reviewer: Cscott <[email protected]>
Gerrit-Reviewer: GWicke <[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

Reply via email to