diff options
Diffstat (limited to 'www/wiki/resources/src/mediawiki.legacy/wikibits.js')
-rw-r--r-- | www/wiki/resources/src/mediawiki.legacy/wikibits.js | 105 |
1 files changed, 105 insertions, 0 deletions
diff --git a/www/wiki/resources/src/mediawiki.legacy/wikibits.js b/www/wiki/resources/src/mediawiki.legacy/wikibits.js new file mode 100644 index 00000000..27d049eb --- /dev/null +++ b/www/wiki/resources/src/mediawiki.legacy/wikibits.js @@ -0,0 +1,105 @@ +/** + * MediaWiki legacy wikibits + */ +( function ( mw, $ ) { + var msg, + loadedScripts = {}; + + function wikiUrlencode( page ) { + return encodeURIComponent( String( page ) ) + .replace( /'/g, '%27' ) + .replace( /%20/g, '_' ) + // wfUrlencode replacements + .replace( /%3B/g, ';' ) + .replace( /%40/g, '@' ) + .replace( /%24/g, '$' ) + .replace( /%21/g, '!' ) + .replace( /%2A/g, '*' ) + .replace( /%28/g, '(' ) + .replace( /%29/g, ')' ) + .replace( /%2C/g, ',' ) + .replace( /%2F/g, '/' ) + .replace( /%7E/g, '~' ) + .replace( /%3A/g, ':' ); + } + + /** + * @deprecated since 1.17 Use jQuery instead + */ + mw.log.deprecate( window, 'addOnloadHook', function ( fn ) { + $( function () { fn(); } ); + }, 'Use jQuery instead.' ); + + /** + * Wikipage import methods + * + * See https://www.mediawiki.org/wiki/ResourceLoader/Legacy_JavaScript#wikibits.js + */ + + /** + * @deprecated since 1.17 Use mw.loader instead. Warnings added in 1.25. + * @param {string} url + * @return {HTMLElement} Script tag + */ + function importScriptURI( url ) { + var s; + if ( loadedScripts[ url ] ) { + return null; + } + loadedScripts[ url ] = true; + s = document.createElement( 'script' ); + s.setAttribute( 'src', url ); + document.head.appendChild( s ); + return s; + } + + function importScript( page ) { + var uri = mw.config.get( 'wgScript' ) + '?title=' + wikiUrlencode( page ) + + '&action=raw&ctype=text/javascript'; + return importScriptURI( uri ); + } + + /** + * @deprecated since 1.17 Use mw.loader instead. Warnings added in 1.25. + * @param {string} url + * @param {string} media + * @return {HTMLElement} Link tag + */ + function importStylesheetURI( url, media ) { + var l = document.createElement( 'link' ); + l.rel = 'stylesheet'; + l.href = url; + if ( media ) { + l.media = media; + } + document.head.appendChild( l ); + return l; + } + + function importStylesheet( page ) { + var uri = mw.config.get( 'wgScript' ) + '?title=' + wikiUrlencode( page ) + + '&action=raw&ctype=text/css'; + return importStylesheetURI( uri ); + } + + msg = 'Use mw.loader instead.'; + mw.log.deprecate( window, 'loadedScripts', loadedScripts, msg ); + mw.log.deprecate( window, 'importScriptURI', importScriptURI, msg ); + mw.log.deprecate( window, 'importStylesheetURI', importStylesheetURI, msg ); + // Not quite deprecated yet. + window.importScript = importScript; + window.importStylesheet = importStylesheet; + + /** + * Replace document.write/writeln with basic html parsing that appends + * to the <body> to avoid blanking pages. Added JavaScript will not run. + * + * @deprecated since 1.26 + */ + [ 'write', 'writeln' ].forEach( function ( method ) { + mw.log.deprecate( document, method, function () { + $( 'body' ).append( $.parseHTML( Array.prototype.join.call( arguments, '' ) ) ); + }, 'Use jQuery or mw.loader.load instead.', 'document.' + method ); + } ); + +}( mediaWiki, jQuery ) ); |