wiki.techinc.nl/resources/mediawiki.api/mediawiki.api.parse.js
Timo Tijhof 031910f7fe (bug 36783) Implement Promise interface in mediawiki.api module.
- 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
2012-07-08 20:56:28 +02:00

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 );