Catrope has uploaded a new change for review. https://gerrit.wikimedia.org/r/50022
Change subject: Add .static.storeHTMLAttributes ...................................................................... Add .static.storeHTMLAttributes Defaults to true, but set to false, so we don't do redundant work for aliens. Change-Id: If35db3a67afd78124b4b2b46bb78ad60cbac46f5 --- M modules/ve/dm/nodes/ve.dm.AlienNode.js M modules/ve/dm/ve.dm.Converter.js M modules/ve/dm/ve.dm.Node.js 3 files changed, 20 insertions(+), 1 deletion(-) git pull ssh://gerrit.wikimedia.org:29418/mediawiki/extensions/VisualEditor refs/changes/22/50022/1 diff --git a/modules/ve/dm/nodes/ve.dm.AlienNode.js b/modules/ve/dm/nodes/ve.dm.AlienNode.js index e6b195b..24bb9b5 100644 --- a/modules/ve/dm/nodes/ve.dm.AlienNode.js +++ b/modules/ve/dm/nodes/ve.dm.AlienNode.js @@ -31,6 +31,8 @@ ve.dm.AlienNode.static.matchTagNames = []; +ve.dm.AlienNode.static.storeHTMLAttributes = false; + ve.dm.AlienNode.static.toDataElement = function ( domElement, context ) { // We generate alienBlock elements for block tags and alienInline elements for // inline tags; unless we're in a content location, in which case we have no choice diff --git a/modules/ve/dm/ve.dm.Converter.js b/modules/ve/dm/ve.dm.Converter.js index 2b8279a..1e455d5 100644 --- a/modules/ve/dm/ve.dm.Converter.js +++ b/modules/ve/dm/ve.dm.Converter.js @@ -171,7 +171,10 @@ } dataElement = this.elements.toDataElement[domElementType]( domElement ); domElementAttributes = domElement.attributes; - if ( domElementAttributes.length ) { + if ( + dataElement && ve.dm.nodeFactory.lookup( dataElement.type ).static.storeHTMLAttributes && + domElementAttributes.length + ) { dataElementAttributes = dataElement.attributes = dataElement.attributes || {}; // Include all attributes and prepend 'html/0/' to each attribute name for ( i = 0; i < domElementAttributes.length; i++ ) { diff --git a/modules/ve/dm/ve.dm.Node.js b/modules/ve/dm/ve.dm.Node.js index b284fe4..5a1f6bc 100644 --- a/modules/ve/dm/ve.dm.Node.js +++ b/modules/ve/dm/ve.dm.Node.js @@ -151,6 +151,20 @@ ve.dm.Node.static.isMeta = false; /** + * Whether HTML attributes should be preserved for this node type. If true, the HTML attributes + * of the DOM elements will be stored as linear model attributes. The attribute names be + * html/0/attrName, where attrName is the name of the attribute. + * + * This should generally be enabled, except for node types that store their entire HTML in an + * attribute. + * + * @static + * @property {Boolean} static.storeHTMLAttributes + * @inheritable + */ +ve.dm.Node.static.storeHTMLAttributes = true; + +/** * Whether this node type has a wrapping element in the linear model. Most node types are wrapped, * only special node types are not wrapped. * -- To view, visit https://gerrit.wikimedia.org/r/50022 To unsubscribe, visit https://gerrit.wikimedia.org/r/settings Gerrit-MessageType: newchange Gerrit-Change-Id: If35db3a67afd78124b4b2b46bb78ad60cbac46f5 Gerrit-PatchSet: 1 Gerrit-Project: mediawiki/extensions/VisualEditor Gerrit-Branch: master Gerrit-Owner: Catrope <roan.katt...@gmail.com> _______________________________________________ MediaWiki-commits mailing list MediaWiki-commits@lists.wikimedia.org https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits