New Lua templates bring faster, more flexible pages to your wiki – Diff
Skip to content
Starting Wednesday, March 13th, you’ll be able to make wiki pages even more useful, no matter what language you speak: we’re adding
Lua
as a templating language. This will make it easier for you to create and change infoboxes, tables, and other useful MediaWiki templates. We’ve already started to deploy
Scribunto
(the MediaWiki extension that enables this); it’s on several of the sites,
including English Wikipedia
, right now.
You’ll find this useful for performing more complex tasks for which templates are too complex or slow
common examples include numeric computations, string manipulation and parsing, and decision trees. Even if you don’t write templates, you’ll enjoy seeing pages load faster and with more interesting ways to present information.
Background
The text of English Wikipedia’s string length measurement template, simplified.
MediaWiki developers introduced templates and
parser functions
years ago to allow end-users of MediaWiki to replicate content easily and build tools using basic logic. Along the way, we found that we were turning wikitext into a limited programming language. Complex templates have caused performance issues and bottlenecks, and it’s difficult for users to write and understand templates. Therefore, the
Lua scripting project
aims to make it possible for MediaWiki end-users to use a proper scripting language that will be more powerful and efficient than ad-hoc, parser functions-based logic. The example of Lua’s
use in World of Warcraft
is promising; even novices with no programming experience have been able to make large changes to their graphical experiences by quickly learning some Lua.
Lua on your wiki
As of March 13th, you’ll be able to use Lua on your home wiki (if it’s not already enabled). Lua code can be embedded into wiki templates by employing the
{{#invoke:}}
parser function provided by the Scribunto MediaWiki extension. The Lua source code is stored in pages called modules (e.g.,
Module:Bananas
). These individual modules are then invoked on template pages. The example:
Template:Lua hello world
uses the code {{#invoke:Bananas|hello}} to print the text “Hello, world!”. So, if you start seeing edits in the Module namespace, that’s what’s going on.
Getting started
The strlen template as converted to Lua.
Check out
the basic “hello, world!” instructions
, then look at
Brad Jorsch’s short presentation
for a basic example of how to convert a wikitext template into a Lua module. After that, try
Tim Starling’s tutorial
To help you preview and test a converted template, try
Special:TemplateSandbox
on your wiki. With it, you can preview a page using sandboxed versions of templates and modules, allowing for easy testing before you make the sandbox code live.
Where to start? If you use pywikipedia, try
parsercountfunction.py by Bináris
, which helps you find wikitext templates that currently parse slowly and thus would be worth converting to Lua. Try fulfilling
open requests for conversion on English Wikipedia
, possibly using
Anomie’s Greasemonkey script
to help you see the performance gains. On English Wikipedia,
some of the templates have already been converted
feel free to reuse them on your wiki.
The Lua hub on mediawiki.org
has more information; please add to it. And enjoy your faster, more flexible templates!
Sumana Harihareswara, Engineering Community Manager
Share this:
Share on Mastodon (Opens in new window)
Mastodon
Share on Bluesky (Opens in new window)
Bluesky
Archive notice:
This is an archived post from blog.wikimedia.org, which operated under different editorial and content guidelines than Diff.
Can you help us translate this article?
In order for this article to reach as many people as possible we would like your help. Can you translate this article to get the message out?
Start translation
Related
Related
Welcome to Diff
Welcome to Diff, a community blog by – and for – the Wikimedia movement. Join Diff today to share stories from your community and comment on articles. We want to hear your voice!
Subscribe to Diff via Email
Wikimedia News
Wikimedia Foundation News
“Cinematic intensity”: The winners of Wiki Loves Earth 2025
2 March 2026
by Wikimedia Foundation
Wikimedia Technology Blog
A Tech Blog Diff
24 February 2026
by LGoto
Down the Rabbit Hole
Announcing Wikipedia’s top 25 most-read articles of 2025
2 December 2025
by Wikimedia
Report this comment
wpDiscuz
You are going to send email to
Move Comment
US