User:Tokenzero/infoboxJournal.js
/**
* infoboxJournal.js
* One-click adds or normalizes existing infobox-journal templates.
*/
//
(async function($) {
'use strict';
// Only enable in Main and Draft namespaces, and on User:*sandbox* pages.
if (!['', 'Draft', 'User'].includes(mw.config.get('wgCanonicalNamespace')))
return;
if (mw.config.get('wgCanonicalNamespace') === 'User' &&
!mw.config.get('wgTitle').includes('andbox'))
return;
/**
* Get full URL to script/stylesheet/etc. (to raw file).
*
* @param {string} pageName
* @param {object} [params]
* @returns {string}
*/
function getRawUrl(pageName, params) {
params = params || {};
params.action = 'raw';
params.ctype = params.ctype || pageName.includes('.css') ? 'text/css' : 'text/javascript';
return mw.util.getUrl(pageName, params);
}
/**
* Asynchronously load a javascript ES6 module from pageName.
* The script is loaded as a new