dev

My work

Authored
Co-authored
Contributed
Page src Primary techniques
SelectContent .js jQuery basics
WdsTooltips .js jQuery basics
SkinSwitch .js localStorage, API GET
MultipleFileDelete .js JS object, API POST, BannerNotification
AjaxDiff .js RegExp, CustomModal, API requests
WikiInfo .js JS Date, Ajax cross-domain request
ProgressBar .css
OnPageForms .js jQuery.load
ArticleRating .js JSON, API requests
FloatingToc .js jQuery UI, shortcut key config
MultiUpload .js Ajax multipart/form-data upload, special page creation, BannerNotification
FandomXP .css
FandomUtils Github ES6, Svelte, browser extension development
AjaxPoll .js jQuery, API GET + POST

Common snippets

Common code snippets and practice I use frequently:

/*********************************************
IIFE - Immediately Invoked Function Expression
*********************************************/
(function () {
  // code
})();

/*********************
double-load protection
**********************/
if (window.Module.Loaded) {
  return;
}
window.Module.Loaded = true;

/*************
Configurations
**************/
var config = $.extend(
  {
    // default configs
  },
  UserConfig
);

/*************************************************************
Alternative importArticle (works independently of the platform)
**************************************************************/
function importArticle(page) {
  const isScript = page.split(".").pop() === "js";
  return $.ajax({
    url: mw.config.get("wgLoadScript"),
    data: {
      mode: "articles",
      only: isScript ? "scripts" : "styles",
      articles: "u:dev:MediaWiki:" + page,
    },
  }).then(function (content) {
    $("head").append($(isScript ? "<script>" : "<style>").html(content));
  });
}

// Usage
importArticle("i18n.js").then(function () {
  // window.dev.i18n is accessible
});

// Multiple imports
var i18n = importArticle("I18n-js/code.js");
var colors = importArticle("Colors/code.js");
var customCSS = importArticle("MyScript.css");

$.when(i18n, colors, customCSS).then(function () {
  // window.dev.i18n is accessible
  // window.dev.colors is accessible
});

Global profile

Community Central