[Wikimedia-l] [Wikimedia Announcements] Lua scripting enabled today on all wikis

Guillaume Paumier gpaumier at wikimedia.org
Wed Mar 13 18:38:08 UTC 2013


Greetings,

As you might have seen on the Wikimedia tech
blog<https://blog.wikimedia.org/2013/03/11/lua-templates-faster-more-flexible-pages/>(article
included below) or the tech
ambassadors list<http://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 Wednesday<http://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 Friday<http://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
ambassador<https://meta.wikimedia.org/wiki/Tech/Ambassadors>by
subscribing to the mailing
list <https://lists.wikimedia.org/mailman/listinfo/wikitech-ambassadors>.


=================================

New Lua templates bring faster, more flexible pages to your
wiki<https://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
Lua<https://en.wikipedia.org/wiki/Lua_%28programming_language%29>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<https://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
functions<https://www.mediawiki.org/wiki/Extension:ParserFunctions>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<https://www.mediawiki.org/wiki/Lua_scripting>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<http://www.wowwiki.com/Lua>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 <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!”
instructions<https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual#Getting_started>,
then look at Brad Jorsch’s short
presentation<https://commons.wikimedia.org/wiki/File:WMF_Tech_Talk_2013-02-28_slides_-_Scribunto_presentation.pdf>for
a basic example of how to convert a wikitext template into a Lua
module. After that, try Tim Starling’s
tutorial<https://www.mediawiki.org/wiki/Lua_scripting/Tutorial>
.

To help you preview and test a converted template, try
Special:TemplateSandbox<https://www.mediawiki.org/wiki/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<https://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
Wikipedia<https://en.wikipedia.org/wiki/Wikipedia:Lua_requests>,
possibly using Anomie’s Greasemonkey
script<https://en.wikipedia.org/wiki/User:Anomie/PP-report-Greasemonkey-script>to
help you see the performance gains. On English Wikipedia, some
of the templates have already been
converted<https://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*
=================================


-- 
Guillaume Paumier
Technical Communications Manager — Wikimedia Foundation
https://donate.wikimedia.org
-------------- next part --------------
_______________________________________________
Please note: all replies sent to this mailing list will be immediately directed to Wikimedia-l, the public mailing list of the Wikimedia community. For more information about Wikimedia-l:
https://lists.wikimedia.org/mailman/listinfo/wikimedia-l
_______________________________________________
WikimediaAnnounce-l mailing list
WikimediaAnnounce-l at lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/wikimediaannounce-l


More information about the Wikimedia-l mailing list