Wikipedija:Lua
Lua jo programěrowańska rěč, kótaraž něnto stoj k dispoziciji pśez rozšyrjenje MediaWiki Scribunto. Lua-kode dajo se do wikipśedłogow z pomocu funkcionalnosći "{{#invoke:}}" rozšyrjenja MediaWiki Scribunto zasajźiś.
Žrědłowy kode Lua składujo se w bokach pomjenjenych module (na pś. Module:Bananas). Toś te jadnotliwe module wołaju se pón (pśez "{{#invoke:}}") na pśedłogowych bokach (na pś. Module talk:Bananas wužywa kode {{#invoke:Bananas|witaj}}, aby tekst "Witaj swět!" wudał).
Pśikładowe module
wobźěłaś- Module:Bananas: Nejwěcej jadnory móžny skript, kótaryž dodawa jadnučku funkciju bźez argumentow.
- Module:BananasArgs: Demonstrěrujo, kak maju pśistup na parametry a kak se wužywaju.
Skript póžedaś
wobźěłaśWoglědaj se k bokoju Wikipedia:Lua requests, aby wó pomoc pśi pisanju Lua-skripta pšosył, kótaryž ma specifiski nadawk we Wikipediji abo drugem projekśe załožby Wikimedia Foundation wuwjasć.
Historija
wobźěłaśParserFunctions, rozšyrjenje Lua, wikijowa skriptowa rěc debatěrujo se (JavaScript napśeśiwo Lua), mw:Extension:WikiScripts, Tim Starling pišo Scribunto ze zakładneju pódpěru za Lua.
Wót lět diskutěrowane, jo se Lua w lěśe 2012 za testowanje na test2.wikipedia.org instalěrował a wšykne wobźěłarje su se pśeprosyli, se na eksperimentěrowanju pśi wuwijanju Lua-modulow wobźěliś. Lua jo se w engelskej Wikipediji we februarje 2013 instalěrował, za tym až jo se na mediwiki.org na testowych wikijach testował.
Wo Lua
wobźěłaśLua jo skriptěrowańska rěc, kótaraž dajo se za analyzěrowanje datow, wulicowanje wurazow a formatěrowanje wuslědkow z pomocu funkcijow objektorientěrowanego programěrowanja wužywaś. Lěcrownož Lua-skript dajo se jadnory wobchowaś, za lažke rozměśe, zmóžnja Lua kompleksne struktury, kótarež by informatikarja wupominali, z tabelami, dynamiskimi funkcijami a asociatiwnymi datowymi pólami, źož dłymoko stajone indekse mógu słowa a teke indeksowe cysła byś. Lua teke pódpěra rekursiju zašachtelikanych funkcijow abo zmóžnja korutiny za kooperatiwny multitasking, źiwaj togodla na to, až wobijaš se ekscesiwneje kompleksnosći, źož druge wužywarje njeby rozměli, kak maju z Lua-modulom wobchadaś. Slědujo pśikład za žrědłowy kode z Lua za fakultowu funkciju:
function factorial(n)
if n == 0 then
return 1 --to wrośa wuslědk 1, gaž jo se nul pśepódał
else
return n * factorial(n - 1)
end
end
for index = 1,5 do
print(index, "n! = ", factorial(index) )
end
Pśikład za Lua wuzwigujo se pśez toflicku "<source lang="lua">...</source>", kótaraž zaměstnjujo se wokoło žrědłowego koda. Aby se wěcej kompleksne pśikłady za Lua woglědał, glědaj nastawk: "de:Lua".
Za instrukcije, kak Lua wužywa se w MediaWiki, glědaj mw:Extension:Scribunto/Lua reference manual.
Testowanje jadnotkow
wobźěłaśWobłuk za testowanje jadnotkow za Lua-skripty na Wikipediji stoj na Module:UnitTests k dispoziciji. Zmóžnja śi, swój skript za wěstu sajźbu zapodaśow wuwjasć a pśeglědaś, lěc wótcakane wudaśa producěruju. Testy jadnotkow su wósebnje wužytne, aby se regresije spěšnje namakali, źož změny na skripśe nowe problemy wuwołuju.
Pó konwenciji testy jadnotkow za modul kaž Module:Bananas zaměstnjuju se w Module:Bananas/testcases, a wuwjeduju se na Module talk:Bananas/testcases z na pś. {{#invoke: Bananas/testcases|run_tests}}
. Testowe metody muse se z "test" zachopiś.
How jo jadnory pśikład z Module:Bananas/testcases:
-- Testy jadnotkow za [[:en:Module:Bananas|Module:Bananas]]. Klikni na diskusijny bok, aby 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šych modulow, kótarež wužywaju testy jadnotkow, glědaj Special:Whatlinkshere/Module:UnitTests.
Za Wikipediju specifiske funkcije
wobźěłaśLua - zapódawańske wobgranicowanja
wobźěłaśLua-kode w rozšyrjenju Scribunto wuwjeźo se jano, gaž bok se analyzěrujo. Togodla jo wobźěłowanje boka jadnučke wužywarske zapódaśe, kótarež Lua akceptěrujo - wón njamóžo pólo napóraś, kótarež wulicujo kwadratny kórjeń, kótaryž zapódawaš, abo źěl Mandelbrotoweje sajźby we wótwisnosći wót togo znowego wulicyś, na kótaryž źěl nadrědowaneje sajźby kliknjoš. Lua-zapódaśe móžo bok pśenosujobnego teksta na Wikipediji wopśimjeś. To njezapśimujo grafiske dataje (teke nic .SVG-dataje, lěcrownož su pópšawem tekst, teke gaž pśesunjoš je na wikitekstowy bok), lisćina bokow w kategoriji a teke nic wopśimjeśe specialnych bokow.
Wikitekst
wobźěłaśPśenjasone Wikipedijowe głowki wopśimuju cesto schowany kode ako na pś. "UNIQ5ae8f2aa414ff233-h-3--QINU", kótaryž musy se ewentuelnje wótpóraś, aby se efektiwnje analyzěrowali.
Wikiwótkaze typa [[Wikipedia:Help|]] njefunkcioněruju, jolic wrośaju se ako wudaśe - muse se wuraznje ako [[Wikipedia:Help|Help]] pisaś.
Glědaj teke
wobźěłaś- Specifiske resurse engelskeje Wikipedije
- Wikipedia:Lua style guide – standardy, aby cytajobnosć koda pśez konsistencu pólěpšyło
- Special:PrefixIndex/Module: – slědowanje Lua-modulam dajo se z pomocu Special:PrefixIndex pśewjasć
- Help:Lua debugging – wukazanje za wótpóranje zmólkow pla Lua-modulow
- Category:Lua-based templates – kupki pśedłogow na zakłaźe Lua
- Module:Sandbox dodawa pseudo-mjenjowy-rum za eksperimentěrowanje z Lua-modulami.