mediawiki
Multi-Instance Subtemplates in Lua
· ☕ 8 min read · ✍️ River
Multi-instance subtemplates are common in MediaWiki; when we're using Lua, they can be much more powerful than in wikitext.

Top Schedule
· ☕ 8 min read · ✍️ River
How I created a global site banner on Leaguepedia using the extension Header Footer and some JavaScript, but no api calls

Bot passwords & you (& your bot (& you))
· ☕ 8 min read · ✍️ River
What's a bot password? What's the difference between bot accounts and bot passwords? Why do I need all this anyway?

Adventures in caching primary keys
· ☕ 15 min read · ✍️ River
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.

Popups
· ☕ 25 min read · ✍️ River
Here's how I've built a framework for both static and lazily-loaded popups.

Highlighting disambiguations
· ☕ 29 min read · ✍️ River
Disambiguations are typically somewhat user-unfriendly; I describe my method for improving quality of life when disambiguation links do appear.

CharInsert: Why you should "char"
· ☕ 12 min read · ✍️ River
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.

Sublimetext for Mediawiki
· ☕ 13 min read · ✍️ River
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.

My EMWCon 2020 Talks
· ☕ 2 min read · ✍️ River
At EMWCon 2020, I gave one talk and hosted two Create Camp sessions, discussing different aspects of usage of Cargo and Lua in MediaWiki.

Gadgets for code organization
· ☕ 6 min read · ✍️ River
The Gadgets extension is a great way to organize code instead of using Common.css and Common.js for everything.

Lua Hooks System
· ☕ 8 min read · ✍️ River
I document my system of using hooks in Scribunto before removing it from my wiki.