· ☕ 25 min read · ✍️ River
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.

Highlighting disambiguations
· ☕ 29 min read · ✍️ River
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: 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.

Gadgets for code organization
· ☕ 6 min read · ✍️ River
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.

How to add Cargo docstrings on table pages
· ☕ 6 min read · ✍️ River
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.