Lua scripting
This page is obsolete. It is being retained for archival purposes. It may document extensions or features that are obsolete and/or no longer supported. Do not rely on the information here being up-to-date. You might be looking for Lua instead. |
Lua scripting
Support for Lua as a scripting language for MediaWiki end-users
|
Lua is supported as a scripting language in all Wikimedia Foundation sites (since March 2013), via the Scribunto extension. Lua modules are maintained in the Module: namespace; you can see recent changes to Lua modules in English Wikipedia, for example. See also the tutorial and the reference manual.
Rationale
[edit]Templates and ParserFunctions were introduced to allow end users of MediaWiki to replicate content easily and build tools using basic logic, effectively turning wikitext into a limited programming language.
However, complex templates have caused performance issues and bottlenecks.
This 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 ParserFunctions-based logic.
See also Scripting, Extension:Scribunto.
The example of Lua's use in World of Warcraft (WoW) is promising; even novices without any programming experience were able to make large changes to their graphical experiences by quickly learning some Lua.
Open tasks
[edit]- Product tasks
- Where are the lists of templates that need to be converted? Help wikis gather those lists, and link to them on this page. For instance, English Wikipedia lists its Lua requests here. (Once parsercountfunction.py is available again in Pywikibot 3.0 you could also help create those lists to find wikitext templates that currently parse slowly and thus would be worth converting to Lua.)
- Improve the "getting started" part of the Lua reference manual in response to novice developers' requests.
- Spread the word about available reference material (such as that linked to in the blog post).
Documents
[edit]- Extension:Scribunto - MediaWiki extension page for this tool
- Extension:Scribunto/Lua reference manual - Documentation for Lua as available in MediaWiki.
- User requirements: notes
- Status updates
- Tutorial on using Lua for MediaWiki templates
- Planning documents:
- Software design document: Explanation of why Tim's preferred language is Lua
- /Benchmarking