Arlolra has uploaded a new change for review.

  https://gerrit.wikimedia.org/r/193025

Change subject: Start walking up before tpl when serializing lists
......................................................................

Start walking up before tpl when serializing lists

 * If we wait until finding the first child that's not a list before
   getting the list bullets we may reach a list element that has
   template info, in which case we'll fall to template handler and that
   chain will never be walked.

 * This is what's happening on the epitaph in,
     /hewiki/יעקב_משה_חרל"פ?oldid=16519643
   The template only knows about the one colon it has subsumed.

 * Still need to come up with a suitable test case.

Change-Id: Ib1766827237e2a827ec3d40b550450040431a7b3
---
M lib/wts.TagHandlers.js
1 file changed, 4 insertions(+), 4 deletions(-)


  git pull ssh://gerrit.wikimedia.org:29418/mediawiki/services/parsoid 
refs/changes/25/193025/1

diff --git a/lib/wts.TagHandlers.js b/lib/wts.TagHandlers.js
index bfd7536..d684cd2 100644
--- a/lib/wts.TagHandlers.js
+++ b/lib/wts.TagHandlers.js
@@ -238,7 +238,7 @@
                                firstChildElt = 
DU.firstNonSepChildNode(firstChildElt);
                        }
 
-                       if (!firstChildElt || ! (firstChildElt.nodeName in 
firstChildNames)) {
+                       if (!firstChildElt || !(firstChildElt.nodeName in 
firstChildNames) || DU.isTplOrExtToplevelNode(firstChildElt)) {
                                cb(getListBullets(node), node);
                        }
                        var liHandler = 
state.serializer.wteHandlers.liHandler.bind(state.serializer.wteHandlers, node);
@@ -417,7 +417,7 @@
        li: {
                handle: function (node, state, cb) {
                        var firstChildElement = DU.firstNonSepChildNode(node);
-                       if (!DU.isList(firstChildElement)) {
+                       if (!DU.isList(firstChildElement) || 
DU.isTplOrExtToplevelNode(firstChildElement)) {
                                cb(getListBullets(node), node);
                        }
                        var liHandler = 
state.serializer.wteHandlers.liHandler.bind(state.serializer.wteHandlers, node);
@@ -447,7 +447,7 @@
        dt: {
                handle: function (node, state, cb) {
                        var firstChildElement = DU.firstNonSepChildNode(node);
-                       if (!DU.isList(firstChildElement)) {
+                       if (!DU.isList(firstChildElement) || 
DU.isTplOrExtToplevelNode(firstChildElement)) {
                                cb(getListBullets(node), node);
                        }
                        var liHandler = 
state.serializer.wteHandlers.liHandler.bind(state.serializer.wteHandlers, node);
@@ -475,7 +475,7 @@
        dd: {
                handle: function (node, state, cb) {
                        var firstChildElement = DU.firstNonSepChildNode(node);
-                       if (!DU.isList(firstChildElement)) {
+                       if (!DU.isList(firstChildElement) || 
DU.isTplOrExtToplevelNode(firstChildElement)) {
                                // XXX: handle stx: row
                                if ( DU.getDataParsoid( node ).stx === 'row' ) {
                                        cb(':', node);

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

Gerrit-MessageType: newchange
Gerrit-Change-Id: Ib1766827237e2a827ec3d40b550450040431a7b3
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

Reply via email to