Highlight Links In Category is a very small MediaWiki extension that applies classes to links based on the links’ targets’ categories. It has a number of incredibly nice use cases; here I give some examples.
The pattern of store -> query -> store -> query can lead to caching nightmares when working with Cargo or SMW in MediaWiki. This is the story of how I dealt with one.
Popup content can offer users a wide range of dynamic content options on a page - and lazily-loading popup content can do this without increasing loading times. Here’s how I’ve built a framework for both static and lazily-loaded popups.
Disambiguations are typically somewhat user-unfriendly, especially when a wiki has a relatively low percentage of pages that are disambiguated and so the presence of one is unexpected. Here I describe my method for improving quality of life when disambiguation links do appear.
CharInsert is one of my favorite extensions. Here’s how I made a Lua wrapper for it to create a user-friendly interface for anyone to add snippets they want.
The “Mediawiker” plugin makes Sublime the best IDE-like experience for editing wikis, particularly when one is primarily writing Scribunto/Lua modules. Here’s how I’ve set up my environment.
At EMWCon 2020, I gave one talk and hosted two Create Camp sessions, discussing different aspects of usage of Cargo and Lua in MediaWiki.
Though it’s mostly used as a way to let wikis have opt-in or opt-out CSS and JS features for users, the Gadgets extension is a great way to organize code instead of using Common.css and Common.js for everything.
A system of hooks in Scribunto can be reasonable to use if you have a wikifarm with synced code that occasionally needs to be slightly modified on one or more wikis. I found the system more complicated than it was worth, but I’m documenting it here before I remove it.
Using the MediaWiki API doesn’t require coding. The on-wiki GUI provided at Special:ApiSandbox allows you to familiarize yourself with available actions, test queries, and run simple batch jobs without writing a single line of code!
Managing complexity using Cargo with MediaWiki to track League of Legends esports roster changes.
This is not a post about how to add Cargo docstrings on table pages. Rather, it’s a post about how to create workarounds in MediaWiki in a reasonably well-controlled manner.