Wikipedia:Módulos: Diferenzas entre revisións

Contido eliminado Contido engadido
Banjo (conversa | contribucións)
en uso
 
Banjo (conversa | contribucións)
finalizo tradución
Liña 1:
{{En uso}}
{{Espazos de nomes}}
 
'''[[Lua (linguaxe de programación)|Lua]]''' é unha linguaxe de programación que pode empregarse na Galipedia, a través da Extensión Mediawiki [[mw:Extension:Scribunto|Scribunto]]. O código Lua pode usarse en modelos wiki empregando a funcionalidade "<nowiki>{{#invoke:}}</nowiki>" desta extensión Scribunto.
 
O [[código fonte]] Lua gárdase en páxinas do espazo de nomes '''Módulo'''. Estes módulos individuais poden empregarse mediante a funcionalidade <code><nowiki>{{#invoke:}}</nowiki></code> dende calquercalquera páxina de modelo.
 
== Executar un modulemódulo ==
 
Os módulos executanse noutras páxinas da wikipediaWikipedia usando a función #invoke. A sintaxe de #invoke é semellante á sintaxe dos modelos, pero con algunhas diferenciasdiferenzas. A máis inportante destas diferenciasdiferenzas é que se necesita especificar o ''nome da fulnciónfunción''. Unha función é un conxunto de instruccións que toma unha serie de valores de entrada, procésaos, e devolve un valor de saída.
 
Non se pode executar un módulo Lua directamente, só se pode empregar unha das funcións do módulo. O módulo é so un contedor para as funcións, e non fai nada por si mesmo.
Liña 23 ⟶ 22:
Os módulos deben ter unha páxina de documentación que explique que argumentos se poden empregar e os efectos que terá cada un deles.
 
== Características específicas na wikipediaWikipedia ==
Lua só pode recibir entradas de valores en forma de cadeas de texto nas chamadas <code><nowiki>{{#invoke:}}</nowiki></code> e nos valores retornados por mw.title.new(...):getContent() e frame:expandTemplate(). As saídas devoltas por Lua non serán pre-procesadas agás que se faga unha chamada explícita á frame:preprocess().
 
=== Limitacións nas entradas ===
O código Lua en Scribunto só se executa cando a páxina é analizadarecalculada. Polo tanto, a única forma de entrada de valores que pode recibir é mediante a edición de páxina, non é ''interactiva''.
 
As entradas que pode recibir Lua son polo tanto calquera das páxinas da Wikipedia que se poden transcluír noutras. Esto ''non'' inclúe páxinas de ficheiros, a lista das páxinas incluídas nunha [[Wikipedia:Categorías|categoría]], ou o contido das [[Especial:Páxinas Especiais|páxinas especiais]].
Therefore, the only user input that Lua can receive is by ''page editing'' - it cannot create a box that calculates the square root of a number you type in, or recalculate a piece of the Mandelbrot set depending on which part of the parent set you click on. The input Lua can receive includes any transcludeable text page on Wikipedia. This does ''not'' include graphics files (not even [[Wikipedia:SVG help|.SVG]] files, although they are actually text, unless you cut and paste it onto a Wiki text page), the list of pages listed in a [[Help:Category|category]], nor the contents of [[Wikipedia:Transclusion#Special pages|non-transcludeable]] [[Help:Special|special pages]].
 
=== WikitextTexto wiki ===
As ligazóns wiki do tipo '''<nowiki>[[Wikipedia:Axuda|]]</nowiki>''' non funcionarán se se indican coma unha saída do módulo. Deben escribirse explícitamente coma '''<nowiki>[[Wikipedia:Axuda|Axuda]]</nowiki>'''. Outras transformacións, coma reemprazar <code>~~<nowiki/>~~</code> cunha sinatura, non serán procesadas correctamente.
Transcluded Wikipedia headers frequently contain a hidden code such as "UNIQ5ae8f2aa414ff233-h-3--QINU" which may need to be stripped out in order for them to be parsed effectively.
 
== Etiquetar os modelos ==
Wikilinks of the type '''<nowiki>[[Wikipedia:Help|]]</nowiki>''' won't work if returned as output - they need to be written explicitly as '''<nowiki>[[Wikipedia:Help|Help]]</nowiki>'''. Other pre-save transforms, such as replacing <code>~~<nowiki/>~~</code> with signatures, will also fail to be processed. Template transclusions, parser function calls, and variable substitutions (i.e. anything with a <code><nowiki>{{...}}</nowiki></code>) will not be processed, nor will tags such as {{tag|ref|o}} or {{tag|nowiki|o}}.
 
== Labeling converted templates ==
Por favor, inserta o código <code>&#60;includeonly&#62;{{m|ModeloLua}}&#60;/includeonly&#62;</code> na sub-páxina de documentación dos modelos que usan módulos Lua.
{{clear}}