Esanders has uploaded a new change for review.
https://gerrit.wikimedia.org/r/101231
Change subject: Add useful HTML in toDomElements for refs and templates.
......................................................................
Add useful HTML in toDomElements for refs and templates.
For the benefit of pasting out of VE.
Use data-ve-ignore where necessary to avoid the HTML being
used on the way back in to VE.
Change-Id: Iabe678c4246c1d1f51abb058b6e750811fdf9bea
---
M modules/ve-mw/dm/nodes/ve.dm.MWReferenceNode.js
M modules/ve-mw/dm/nodes/ve.dm.MWTransclusionNode.js
2 files changed, 22 insertions(+), 7 deletions(-)
git pull ssh://gerrit.wikimedia.org:29418/mediawiki/extensions/VisualEditor
refs/changes/31/101231/1
diff --git a/modules/ve-mw/dm/nodes/ve.dm.MWReferenceNode.js
b/modules/ve-mw/dm/nodes/ve.dm.MWReferenceNode.js
index adedc22..3ffd78e 100644
--- a/modules/ve-mw/dm/nodes/ve.dm.MWReferenceNode.js
+++ b/modules/ve-mw/dm/nodes/ve.dm.MWReferenceNode.js
@@ -187,6 +187,10 @@
}
} else {
el.setAttribute( 'data-mw', JSON.stringify( mwData ) );
+ // HTML for the external clipboard, it will be ignored by the
converter
+ $( el ).append(
+ $( '<sup>' ).text( this.getIndexLabel( dataElement,
converter.internalList ) )
+ );
}
return [ el ];
diff --git a/modules/ve-mw/dm/nodes/ve.dm.MWTransclusionNode.js
b/modules/ve-mw/dm/nodes/ve.dm.MWTransclusionNode.js
index f7e0733..52b7725 100644
--- a/modules/ve-mw/dm/nodes/ve.dm.MWTransclusionNode.js
+++ b/modules/ve-mw/dm/nodes/ve.dm.MWTransclusionNode.js
@@ -105,20 +105,31 @@
return ve.copyDomElements(
dataElement.attributes.originalDomElements, doc );
} else {
if ( dataElement.attributes.originalDomElements ) {
- el = doc.createElement(
dataElement.attributes.originalDomElements[0].nodeName );
+ els = [ doc.createElement(
dataElement.attributes.originalDomElements[0].nodeName ) ];
} else {
- el = doc.createElement( 'span' );
+ els = [ doc.createElement( 'span' ) ];
+ // For the clipboard use the current DOM contents but
mark is ignored
+ // for the converter
+ currentDom = converter.getStore().value( index );
+ if ( currentDom ) {
+ currentDom = ve.copyDomElements( currentDom,
doc );
+ // i = 0 is the span
+ for ( i = 1, len = currentDom.length; i < len;
i++ ) {
+ currentDom[i].setAttribute(
'data-ve-ignore', 'true' );
+ els.push( currentDom[i] );
+ }
+ }
}
// All we need to send back to Parsoid is the original
transclusion marker, with a
// reconstructed data-mw property.
- el.setAttribute( 'typeof', 'mw:Transclusion' );
- el.setAttribute( 'data-mw', JSON.stringify(
dataElement.attributes.mw ) );
- // Mark the element as not having a generated contents with it
in case it is
+ els[0].setAttribute( 'typeof', 'mw:Transclusion' );
+ els[0].setAttribute( 'data-mw', JSON.stringify(
dataElement.attributes.mw ) );
+ // Mark the element as not having valid generated contents with
it in case it is
// inserted into another editor (e.g. via paste).
- el.setAttribute( 'data-ve-no-generated-contents', true );
+ els[0].setAttribute( 'data-ve-no-generated-contents', true );
// TODO: Include last-known generated contents in the output
for rich
// paste into a non-VE editor
- return [ el ];
+ return els;
}
};
--
To view, visit https://gerrit.wikimedia.org/r/101231
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings
Gerrit-MessageType: newchange
Gerrit-Change-Id: Iabe678c4246c1d1f51abb058b6e750811fdf9bea
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