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

Reply via email to