Merge "Preferences: Use explicit string as returnto param"
[mediawiki.git] / resources / mediawiki.api / mediawiki.api.parse.js
blobe8d1b3e6cb03b1c87be2e495fe7fbc0cae9c50cc
1 /**
2  * mw.Api methods for parsing wikitext.
3  */
4 ( function ( mw, $ ) {
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();
18                         // Backwards compatibility (< MW 1.20)
19                         if ( ok ) {
20                                 apiDeferred.done( ok );
21                         }
22                         if ( err ) {
23                                 apiDeferred.fail( err );
24                         }
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 );
37                         // Return the promise
38                         return apiDeferred.promise();
39                 }
40         } );
42 }( mediaWiki, jQuery ) );