Merge "(bug 30445) Update 'revdelete-reason-dropdown'"
[lhc/web/wiklou.git] / resources / mediawiki.api / mediawiki.api.parse.js
1 /**
2 * mw.Api methods for parsing wikitext.
3 */
4 ( function ( mw, $ ) {
5
6 $.extend( mw.Api.prototype, {
7 /**
8 * Convinience method for 'action=parse'. Parses wikitext into HTML.
9 *
10 * @param wikiText {String}
11 * @param ok {Function} [optional] deprecated (success callback)
12 * @param err {Function} [optional] deprecated (error callback)
13 * @return {jQuery.Promise}
14 */
15 parse: function ( wikiText, ok, err ) {
16 var apiDeferred = $.Deferred();
17
18 // Backwards compatibility (< MW 1.20)
19 if ( ok ) {
20 apiDeferred.done( ok );
21 }
22 if ( err ) {
23 apiDeferred.fail( err );
24 }
25
26 this.get( {
27 action: 'parse',
28 text: wikiText
29 } )
30 .done( function ( data ) {
31 if ( data.parse && data.parse.text && data.parse.text['*'] ) {
32 apiDeferred.resolve( data.parse.text['*'] );
33 }
34 } )
35 .fail( apiDeferred.reject );
36
37 // Return the promise
38 return apiDeferred.promise();
39 }
40 } );
41
42 }( mediaWiki, jQuery ) );