Vikipedio:Lua
| |||
Kategorioj | |||
---|---|---|---|
Ŝablonoj | |||
| |||
Vidu ankaŭ | |||
Komentoj | |||
|
|||
Lua estas programa lingvo, kiu nun estas je dispono per la etendaĵo MediaWiki Scribunto. Lua-kodo estas metebla en vikiajn ŝablonojn per helpo de la funkcieco "{{#invoke:}}" de la etendaĵo MediaWiki Scribunto.
Fontokodo de Lua estas konservata en paĝoj de la nomspaco modulo (ekz. Module:Bananas). Ĉi tiuj unuopaj moduloj estas vokataj tiam (per "{{#invoke:}}") sur la ŝablonaj paĝoj (ekz. Module talk:Bananas uzas la kodon {{#invoke:Bananas|Bonvenon}}, por eldoni la tekston "Bonvenon mondo!").
Ekzemplaj moduloj
[redakti fonton]- Module:Bananas: Plej simpla ebla skripto, kiu aldonas unusolan funkcion sen argumentoj.
- Module:BananasArgs: Demonstras, kiel oni havas aliron al parametroj kaj kiel ili estas uzataj.
Peti pri skripto
[redakti fonton]Vizitu Vikipedio:Lua/Petoj, por peti pri helpo ĉe la skribado de Lua-skripto, kiu plenumu specifan taskon en la Vikipedio aŭ alia projekto de la fondaĵo Wikimedia Foundation.
Provado
[redakti fonton]- Provejo
- Libera provado de malgrandaj kodaj fragmentoj dum mallonga tempo.
- Por pli grandaj evoluaj laboroj ebligas la ŝablona provejo ankaŭ fontotekstajn modulojn sur la propraj uzantopaĝoj.
- Saluton
- Demonstracia modulo (Saluton, mondo!) –
Saluton, mondo! Tio estas Lua!
- Ĉiuj uzantoj
- por beta-testado fare de pluraj uzanto kun
Modulo:Uzantino:
xxxxxxxxxxxxModulo:Uzanto:
xyxyxyxyxyxy- Subpaĝoj por uzanto-moduloj estas eblaj. La ŝablona provejo estas tamen preferinda.
- Ŝablona provejo
- Ĉiuj uzantoj povas administri per la ŝablona provejo sur siaj uzantopaĝoj proprajn modulojn por la testado. Per editorContent tiam ankaŭ estas je dispono la CodeEditor.
Krome estas uzeblaj testwiki: kaj test2wiki:, ankaŭ de.wikipedia.beta. En esperanta vikipedio aperu tiam nur sufiĉe maturaj produktivaj versioj.
Historio
[redakti fonton]ParserFunctions, Etendaĵo Lua, vikia skripta lingvo estas debatata (JavaScript apud Lua), mw:Extension:WikiScripts, Tim Starling skribis Scribunto kun baza subteno por Lua.
Ekde jaroj diskutata, Lua estis testita en la jaro 2012 sur test2.wikipedia.org instalita kaj ĉiuj redaktantoj estis invitataj, partopreni ĉe eksperimentado ĉe la elevoluado de Lua-moduloj. Lua estis instalata en la angla Vikipedio en februaro 2013, post kiam ĝi estis testita sur mediwiki.org kaj testaj vikioj.
Pri Lua
[redakti fonton]Lua estas skripta lingvo, kiu estas uzebla por la analizado de datoj, elkalkulado de esprimoj kaj formatigo de rezultoj per helpo de funkcioj de objektema programado. Kvankam Lua-skripto estas facile aranĝebla, por facila kompreno, Lua ebligas kompleksajn strukturojn, kiuj defias komputikiston, kun tabeloj, dinamikaj funkcioj kaj asociativaj dataj kampoj, kie profunde metitaj indeksoj povas esti vortoj sed ankaŭ indeksaj numeroj. Lua ankaŭ subtenas rekursion de nestitaj funkcioj aŭ ebligas korutinoj por kooperativa plurtaskado, atentu tial je tio, ke vi evitas ekscesivan kompleksecon, kie aliaj uzantoj ne komprenus, kiel oni okupiĝu pri Lua-modulo. Sekvas ekzemplo por fontokodo kun Lua por faktoriala funkcio:
function factorial(n)
if n == 0 then
return 1 --tio redonas rezulton 1, kiam nul estas transdonata
else
return n * factorial(n - 1)
end
end
for index = 1,5 do
print(index, "n! = ", factorial(index) )
end
Ekzemplo por Lua emfazata per la markilo "<source lang="lua">...</source>", kiu estas metata ĉirkaŭ la fontan kodon. Por rigardi pli kompleksajn ekzemplojn por Lua, vidu artikolon: "de:Lua".
Por instrukcioj, kiel Lua estas uzata en MediaWiki, vidu mw:Extension:Scribunto/Lua reference manual.
Testado de unuoj
[redakti fonton]Tereno por la testado de unuoj por Lua-skriptoj sur Vikipedio estas je dispono sur Module:UnitTests. Ĝi ebligas al vi, ekzekuti vian skripton por certa aro de enigoj kaj provi, ĉu ĝi produktas la atendatan eligon. Testoj de unuoj estas aparte utilaj, por rapide eltrovi regresiojn, kie ŝanĝoj je skriptoj elvokas novajn problemojn.
Laŭ konvencio testoj de unuoj por modulo kiel Module:Bananas en Module:Bananas/tests estas enmetataj, kaj ekzekutaj sur Module talk:Bananas/tests kun ekz. {{#invoke: Bananas/tests|run_tests}}
. Testaj metodoj devas komenciĝi per "test".
Ĉi tie estas simpla ekzemplo kun Module:Bananas/tests:
-- Testoj de unuoj por [[:en:Module:Bananas|Module:Bananas]]. Klaku sur diskutan paĝon, por starti la testojn.
local p = require('Module:UnitTests')
function p:test_witaj()
self:preprocess_equals('{{#invoke:Bananas | bonvenon}}', 'Bonvenon, mondo!')
end
return p
Por listo de ĉiuj moduloj, kiuj uzas testojn de unuoj, vidu Special:Whatlinkshere/Module:UnitTests.
Por Vikipedio specifaj funkcioj
[redakti fonton]Lua - enmetadaj limigoj
[redakti fonton]Lua-kodo en la etendaĵo Scribunto estas nur plenumata, kiam paĝo estas analizata. Tial la sola uzanto-enigo, kiun akceptas Lua, estas per redaktado de paĝo. Ĝi ne povas krei keston, kiu kalkulas kvadratan radikon, kiun vi entajpas, aŭ parton de Mandelbrota aro en dependeco de tio denove elkalkuli, sur kiun parton de superordigita aro vi klakas. Lua-enigo povas enhavi paĝon de transkludebla teksto sur Vikipedio. Tio ne inkludas grafikajn datumojn (nek .SVG-datumojn, kvankam ili estas aktuale teksto, krom ke vi elprenas kaj aldonas ĝin sur vikitekstan paĝon), listo de paĝoj en kategorio nek enhavo de specialaj paĝoj.
Vikiteksto
[redakti fonton]Transkludataj Vikipediaj kaplinioj ofte enhavas kaŝitan kodon kiel ekz. "UNIQ5ae8f2aa414ff233-h-3--QINU", kiu devas esti eventuale forigata, por esti analizata efektive.
Vikiligiloj de la tipo [[Wikipedia:Help|]] ne funkcias, se ili estas redonataj kiel eldono - ili devas esti skribataj eksplicite kiel [[Wikipedia:Help|Help]].
Vidu ankaŭ
[redakti fonton]- Specifaj risurcoj de la angla Vikipedio
- Wikipedia:Lua style guide – normoj, por plibonigi la legeblon de kodo per konsistenco
- en:Special:PrefixIndex/Module: – sekvado de Lua-moduloj povas esti farata per helpo de Special:PrefixIndex
- Help:Lua debugging – instrukcio por forigo de eraroj ĉe Lua-moduloj
- Category:Lua-based templates – grupo de ŝablonoj sur bazo de Lua
- Module:Sandbox provizas pseŭdo-nomspacon por eksperimentado kun Lua-moduloj.
- Specifaj risurcoj de la esperanta Vikipedio
- Special:PrefixIndex/Module: – sekvado de Lua-moduloj povas esti farata per helpo de Special:PrefixIndex
- Kategorio:Ŝablono:Kun Lua – grupo de ŝablonoj sur bazo de Lua
- Kategorio:Paĝoj kun skripteraroj – enhavas paĝojn kun erarmesaĝo de Lua-modulo
Eksteraj ligiloj
[redakti fonton]- Scribunto – Lua reference manual ĉe MediaWiki angle, france, ruse, vjetname
- Origina Lua-manlibro; enhavas partojn, kiuj ne eblas sur Vikia servilo:
- Lua 5.1 Reference Manual – lua.org angle, portugale
- lua.coders-online.net (germana traduko de la manlibro; ĜavaSkripto bezonata)
- en:Wikipedia:Lua style guide – Kodiiga normo angle
- Lua vs Javascript – Kial estis elektita Lua kaj ne JavaScript? angle
- Kodaj ekzemploj: