Greetings,
As you might have seen on the Wikimedia tech bloghttps://blog.wikimedia.org/2013/03/11/lua-templates-faster-more-flexible-pages/(article included below) or the tech ambassadors listhttp://lists.wikimedia.org/pipermail/wikitech-ambassadors/2013-March/000171.html, a new functionality called "Lua" is being enabled on all Wikimedia sites today. Lua https://www.mediawiki.org/wiki/Lua is a scripting language that enables Wikimedia editors to write faster and more powerful MediaWiki templates.
If you have questions about how to convert existing templates to Lua (or how to create new ones), we'll be holding two support sessions on IRC next week: one on Wednesdayhttp://www.timeanddate.com/worldclock/fixedtime.html?hour=02&min=00&sec=0&day=20&month=03&year=2013(for Oceania, Asia & America) and one on Fridayhttp://www.timeanddate.com/worldclock/fixedtime.html?hour=18&min=00&sec=0&day=22&month=03&year=2013(for Europe, Africa & America); see m:IRC office hours https://meta.wikimedia.org/wiki/IRC_office_hours for details. If you can't make it, you can also get help at mw:Talk:Lua scripting https://www.mediawiki.org/wiki/Talk:Lua_scripting.
If you'd like to learn about this kind of events earlier in advance, consider becoming a Tech ambassadorhttps://meta.wikimedia.org/wiki/Tech/Ambassadorsby subscribing to the mailing list https://lists.wikimedia.org/mailman/listinfo/wikitech-ambassadors.
=================================
New Lua templates bring faster, more flexible pages to your wikihttps://blog.wikimedia.org/2013/03/11/lua-templates-faster-more-flexible-pages/ Posted by Sumana Harihareswara https://blog.wikimedia.org/author/sumanah/on March 11th, 2013
Starting Wednesday, March 13th, you’ll be able to make wiki pages even more useful, no matter what language you speak: we’re adding Luahttps://en.wikipedia.org/wiki/Lua_%28programming_language%29as 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 Scribuntohttps://www.mediawiki.org/wiki/Extension:Scribunto(the MediaWiki extension that enables this); it’s on several of the sites, including English Wikipedia https://en.wikipedia.org/wiki/Wikipedia:Lua, 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
MediaWiki developers introduced templates and parser functionshttps://www.mediawiki.org/wiki/Extension:ParserFunctionsyears 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 projecthttps://www.mediawiki.org/wiki/Lua_scriptingaims 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 Warcrafthttp://www.wowwiki.com/Luais 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 https://en.wikipedia.org/wiki/Module:Bananas). These individual modules are then invoked on template pages. The example: Template:Lua hello world https://en.wikipedia.org/wiki/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
Check out the basic “hello, world!” instructionshttps://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual#Getting_started, then look at Brad Jorsch’s short presentationhttps://commons.wikimedia.org/wiki/File:WMF_Tech_Talk_2013-02-28_slides_-_Scribunto_presentation.pdffor a basic example of how to convert a wikitext template into a Lua module. After that, try Tim Starling’s tutorialhttps://www.mediawiki.org/wiki/Lua_scripting/Tutorial .
To help you preview and test a converted template, try Special:TemplateSandboxhttps://www.mediawiki.org/wiki/Special:TemplateSandboxon 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árishttps://svn.wikimedia.org/svnroot/pywikipedia/trunk/pywikipedia/parserfunctioncount.py, 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 Wikipediahttps://en.wikipedia.org/wiki/Wikipedia:Lua_requests, possibly using Anomie’s Greasemonkey scripthttps://en.wikipedia.org/wiki/User:Anomie/PP-report-Greasemonkey-scriptto help you see the performance gains. On English Wikipedia, some of the templates have already been convertedhttps://en.wikipedia.org/wiki/Special:WhatLinksHere/Template:Lua_talk *—* feel free to reuse them on your wiki.
The Lua hub on mediawiki.org https://www.mediawiki.org/wiki/Lua has more information; please add to it. And enjoy your faster, more flexible templates!
*Sumana Harihareswara, Engineering Community Manager* =================================