Wikipedija:Lua
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
[žórłowy tekst 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ć
[žórłowy tekst 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ć.
Historija
[žórłowy tekst wobdźěłać]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ł.
Wo Lua
[žórłowy tekst wobdźěłać]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
[žórłowy tekst 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
[žórłowy tekst wobdźěłać]Lua - zapodawanske wobmjezowanja
[žórłowy tekst 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
[žórłowy tekst 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ć.
Hlej tež
[žórłowy tekst wobdźěłać]- Specifiske resursy jendźelskeje Wikipedije
- Wikipedia:Lua style guide – standardy, zo by čitajomnosć koda přez konsistencu polěpšiło
- Special:PrefixIndex/Module: – slědowanje Lua-modulam hodźi z pomocu Special:PrefixIndex přewjesć
- Help:Lua debugging – nawod za wotstronjenje zmylkow pola Lua-modulow
- Category:Lua-based templates – skupiny předłohow na zakładźe Lua
- Module:Sandbox dodawa pseudo-mjenowy-rum za eksperimentowanje z Lua-modulemi.