Yhteisöwiki
Advertisement
Yhteisöwiki

Hei wikialaiset!

Tänään esittelyssä on Lua -- uusi mallinekieli, jonka avulla esimerkiksi tietolaatikoiden ja navigaatiotaulukoiden luonti ja muokkaus on entistä helpompaa.

Miksi Lua?

Tuntuuko kaikki tämä koodi hankalalta? Kokeile Luaa!

Tällä hetkellä Wikian alusta, MediaWiki, käyttää erikoiswikitekstisyntaksia loogisten ja muiden toimituksien suorittamiseksi mallineiden rakennuksessa. Jäsennysfunktioiden käyttöönoton myötä wikitekstistä tuli kuitenkin varsin suppea ohjelmointikieli. Niiden avulla mallineissa voi toki saada aikaan rutkasti toiminnallisuutta, mutta monimutkaiset mallineet johtavat lähinnä tehokkuusongelmiin ja sivujen hitaaseen latautumiseen, puhumattakaan niiden hankaluudesta muokata ja ymmärtää.

Näistä syistä MediaWiki, Wikia mukaanlukien, tukee nyt Luaa mallinekielenä jotta sinäkin saisit käyttöösi yksinkertaisemman, nopeamman ja tehokkaamman tavan suunnitella ja ylläpitää mallineita. Luan avulla voi luoda kompleksimpia mallineita ominaisuuksilla, joiden toteuttaminen wikitekstillä olisi liian monimutkaista tai hidasta. Lua suunniteltiin suhteellisen helposti opittavaksi ja sitä on käytetty hyvällä menestyksellä eri peliympäristöissä kuten World of Warcraft -wikiassa, missä käyttäjät vailla aikaisempaa ohjelmointikokemusta ovat onnistuneet muokkaamaan ympäristöään opettelemalla vain hiukan Luaa. Vaikka et itse olisikaan mallinemuokkaaja, jokainen selaaja hyötyy sivujen nopeammasta latausajasta. Muunnettuamme Marvel Databasen hahmotietolaatikon Luaksi, mallinetta käyttävät sivut latautuivat 35-50% nopeammin!

Miltä Lua -malline näyttää?

Lua-malline luodaan kirjoittamalla Lua-koodia nimiavaruuteen Moduuli: ja sitä käytetään lisäämällä sivulle tai mallineeseen jäsennysfunktio {{#invoke:}}. Esimerkkinä mallineesta, joka tulostaa annetulle nimelle tervehdyksen, voitaisiin luoda malline Moduuli:Tervehdys, jonka sisältö olisi:

local p = {}

function p.terve( frame )
    return 'Terve, ' .. frame.args[1] .. '!'
end

return p

Mallineen käyttämiseksi lisättäisiin teksti {{#invoke:Tervehdys|terve|Wikia}}. Tämä tulostaisi tekstin "Terve, Wikia!".

Missä voin oppia Luasta lisää?

Olemme alkaneet dokumentoida omaa versiotamme Luan mallinelaajennuksesta (nk. Scribunto) Wikian kehittäjien wikiassa (Wikia Developers Wiki). Katso myös Luan verkkosivut. Myös Wikiapedia käyttää nykyään mallineissaan pääasiassa Luaa:

Mihin seuraavaksi?

Lua on nyt saatavilla jokaiselle wikialle ylläpitäjän pyynnöstä. Käykäähän kimppuun!

Advertisement