- Deprecates 'ok'/'err' properties. They still work, but are no longer mandatory. Instead the Promise interface should used. - See unit tests for good examples of how it works. http://alpha.dev/mediawiki/core/wiki/Special:JavaScriptTest/qunit?module=mediawiki.api - Migrated submodule "mediawiki.api.parse" as example. Other mediawiki.api.* submodules will be migrated later. Change-Id: I4d8428124598093f220dd28a8cbf861686ab61a7
42 lines
961 B
JavaScript
42 lines
961 B
JavaScript
/**
|
|
* mw.Api methods for parsing wikitext.
|
|
*/
|
|
( function ( mw, $ ) {
|
|
|
|
$.extend( mw.Api.prototype, {
|
|
/**
|
|
* Convinience method for 'action=parse'. Parses wikitext into HTML.
|
|
*
|
|
* @param wikiText {String}
|
|
* @param ok {Function} [optional] deprecated (success callback)
|
|
* @param err {Function} [optional] deprecated (error callback)
|
|
* @return {jQuery.Promise}
|
|
*/
|
|
parse: function( wikiText, ok, err ) {
|
|
var apiDeferred = $.Deferred();
|
|
|
|
// Backwards compatibility (< MW 1.20)
|
|
if ( ok ) {
|
|
apiDeferred.done( ok );
|
|
}
|
|
if ( err ) {
|
|
apiDeferred.fail( err );
|
|
}
|
|
|
|
this.get( {
|
|
action: 'parse',
|
|
text: wikiText
|
|
} )
|
|
.done( function ( data ) {
|
|
if ( data.parse && data.parse.text && data.parse.text['*'] ) {
|
|
apiDeferred.resolve( data.parse.text['*'] );
|
|
}
|
|
} )
|
|
.fail( apiDeferred.reject );
|
|
|
|
// Return the promise
|
|
return apiDeferred.promise();
|
|
}
|
|
} );
|
|
|
|
} )( mediaWiki, jQuery );
|