Esanders has uploaded a new change for review.
https://gerrit.wikimedia.org/r/279730
Change subject: Filter out auto-generated reference lists
......................................................................
Filter out auto-generated reference lists
Bug: T101553
Bug: T127664
Change-Id: Idc8c6f30ccdd5eaf76a3f7c1b923d8656ca36413
Depends-On: I24250845e97acb4b7de9c495cb46dbd28fc8817e
---
M modules/ve-mw/ce/nodes/ve.ce.MWTransclusionNode.js
M modules/ve-mw/ui/datatransferhandlers/ve.ui.MWWikitextStringTransferHandler.js
2 files changed, 22 insertions(+), 11 deletions(-)
git pull ssh://gerrit.wikimedia.org:29418/mediawiki/extensions/VisualEditor
refs/changes/30/279730/1
diff --git a/modules/ve-mw/ce/nodes/ve.ce.MWTransclusionNode.js
b/modules/ve-mw/ce/nodes/ve.ce.MWTransclusionNode.js
index 2f0cdb5..29bdc04 100644
--- a/modules/ve-mw/ce/nodes/ve.ce.MWTransclusionNode.js
+++ b/modules/ve-mw/ce/nodes/ve.ce.MWTransclusionNode.js
@@ -122,8 +122,18 @@
// Work around https://github.com/jquery/jquery/issues/1997
contentNodes = $.parseHTML( response.visualeditor.content,
this.getModelHtmlDocument() ) || [];
+ // Filter out auto-generated items, e.g. reference lists
+ contentNodes = contentNodes.filter( function ( node ) {
+ var dataMw = node.nodeType === Node.ELEMENT_NODE &&
+ node.hasAttribute( 'data-mw' ) &&
+ JSON.parse( node.getAttribute( 'data-mw' ) );
+ if ( dataMw && dataMw.autoGenerated ) {
+ return false;
+ }
+ return true;
+ } );
// HACK: if $content consists of a single paragraph, unwrap it.
- // We have to do this because the PHP parser wraps everything in <p>s,
and inline templates
+ // We have to do this because the parser wraps everything in <p>s, and
inline templates
// will render strangely when wrapped in <p>s.
if ( contentNodes.length === 1 && contentNodes[ 0
].nodeName.toLowerCase() === 'p' ) {
contentNodes = Array.prototype.slice.apply( contentNodes[ 0
].childNodes );
diff --git
a/modules/ve-mw/ui/datatransferhandlers/ve.ui.MWWikitextStringTransferHandler.js
b/modules/ve-mw/ui/datatransferhandlers/ve.ui.MWWikitextStringTransferHandler.js
index 5bd7607..8a4bb88 100644
---
a/modules/ve-mw/ui/datatransferhandlers/ve.ui.MWWikitextStringTransferHandler.js
+++
b/modules/ve-mw/ui/datatransferhandlers/ve.ui.MWWikitextStringTransferHandler.js
@@ -95,21 +95,22 @@
// Don't immediately chain, as this.parsoidRequest must be abortable
this.parsoidRequest.then( function ( response ) {
- var doc, surface;
+ var htmlDoc, doc, surface;
+
if ( ve.getProp( response, 'visualeditor', 'result' ) !==
'success' ) {
return failure();
}
- doc = handler.surface.getModel().getDocument().newFromHtml(
- response.visualeditor.content,
- {
- external: {
- // Blacklist reference lists as they
were likely generated by mistake, see T101553
- blacklist: [ 'mwReferencesList' ]
- }
- // No additional sanitization, since HTML is
from Parsoid
+ htmlDoc = ve.createDocumentFromHtml(
response.visualeditor.content );
+ // Filter out auto-generated items, e.g. reference lists
+ $( htmlDoc.body ).find( '[data-mw]' ).each( function () {
+ var dataMw = JSON.parse( this.getAttribute( 'data-mw' )
);
+ if ( dataMw.autoGenerated ) {
+ this.remove();
}
- );
+ } );
+
+ doc = handler.surface.getModel().getDocument().newFromHtml(
htmlDoc );
if ( !doc.data.hasContent() ) {
return failure();
--
To view, visit https://gerrit.wikimedia.org/r/279730
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings
Gerrit-MessageType: newchange
Gerrit-Change-Id: Idc8c6f30ccdd5eaf76a3f7c1b923d8656ca36413
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/extensions/VisualEditor
Gerrit-Branch: master
Gerrit-Owner: Esanders <[email protected]>
_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits