Logo der Lua-Sprache
Logo der Lua-Sprache

Lua je programowanska rěč, kotraž nětko přez rozšěrjenje MediaWiki Scribunto k dispoziciji steji. Lua-kod da so do wikipředłohow z pomocu funkcionalnosće "{{#invoke:}}" rozšěrjenja MediaWiki Scribunto zasadźić.

Žórłowy kod Lua składuje so w stronach mjenowanych module (na př. Module:Bananas). Tute jednotliwe module wołaja so potom (přez "{{#invoke:}}") na předłohowych stronach (na př. Module talk:Bananas wužiwa kod {{#invoke:Bananas|witaj}}, zo by tekst "Witaj swět!" wudał).

Přikładowe module wobdźěłać

  • Module:Bananas: Najbóle jednory móžny skript, kotryž jeničku funkciju bjez argumentow dodawa.
  • Module:BananasArgs: Demonstruje, kak maja přistup na parametry a kak so wužiwaja.

Skript požadać wobdźěłać

Wopytaj Wikipedia:Lua requests, zo by wo pomoc při pisanju Lua-skripta prosył, kotryž ma specifiski nadawk we Wikipediji abo druhim projekće załožby Wikimedia Foundation wuwjesć.

ParserFunctions, rozšěrjenje Lua, wikijowa skriptowa rěc debatuje so (JavaScript porno Lua), mw:Extension:WikiScripts, Tim Starling pisa Scribunto ze zakładnej podpěru za Lua.

Wot lět diskutowane, bu Lua w lěće 2012 za testowanje na test2.wikipedia.org instalowany a wšitcy wobdźěłarjo su so přeprosyli, so na eksperimentowanju při wuwiwanju Lua-modulow wobdźělić. Lua je so w jendźelskej Wikipediji we februarje 2013 instalował, po tym zo bě so na mediwiki.org na testowych wikijach testował.

Lua je skriptowanska rěč, kotraž hodźi so za analyzowanje datow, wuličowanje wurazow a formatowanje wuslědkow z pomocu funkcijow objektorientowaneho programowanja wužiwać. Hačrunjež Lua-skript da so jednory wobchować, za lochke rozumjenje, zmóžnja Lua kompleksne struktury, kotrež bychu informatikarja wužadali, z tabelemi, dynamiskimi funkcijemi a asociatiwnymi datowymi polemi, hdźež hłuboko stajene indeksy móža słowa kaž tež indeksowe čisła być. Lua tež podpěruje rekursiju zakašćikowanych funkcijow abo zmóžnja korutiny za kooperatiwny multitasking, dźiwaj tohodla na to, zo ekscesiwnu kompleksnosć wobeńdźeš, hdźež druzy wužiwarjo njebychu rozumili, kak maja z Lua-modulom wobchadźeć. Slěduje přikład za žórłowy kod z Lua za fakultowu funkciju:

  function factorial(n)
    if n == 0 then
      return 1 --to wróći wuslědk 1, hdyž je so nul přepodał
    else
      return n * factorial(n - 1)
    end
  end
  for index = 1,5 do
      print(index, "n! = ", factorial(index) )
  end

Přikład za Lua wuzběhuje so přez značku "<source lang="lua">...</source>", kotraž so wokoło žorłoweho koda zaměstnja. Zo by sej bóle kompleksne přikłady za Lua wobhladał, hlej nastawk: "de:Lua".

Za instrukcije, kak so Lua w MediaWiki wužiwa, hlej mw:Extension:Scribunto/Lua reference manual.

Testowanje jednotkow wobdźěłać

Wobłuk za testowanje jednotkow za Lua-skripty na Wikipediji steji na Module:UnitTests k dispoziciji. Zmóžnja ći, twój skript za wěstu sadźbu zapodaćow wuwjesć a přepruwować, hač so wočakowane wudaća produkuja. Testy jednotkow su wosebje wužitne, zo bychu so regresije spěšnje namakali, hdźež změny na skripće nowe problemy wuwołuja.

Po konwenciji so testy jednotkow za modul kaž Module:Bananas w Module:Bananas/tests zaměstnuja, a wuwjedu so na Module talk:Bananas/tests z na př. {{#invoke: Bananas/tests|run_tests}}. Testowe metody dyrbja so z "test" započeć. Tu je jednory přikład z Module:Bananas/tests:

-- Testy jednotkow za [[:en:Module:Bananas|Module:Bananas]]. Klikń na diskusijnu stronu, zo by testy startował.
local p = require('Module:UnitTests')
 
function p:test_witaj()
    self:preprocess_equals('{{#invoke:Bananas | witaj}}', 'Witaj, swět!')
end
 
return p

Za lisćinu wšěch modulow, kotrež testy jednotkow wužiwaja, hlej Special:Whatlinkshere/Module:UnitTests.

Za Wikipediju specifiske funkcije wobdźěłać

Lua - zapodawanske wobmjezowanja wobdźěłać

Lua-kod w rozšěrjenju Scribunto so jenož wuwjedźe, hdyž strona so analyzuje. Tohodla je wobdźěłowanje strony jeničke wužiwarske zapodaće, kotrež Lua akceptuje - wón njemóže polo wutworić, kotrež kwadratny korjeń wuličuje, kotryž zapodawaš, abo dźěl Mandelbrotoweje sadźby we wotwisnosći wot toho znowa wuličić, na kotry dźěl nadrjadowaneje sadźby kliknješ. Lua-zapodaće móže stronu přenošujomneho teksta na Wikipediji wobsahować. To njezapřijima grafiske dataje (ani .SVG-dataje, hačrunjež su poprawom tekst, chibazo přesunješ je na wikitekstowu stronu), lisćina stronow w kategoriji ani wobsah specialnych stronow.

Wikitekst wobdźěłać

Přenjesene Wikipedijowe hłójčki wobsahuja husto schowany kod kaž na př. "UNIQ5ae8f2aa414ff233-h-3--QINU", kotryž dyrbi so ewentuelnje wotstronić, zo bychu so efektiwnje analyzowali.

Wikiwotkazy typa [[Wikipedia:Help|]] njefunguja, jeli so jako wudaće wróćeja - dyrbja so wuraznje jako [[Wikipedia:Help|Help]] pisać.

Specifiske resursy jendźelskeje Wikipedije
Z Wikipedije, swobodneje encyklopedije