Vikipedija:Lua
Lua – programavimo kalba, naudojama Vikipedijos moduliuose, kurie gali būti naudojami šablonuose.
Moduliai yra iškviečiami su specialia sintakse {{#invoke:<Modulio pavadinimas>|<Funkcijos pavadinimas>|(neprivalomai) parametras1 | parametras2...}}). Pavyzdys:
Vikitekstas | Rezultatas |
---|---|
{{#invoke:Example|hello}}
|
Hello World! |
Visi lietuviškojoje Vikipedijoje naudojami moduliai pateikiami šiame puslapyje.
Modulio paleidimas
redaguotiModuliai viki puslapiuose paleidžiami naudojant #invoke analizatoriaus funkciją. #invoke sintaksė panaši į šablono funkciją, tačiau skiriasi. Svariausias skirtumas – reikia nurodyti funkcijos pavadinimą. Funkcija – tai instrukcijų rinkinys, kuris priima pradinius duomenis, apdoroja juos ir grąžina atsakymą. Panašiai veikia ir šablonas: jis priima parametrus, apdoroja juos ir grąžina rezultatą. Lua modulyje galima apibrėžti daug funkcijų, o puslapyje sukurti galima tik vieną šabloną.
Dar vienas niuansas – pačio Lua modulio paleisti negalima, būtinai reikia nurodyti konkrečias funkcijas. Modulis – tai tarsi funkcijų konteineris ir nieko pats savaime nedaro. Taigi yra dvi priežastys, kodėl reikia nurodyti funkcijos pavadinimą:
- pačio modulio paleisti negalima;
- be funkcijos pavadinimo Lua nežino, kurią funkciją norima paleisti.
Paprasčiausias būdas viki puslapyje paleisti modulį:
{{#invoke:modulio pavadinimas|funkcijos pavadinimas}}
Pavyzdžiui, modulį Module:Example, kuris turi funkciją „hello“ galima paleisti taip:
{{#invoke:Example|hello}}
→ Hello World!
Parametrų naudojimas
redaguotiArgumentai į modulius paduodami tuo pačiu būdu kaip į šablonus. Skirtumas tas, kad po pirmojo stačiojo brūkšnio visada pateikiamas funkcijos pavadinimas, o pirmosios pozicijos argumentas – tekstas po antrojo stačiojo brūkšnio.
{{#invoke:modulio pavadinimas|funkcijos pavadinimas|pirmosios pozicijos argumentas|antrosios pozicijos argumentas|įvardytas argumentas = reikšmė}}
Modulyje Module:Example, funkcija „hello_to“ pasisveikina su skirtingais žmonėmis, priklausomai nuo pirmosios pozicijos argumento. Funkcijos paleidimas atrodo taip:
{{#invoke:Example|hello_to|Kate}}
→ Hello, Kate!{{#invoke:Example|hello_to|Fred}}
→ Hello, Fred!
Trečioji Module:Example funkcija, pavadinimu „count_fruit“, naudoja įvardytus argumentus bananas
ir apples
suskaičiuoti, kiek turime bananų ir obuolių. Funkcijos paleidimas atrodo taip:
{{#invoke:Example|count_fruit|apples=3|bananas=4}}
→ I have 4 bananas and 3 apples{{#invoke:Example|count_fruit|bananas=5|apples=2}}
→ I have 5 bananas and 2 apples
Modulių argumentai ir jų poveikis dažnai aprašomas modulių dokumentacijos puslapiuose.