mediawiki-extensions-Visual.../modules/ve-mw/ce/nodes/ve.ce.MWHieroNode.js
Ed Sanders 0d1617a627 Hieroglyphics support
Mostly as a demonstration of how easy this is with MWExtensionNode.

The icon was chosen with the following criteria:
1. Recognisable (the ankh is quite common in popular culture, right?)
2. Doesn't look idiotic to academics (I've consulted an Egyptology
   PhD and they can confirm it's not the glyph for penis)
3. Renders well at <16x16

That said it does look a little like a stick man...

Bug: 43118

Change-Id: I9f9e8af501401866bfeecf0eec3690a705fbd4db
2013-08-07 09:43:04 +00:00

51 lines
1.2 KiB
JavaScript

/*!
* VisualEditor ContentEditable MWHieroNode class.
*
* @copyright 2011-2013 VisualEditor Team and others; see AUTHORS.txt
* @license The MIT License (MIT); see LICENSE.txt
*/
/**
* ContentEditable MediaWiki hieroglyphics node.
*
* @class
* @extends ve.ce.MWExtensionNode
*
* @constructor
* @param {ve.dm.MWHieroNode} model Model to observe
* @param {Object} [config] Config options
*/
ve.ce.MWHieroNode = function VeCeMWHieroNode( model, config ) {
// Parent constructor
ve.ce.MWExtensionNode.call( this, model, config );
// DOM Changes
this.$.addClass( 've-ce-mwHieroNode' );
};
/* Inheritance */
ve.inheritClass( ve.ce.MWHieroNode, ve.ce.MWExtensionNode );
/* Static Properties */
ve.ce.MWHieroNode.static.name = 'mwHiero';
ve.ce.MWHieroNode.static.tagName = 'div';
/* Methods */
/** */
ve.ce.MWHieroNode.prototype.onParseSuccess = function ( deferred, response ) {
var data = response.visualeditor, contentNodes = $( data.content ).get();
deferred.resolve( contentNodes );
// Rerender after image load
this.$.find( 'img' ).on( 'load', ve.bind( function () {
this.emit( 'rerender' );
}, this ) );
};
/* Registration */
ve.ce.nodeFactory.register( ve.ce.MWHieroNode );