mirror of
https://gerrit.wikimedia.org/r/mediawiki/extensions/VisualEditor
synced 2024-11-15 18:39:52 +00:00
a835c03bc1
Rather than meta-things being special kinds of nodes, they are now a separate class of things (MetaItems) along with Nodes and Annotations. * Created a generic ve.dm.MetaItem that meta items inherit from. There will be actual instances of this class as well in the upcoming meta group code. * Renamed MetaNode to AlienMetaItem, MWMetaNode to MWMetaItem, 'metaBlock'/'metaInline' to 'alienMeta' * Created a MetaItemFactory, handle meta items in the ModelRegistry * Kill ve.dm.Node.static.isMeta, now obsolete ve.dm.Converter: * Pass in the MetaItemFactory * Look up data element types in the ModelRegistry rather than the NodeFactory, because they can be either nodes or meta items * Document createDataElement() and make explicit that modelClass can be either a node or a meta item * Handle meta items in getDataFromDom() * In getDomFromData(), check the MetaItemFactory as well as the NodeFactory Change-Id: I893709c6f3aa00f85c1b905b70f9f4e597bdeada
39 lines
993 B
JavaScript
39 lines
993 B
JavaScript
/*!
|
|
* VisualEditor DataModel MWMetaItem class.
|
|
*
|
|
* @copyright 2011-2013 VisualEditor Team and others; see AUTHORS.txt
|
|
* @license The MIT License (MIT); see LICENSE.txt
|
|
*/
|
|
|
|
/**
|
|
* DataModel MW-specific meta item.
|
|
*
|
|
* @class
|
|
* @abstract
|
|
* @extends ve.dm.AlienMetaItem
|
|
* @constructor
|
|
* @param {Object} element Reference to element in meta-linmod
|
|
*/
|
|
ve.dm.MWMetaItem = function VeDmMWMetaItem( element ) {
|
|
// Parent constructor
|
|
ve.dm.AlienMetaItem.call( this, element );
|
|
};
|
|
|
|
/* Inheritance */
|
|
|
|
ve.inheritClass( ve.dm.MWMetaItem, ve.dm.AlienMetaItem );
|
|
|
|
/* Static Properties */
|
|
|
|
ve.dm.MWMetaItem.static.name = 'MWmeta';
|
|
|
|
ve.dm.MWMetaItem.static.matchRdfaTypes = [ /^mw:/ ];
|
|
|
|
// toDataElement inherited from AlienMetaItem, will return regular alienMeta elements but
|
|
// that's fine. This class is only here so that <meta>/<link> tags with an mw: type are correctly
|
|
// mapped to AlienMetaItem rather than AlienNode.
|
|
|
|
/* Registration */
|
|
|
|
ve.dm.modelRegistry.register( ve.dm.MWMetaItem );
|