Subramanya Sastry has uploaded a new change for review. (
https://gerrit.wikimedia.org/r/356415 )
Change subject: Fix html2wt of new transclusion/extension added after a list
......................................................................
Fix html2wt of new transclusion/extension added after a list
* Discovered via a bug report on WP:VE/F page
* Added new parser test recording this expectation
* Changes in parser test blacklist for cite are an improvement
Change-Id: I017acc0400522489ab94ce69113c48c91d64ba32
---
M lib/html2wt/DOMHandlers.js
M tests/citeParserTests-blacklist.js
M tests/parserTests.txt
3 files changed, 16 insertions(+), 5 deletions(-)
git pull ssh://gerrit.wikimedia.org:29418/mediawiki/services/parsoid
refs/changes/15/356415/1
diff --git a/lib/html2wt/DOMHandlers.js b/lib/html2wt/DOMHandlers.js
index 4c64f2c..0916281 100644
--- a/lib/html2wt/DOMHandlers.js
+++ b/lib/html2wt/DOMHandlers.js
@@ -178,11 +178,14 @@
}
function wtListEOL(node, otherNode) {
- if (!DU.isElt(otherNode) || DU.isBody(otherNode) ||
- DU.isFirstEncapsulationWrapperNode(otherNode)) {
+ if (!DU.isElt(otherNode) || DU.isBody(otherNode)) {
return { min: 0, max: 2 };
}
+ if (DU.isFirstEncapsulationWrapperNode(otherNode)) {
+ return { min: DU.isList(node) ? 1 : 0, max: 2 };
+ }
+
var nextSibling = DU.nextNonSepSibling(node);
var dp = DU.getDataParsoid(otherNode);
if (nextSibling === otherNode && dp.stx === 'html' || dp.src !==
undefined) {
diff --git a/tests/citeParserTests-blacklist.js
b/tests/citeParserTests-blacklist.js
index 87c887f..50b48eb 100644
--- a/tests/citeParserTests-blacklist.js
+++ b/tests/citeParserTests-blacklist.js
@@ -480,9 +480,6 @@
add("selser", "Simple <ref>, with <references/> in group [[0,0,4,0],0,0,3,0]",
"Wikipedia rocks!<ref>Proceeds of Rockology, vol. XXI</ref>4n06kcl11el2qpvi<ref
group=note>Proceeds of Rockology, vol. XXI</ref>\n\n<references/><references
group=note/>");
add("selser", "Simple <ref>, with <references/> in group [[2,0,3,0],0,0,0,0]",
"12oceydq60qkt9Wikipedia rocks!<ref>Proceeds of Rockology, vol. XXI</ref><ref
group=note>Proceeds of Rockology, vol. XXI</ref>\n\n<references/>\n<references
group=note/>");
add("selser", "Simple <ref>, with <references/> in group [2,0,0,0,0]",
"uwhp5n35gin97ldi\n\nWikipedia rocks!<ref>Proceeds of Rockology, vol.
XXI</ref>\nWikipedia rocks!<ref group=note>Proceeds of Rockology, vol.
XXI</ref>\n\n<references/>\n<references group=note/>");
-add("selser", "Simple <ref>, with <references/> in group, with groupname in
Chinese [[3,0,0,0,0,0],2,[1],3,0,0,[2],3,0]", "<ref group=\"参\">ref
a</ref>BBB<ref group=\"注\">note b</ref>CCC<ref group=\"参\">ref
c</ref>\n\nca1bqjo8189z4cxr\n\n;refs\n<references group=\"参\" />\n:
wrje21qkvvi8jjor\n;notes<references group=\"注\" />");
-add("selser", "Simple <ref>, with <references/> in group, with groupname in
Chinese [4,2,1,3,0,4,[1],0,0]",
"l6wq05n2y1tf0f6r\n\nzz66axs9t25oecdi\n\n;refs\n<references group=\"参\"
/>8pu5kqayp04wjyvi\n;notes\n<references group=\"注\" />");
-add("selser", "Simple <ref>, with <references/> in group, with groupname in
Chinese [2,2,[3],3,0,0,[2],4,0]", "yttgkuvn6irudi\n\nAAA<ref group=\"参\">ref
a</ref>BBB<ref group=\"注\">note b</ref>CCC<ref group=\"参\">ref
c</ref>\n\nf2jxenertwlba9k9\n\n\n<references group=\"参\" />\n:
uqqa7lk5kizilik9\n;notes\n8cjkzpv2vsawnrk9<references group=\"注\" />");
add("selser", "<ref> defined in <references> [0,2,0]", "<ref
name=\"foo\"/>\n\n93dppaj01lhj8aor\n\n<references>\n<ref
name=\"foo\">BAR</ref>\n</references>");
add("selser", "<ref> defined in <references> [0,3,0]", "<ref
name=\"foo\"/><references>\n<ref name=\"foo\">BAR</ref>\n</references>");
add("selser", "<ref> defined in <references> [2,4,0]",
"v6kn5nr0bsh8h0k9\n\n<ref name=\"foo\"/>\n\nti4uisx86e34bo6r<references>\n<ref
name=\"foo\">BAR</ref>\n</references>");
diff --git a/tests/parserTests.txt b/tests/parserTests.txt
index 37e86cb..5c4c971 100644
--- a/tests/parserTests.txt
+++ b/tests/parserTests.txt
@@ -28096,6 +28096,17 @@
<span name="foo"></span>
!! end
+!! test
+New transclusion added after a list should be serialized after the list
+!! options
+parsoid=html2wt
+!! html/parsoid
+<ul><li>a</li></ul><span about="#mwt1" typeof="mw:Transclusion"
data-mw='{"parts":[{"template":{"target":{"wt":"echo","href":"./Template:echo"},"params":{"1":{"wt":"foo"}},"i":0}}]}'>foo</span>
+!! wikitext
+* a
+{{echo|foo}}
+!! end
+
# -----------------------------------------------------------------
# End of section for Parsoid-only html2wt tests for serialization
# of new content
--
To view, visit https://gerrit.wikimedia.org/r/356415
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings
Gerrit-MessageType: newchange
Gerrit-Change-Id: I017acc0400522489ab94ce69113c48c91d64ba32
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/services/parsoid
Gerrit-Branch: master
Gerrit-Owner: Subramanya Sastry <[email protected]>
_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits