GWicke has uploaded a new change for review.
https://gerrit.wikimedia.org/r/62742
Change subject: WIP bug 48231: Avoid inserting metas and span wrappers in
foster-parenting position
......................................................................
WIP bug 48231: Avoid inserting metas and span wrappers in foster-parenting
position
This is not-yet working work in progress. Uploading mainly as a starting point
for further work on this bug later.
Bug: 48231
Change-Id: I9eefd9005c3552eba59c365fc3ddaae9166d2885
---
M js/lib/mediawiki.DOMPostProcessor.js
M js/lib/mediawiki.Util.js
2 files changed, 23 insertions(+), 3 deletions(-)
git pull ssh://gerrit.wikimedia.org:29418/mediawiki/extensions/Parsoid
refs/changes/42/62742/1
diff --git a/js/lib/mediawiki.DOMPostProcessor.js
b/js/lib/mediawiki.DOMPostProcessor.js
index 5f5962d..2afe5ea 100644
--- a/js/lib/mediawiki.DOMPostProcessor.js
+++ b/js/lib/mediawiki.DOMPostProcessor.js
@@ -936,6 +936,16 @@
}
}
+ // Avoid inserting span wrappers in foster-parenting position
+ if (tcStartPar.nodeName === 'TABLE' && !skipSpan) {
+ // move wrapping to next sibling
+ tcStart = tcStart.nextSibling;
+ if (DU.isAncestorOf(tcStart, range.end)) {
+ range.end = tcStart;
+ }
+ skipSpan = true;
+ }
+
if (!skipSpan) {
// wrap tcStart in a span.
var span = doc.createElement('span');
@@ -1548,7 +1558,12 @@
}
function findBuilderCorrectedTags(document, env) {
+ var editMode = env.conf.parsoid.editMode;
+
function addPlaceholderMeta( node, dp, name, opts ) {
+ if (editMode) {
+ return;
+ }
var src = dp.src;
if (!src) {
@@ -1688,7 +1703,7 @@
// Do we need to run auto-inserted
end-tag detection on c?
// -> Yes if we have tsr
// -> Yes if dont have tsr but end tag
is outside template
- if (dp.tsr ||
DU.endTagOutsideTemplate(c, dp)) {
+ if (!editMode && (dp.tsr ||
DU.endTagOutsideTemplate(c, dp))) {
// Detect auto-inserted end-tags
var metaNode =
findMetaShadowNode(c, 'mw:EndTag', cNodeName);
if (!metaNode) {
@@ -1721,7 +1736,7 @@
{
// Strip start-tag
marker metas that has its matching node
deleteNode(fc);
- } else {
+ } else if (!editMode) {
//console.log('autoInsertedStart:', c.outerHTML);
dp.autoInsertedStart =
true;
}
diff --git a/js/lib/mediawiki.Util.js b/js/lib/mediawiki.Util.js
index 82ab83b..22af189 100644
--- a/js/lib/mediawiki.Util.js
+++ b/js/lib/mediawiki.Util.js
@@ -248,7 +248,12 @@
isTableTag: function(token) {
var tc = token.constructor;
return (tc === pd.TagTk || tc === pd.EndTagTk) &&
-
['table','tbody','caption','th','tr','td'].indexOf(token.name) !== -1;
+ this.isTableTagName(token.name);
+ },
+
+ isTableTagName: function(name) {
+ var tableNames = {table:1, tbody:1, caption:1, th:1, tr:1,
td:1};
+ return tableNames[name.toLowerCase()];
},
isSolTransparent: function(token) {
--
To view, visit https://gerrit.wikimedia.org/r/62742
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings
Gerrit-MessageType: newchange
Gerrit-Change-Id: I9eefd9005c3552eba59c365fc3ddaae9166d2885
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/extensions/Parsoid
Gerrit-Branch: master
Gerrit-Owner: GWicke <[email protected]>
_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits