Subramanya Sastry has uploaded a new change for review. (
https://gerrit.wikimedia.org/r/398649 )
Change subject: Linter: Additional updates to multiline-html-table-in-list
......................................................................
Linter: Additional updates to multiline-html-table-in-list
* Handle HTML lists -- don't trigger linter issue there
* Handle dl/dt lists -- trigger linter issue there
* Added new tests
Change-Id: I33206f29cf9a9e6b9000091824eff2302d45bd32
---
M lib/wt2html/pp/handlers/linter.js
M tests/mocha/linter.js
2 files changed, 32 insertions(+), 5 deletions(-)
git pull ssh://gerrit.wikimedia.org:29418/mediawiki/services/parsoid
refs/changes/49/398649/1
diff --git a/lib/wt2html/pp/handlers/linter.js
b/lib/wt2html/pp/handlers/linter.js
index caa1891..c414d87 100644
--- a/lib/wt2html/pp/handlers/linter.js
+++ b/lib/wt2html/pp/handlers/linter.js
@@ -874,19 +874,27 @@
detectMultipleUnclosedFormattingTags(lints);
}
-function hasListAncestor(node) {
- while (node && node.nodeName !== 'LI') {
+function getWikitextListItemAncestor(node) {
+ while (node && !DU.isListItem(node)) {
node = node.parentNode;
}
+ // If the list item is a HTML list item, ignore it
// If the list item comes from references content, ignore it
- return node &&
!(/mw:Extension\/references/.test(node.parentNode.getAttribute('typeof')));
+ if (node && !DU.isLiteralHTMLNode(node) &&
+
!(/mw:Extension\/references/.test(node.parentNode.getAttribute('typeof')))
+ ) {
+ return node;
+ } else {
+ return null;
+ }
}
function logPHPParserBug(env, node, dp, tplInfo) {
+ var li;
if (!DU.isLiteralHTMLNode(node) ||
node.nodeName !== 'TABLE' ||
- !hasListAncestor(node) ||
+ !(li = getWikitextListItemAncestor(node)) ||
!/\n/.test(node.outerHTML)
) {
return;
@@ -901,7 +909,7 @@
templateInfo: templateInfo,
params: {
name: 'table',
- ancestorName: 'li',
+ ancestorName: li.nodeName.toLowerCase(),
}
};
env.log('lint/multiline-html-table-in-list', lintObj);
diff --git a/tests/mocha/linter.js b/tests/mocha/linter.js
index f1679db..a4f914f 100644
--- a/tests/mocha/linter.js
+++ b/tests/mocha/linter.js
@@ -912,6 +912,25 @@
result[0].params.should.have.a.property("ancestorName", "li");
});
});
+ it('should detect multiline HTML tables in lists (3)',
function() {
+ return parseWT(";
<table><tr><td>x</td></tr>\n</table>").then(function(result) {
+ result.should.have.length(1);
+
result[0].should.have.a.property("type", "multiline-html-table-in-list");
+
result[0].params.should.have.a.property("name", "table");
+
result[0].params.should.have.a.property("ancestorName", "dt");
+ });
+ });
+ it('should detect multiline HTML tables in lists (4)',
function() {
+ return parseWT(":
<table><tr><td>x</td></tr>\n</table>").then(function(result) {
+ result.should.have.length(1);
+
result[0].should.have.a.property("type", "multiline-html-table-in-list");
+
result[0].params.should.have.a.property("name", "table");
+
result[0].params.should.have.a.property("ancestorName", "dd");
+ });
+ });
+ it('should not detect multiline HTML tables in HTML
lists', function() {
+ return
expectEmptyResults("<ul><li><table>\n<tr><td>x</td></tr>\n</table>\n</li></ul>");
+ });
it('should not detect single-line HTML tables in
lists', function() {
return expectEmptyResults("*
<div><table><tr><td>x</td></tr></table></div>");
});
--
To view, visit https://gerrit.wikimedia.org/r/398649
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings
Gerrit-MessageType: newchange
Gerrit-Change-Id: I33206f29cf9a9e6b9000091824eff2302d45bd32
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