Wikipedia:Modulo
Un modulo Lua es un programma scribite in le linguage de programmation Lua.
Il es collocate in iste wiki sub le spatio de nomines Modulo:NomineDeModulo.
Un tal programma servi de extender le functionalitate de paginas wiki.
Salute Mundo! in Lua
[modificar fonte]Effectivemente se tracta de un forma avantiate e extendite de patrono.
Le forma de appellar un modulo es un poco differente.
In loco de scriber:
{{NomineDePatrono|parametro}}
In pagina de Usator, on debe scriber le nomine sin le prefixo Modulo:
{{#invoke:NomineDeModulo|function|parametro}}
Tu pote executar le function denominate salute in minusculas in Modulo:Exemplo.
Il non es necessari installar o salvar alcun cosa.
- Modifica tu pagina de usator.
- Colla le sequente appello al initio de un nove linea in tu pagina de usator:
# {{#invoke:Exemplo|salute}} # {{#invoke:Exemplo|salute_a|Livvy}}
- Clicca
Monstrarprevisualisation.
Le appello del functionsaluteinModulo:Exemploes reimplaciate per le sequente:
- Salute Mundo!
- Salute, Livvy!
- Clicca
Cancellar. Quando demandate, cliccaAbandonar. - Tu pagina de usator remane inchangiate.
Apprender Lua
[modificar fonte]Le Consola de depuration de Lua Scribunto es un instrumento secur e interactive pro apprender Lua in Wikipedia.
- Clicca
Vider codice-fontesur le paginaModulo:String. - Scrolle verso le fundo del pagina usque al section
Consola de debug. - Incolla le commento e le appel in le quadro de ingresso blau clar (supra le button
Rader).
-- Tu prime programma Lua simile a [[Hello World]]-- print("Benvenite a " .. _VERSION .. "!") -- Concatena le version de Lua con `..`
- Pulsa ↵ Enter un vice pro executar le duo commandos Lua.
- Le resultato apparera sub le linea de commando Lua
print:
Benvenite a Lua 5.1!
- Pulsa ↑
flecha verso altopro cyclar inter le commandos Lua precedente. - Optionalmente, clicca
Raderpro vacuar solmente leConsola de depuration; le editor Lua supra remanera non modificate.
- Generator HTML in le Consola de depuration
Appella le functiones salute e salute_a in Modulo:Exemplo:
local modHi = require('Modulo:Exemplo') -- carga le modulo in le Consola print("1. " .. modHi.salute()) -- monstra "Salute Mundo!" local frame = mw.getCurrentFrame() -- quadro frame.args = {"Livvy"} print("2. " .. modHi.salute_a(frame))
1. Salute Mundo! 2. Salute, Livvy!
- Function de identitate
callParserFunction #if
-- #if yesno alora retorna su parametro de ingresso local yesno = require('Modulo:Yesno') print(mw.getCurrentFrame():callParserFunction("#if", yesno("Si"), "Si", 'no')) print(mw.getCurrentFrame():callParserFunction("#if", yesno('no'), "Si", 'no'))
Si no
- Claude le
Modulo:Stringprotegite, que remane non modificate.
Usar argumentos
[modificar fonte]Le argumentos es transmittite al modulos del mesme maniera que illos es transmittite al patronos. Nota, tamen, que le texto post le prime signo de barra vertical es sempre le nomine del function; le prime argumento positional es le texto post le secunde signo de barra vertical (`|`).
- Argumentos nominate
|key=value
{{#invoke:NomineDeModulo|function|namedArgument1=value1|namedArgument2=value2}}
Un altere function in Modulo:Exemplo, nominate conta_fructos, usa le argumentos nominate |bananas= e |pomos= pro contar le numero de bananas e pomos que nos ha. Illo pote esser executate cambiando le ordine del argumentos.
Sur tu pagina de usator:
# {{#invoke:Exemplo|conta_fructos|pomos=3|bananas=4}} # {{#invoke:Exemplo|conta_fructos|bananas=5|pomos=2}}
- Io ha 4 bananas e 3 pomos
- Io ha 5 bananas e 2 pomos
In le consola de depuration de Modulo:String:
local modFruit = require('Modulo:Exemplo') local frame = mw.getCurrentFrame() frame.args = {pomos="3", bananas="4"} print("1. " .. modFruit.conta_fructos(frame)) frame.args = {bananas="5", pomos="2"} print("2. " .. modFruit.conta_fructos(frame))
1. Io ha 4 bananas e 3 pomos 2. Io ha 5 bananas e 2 pomos
Le major parte del modulos ha un pagina de documentation que explica qual argumentos pote esser usate e qual effectos illos producera.
Testes Lua
[modificar fonte]Un framework de testage unitarie pro scripts Lua sur Wikipedia es disponibile a Modulo:ScribuntoUnit.
Illo permitte executar tu script con un certe insimul de valores de entrata e verificar que le resultatos expectate es producite.
Le testes unitari es particularmente utile pro relevar rapidemente regressiones, in le qual modificationes a un script introduce nove problemas.
Per convention, le testes unitari pro un modulo como Modulo:Exemplo es placiate in Modulo:Exemplo/testcases.
Illos es executate sur Discussion Modulo:Exemplo/testcases con {{#invoke:Exemplo/testcases|run}}.
Sur tu pagina de usator:
{{#invoke:Exemplo/testcases|run}}
Tote le tests ha succedite.
Nomine Expectate Actual test_hi
Cata methodo de test debe comenciar con p:test_.
Un exemplo de Modulo:Exemplo/testcases es monstrate infra.
--[[Modulo:Exemplo/testcases]]--
local p = require('Modulo:ScribuntoUnit').new()
local modHi = require('Modulo:Exemplo') -- Visita le pagina de discussion pro executar le tests.
function p:test_hi() -- Tests unitari pro [[Modulo:Exemplo]].
self:assertEquals('Salute Mundo!', modHi.salute())
end
return p
Principio del testage unitarie |
|---|
|
In le consola de depuration de
Si le test ha successo, le valor expectate e le valor actual non es monstrate, assi que le tabella de resultatos es plus simple:
Executa Modulo:ScribuntoUnit pro testar Modulo:Exemplo sin crear le pagina Modulo:Exemplo/testcases:
Le HTML generate es identic |
Depuration de Lua
[modificar fonte]InfoBox (IB) Aristophanes
Sur tu pagina de usator: problema con le obsolete Modulo:Wikidata
# {{tick}} Nascentia: {{#invoke:Wikidata|getDateValue|P569|FETCH_WIKIDATA|ymd|qid=Q43353}} # {{Xmark}} Decesso : {{#invoke:Wikidata|getDateValue|P570|FETCH_WIKIDATA|ymd|qid=Q43353}}
Nascentia: 448 BC, 444 BC, 450 BC, 446 BC, 445 BC
Decesso : Error de Lua in Modulo:Wikidata al linea 694: attempt to index field 'datavalue' (a nil value)
Extension del defecto: Amedeo III, Zoroastre, Jesus Christo, Mohamet ibn Musa al-Khwarizmi, Friedrich Nietzsche
Patrono:infobox → Patrono:infobox/articulo → Patrono:infobox/articulo/persona → Patrono:Infobox generic → Modulo:Wikidata
|
|
Modulo:WikidataIB in vice. |
Sur tu pagina de usator: solution con Modulo:WikidataIB
# {{tick}} Nascentia: {{#invoke:WikidataIB|getValue|P569|ps=3|qid=Q43353}} # {{tick}} Decesso : {{#invoke:WikidataIB|getValue|P570|ps=3|qid=Q43353}}
Instrumentar un modulo Lua pro le depuration |
|---|
|
Modulo original obsolescente
Instrumenta Modulo:Wikidata: NON publica le modificationes.
Pagina de previsualisation con iste patrono:
|
Cite book
[modificar fonte]Sur tua pagina de usator, colla le sequente Patrono:Cite book:
# {{cite book |last1=Guyer |first1=Paul |last2=Wood |first2=Allen W. |year=1998 |title=Critique of pure reason |publisher=Cambridge University Press |publication-place=Cambridge |isbn=978-0-511-80464-9 |doi=10.1017/CBO9780511804649}} # {{cite book |last=Guyer |first=Paul |coauthors=Wood, Allen W. |year=1998 |title=Critique of pure reason |publisher=Cambridge University Press |publication-place=Cambridge |isbn=978-0-511-80464-9 |doi=10.1017/CBO9780511804649}} # {{cite book |last=Guyer |first=Paul |coauthors=Wood, Allen W. |year=1998 |title=Critique of pure reason |publisher=Cambridge University Press |publication-place=Cambridge |isbn=978-0-511-80464-9 |doi=10.1017/CBO9780511804649 |ref=CITEREFGuyerWood1998}}
- (1998) Critique of pure reason. Cambridge University Press. doi:10.1017/CBO9780511804649. ISBN: 978-0-511-80464-9.
- Guyer, Paul; Wood, Allen W. (1998). Critique of pure reason. Cambridge University Press. doi:10.1017/CBO9780511804649. ISBN: 978-0-511-80464-9.
- Guyer, Paul; Wood, Allen W. (1998). Critique of pure reason. Cambridge University Press. doi:10.1017/CBO9780511804649. ISBN: 978-0-511-80464-9.
|last1=Guyer|first1=Paul|last2=Wood|first2=Allen W.non es recognoscite per Patrono:Cite book|last=Guyer|first=Paul|coauthors=Wood, Allen W.non genera le ancóra HTML pro{{sfn|Guyer|Wood|1998|pp=4–13}}|ref=CITEREFGuyerWood1998resolve le problema pro Patrono:Sfn, sed le contributores non divinara iste syntaxe.
Cita libro in le consola de depuration |
|---|
|
In le consola de depuration de
Comparea Patrono:Cite book con en:Template:Cite book + Modulo:citation/CS1. In le consola de depuration de
Le HTML generate comencia con:
|
Info
[modificar fonte]- Discoperi tote le modulos Lua
- Le documentation pro le extension Scribunto, que permitte tote isto.