Saltu al enhavo

Helpo:Lua

El Vikipedio, la libera enciklopedio
Logo de la Lua-lingvo Lua

VP:LUA

Kategorioj
Ŝablonoj
  • {{LuaModuleDoc}} por la dokumentado de modulo, por aranĝi la keston kun ligiloj
  • {{Modula statuso}} por la dokumentadoj de modulo, por indiki la evoluan statuson de modulo
  • {{Kun Lua-modulo}} por la dokumentado de ŝablono, kiu uzas Lua-modulon aŭ eĉ entute baziĝas sur modulo
  • {{Uzanto Projekto/Lua}} por uzantopaĝoj
Vidu ankaŭ
Komentoj
  1. (per {{Kun Lua-modulo}})
  2. (per {{LuaModuleDoc}})
vdr
Ŝablono
Rilataj temoj
Listoj
vdr

Luaestas skriptolingvo, kiu la13-an de marto2013fariĝis disponebla en la esperanta Vikipedio.

  • La funkcioj estas aldonataj per nova parserila funkcio{{#invoke:}}en ĉirkaŭantan klasikanŝablononkaj kompletigas tiun per ĝeneralaj helpaj funkcioj, kiuj ĝis nun estis malfacile realigeblaj.
  • Kompare al Vikisintaksaŝablona programadoLua ofertas antaŭ ĉio ĝis nun apenaŭ eblajn teknikojn rilate al signoĉenoj kaj pli grandaj kvantoj de numera datumoj.
  • EnMediaWikiĝi estas enplektata per lamw:Extension:Scribunto,kiu ankaŭ ebligus pliajn skriptajn lingvojn.

Organizaj demandoj de la esperanta Vikipedio estas aranĝataj surVikipedio:Lua.La prezentado sur ĉi tiu helpopaĝo kontraŭe principe koncernas ĉiun ajn Vikion.

Ŝablona programado

[redakti|redakti fonton]

Alvoko (regule ene de ŝablono):
{{#invoke: Modulnomo | Funkcinomo | valoro1 | valoro2 | NomoX=valoro... }}
La parametroj povas esti kiel ĉe ŝablonoj nomitaj aŭ nenomitaj.

  • Ĉe nekonataj de ekstere venantaj enhavoj ne estu uzataj nenomitaj parametroj, resp.1=valoro1kiel ĉe ŝablonoj (pliakrigita egalsigna problemo; kondukas al sintaksa eraro).
  • La redona valoro de la vokanta funkcio estas signoĉeno kun Vikia teksto, kiu estas enmetata adekvate je ĉiu pozicioj en la artikolon. En kazo de redono de aliaj datumaj tipoj tiuj estas aŭtomate konvertataj uzante la funkciontostring()en signoĉenon. Pliaj redonaj valoroj estaskonkatenigatajsen disiga signo (kunigataj).
  • Ekzemple:Modulo:Saluton– demonstrado:Saluton, mondo! Tio estas Lua!
  • Je la tempopunkto de la funkcia alvoko la parserilo jam finfaris plurajn gravajn paŝojn, precipe la ŝablonan ekspansion kaj la prilaboradon de ektension-etikedoj (<ref>,<pre>,<nowiki>,…). Tiel kondukus rekta eldono de{{Ŝablono}}do nur al eldono de la teksto{{Ŝablono}}sen la fakta ŝablona ekspansio, vidu pri tio laScribunto Lua referencon.
  • La plenuma ĉirkaŭaĵo estas remetata ĉe ĉiuj alvoko de#invoke.Rekta transpreno de variabloj inter du alvokoj ne estas ebla.
  • Ene de la vokanta ŝablono (resp. de la artikolo, se#invokeestas vokata rekte de artikolo) okazas la unuopaj alvokoj de#invokesinsekve kaj sub la uzado de la sama (ne alirebla) "gepatra" ĉirkaŭaĵo. Tio kondukas al kelkaj kromefikoj (vidugepatra ĉirkaŭaĵo).
  • Malsamaj enplektoj de la ŝablono mem (ekz. en artikolo) kontraŭe estas prilaborataj paralele kaj ne havas gepatran ĉirkaŭaĵon.

Alvoko de#invokerekte en artikolo aŭ ĝenerala projektopaĝo estas absolute nedezirata. Ĉi tiuj alvokoj ĉiam estu pakataj enŝablonojn;esceptaj estas tiaj projektopaĝoj, kiuj okupiĝas specife pri Lua (VP:LUA/***).

  • Nestiga profundo kaj grando (ekspansio) estas nepre reduktataj per Lua. Paĝoj, kiuj ĝis nun ne povis esti surekranigataj, nun povas esti montrataj sen transiro de la limigo.
  • La tempokonsumo por la kompleta surekranigo de paĝoj kun uzado de kompleksa ŝablona programado estas reduktebla al proksimume triono, se la ŝablona sintakso estas anstataŭigata per ekvivalentaj Lua-moduloj.
  • Ĉiuj Lua-moduloj de paĝo estas limigataj al akumulata procesora tempo de 10 sekundoj. Ĉi tiu tempo estas elmontrata kiel la uzado de aliaj risurcoj en la HTML-a fontkodo kiel PP-Report de la antaŭtraktilo. En tempoj de alta servila ŝarĝo la plenuma tempo povas altiĝi ĝis la kvaroblo. Tial estu pripensata koda optimigo (apenaŭ signifantaj estas atendeblaj) aŭ apartigo de tro grandaj paĝoj, se estas atingata en favoraj tempoj entuta tempo de 2 sekundoj.
  • Plia limigo povas esti la „multekostaj “funkcioj. Ilia nombro por montrata kompleta paĝo estas limigita al 500. Al tio nombras inter alia la demando pri la ekzisto de paĝoj kaj dosieroj.

Modulaj paĝoj kaj provoj

[redakti|redakti fonton]

Organizado de la paĝoj

[redakti|redakti fonton]
  • La fontokodoj staras en propra nomspacoModulo:en moduloj.
    • Ĉiu modulo enhavas unu aŭ plurajn funkciojn en Lua.
  • Eksklude paĝoj el la nomspacoModulo:povas esti uzataj por la utiligo.
    • Vikipediistaj subpaĝoj ne estas eblaj; krom tuj en la hierarkio de laŝablona provejo.
    • Ankaŭ ĉiuj subpaĝoj en la modula nomspaco validas kiel fontokodo kaj ne estas surekranigataj kiel Vikia teksto. Nur la subpaĝoj de la interkonsentita skemo por la dokumentado validas kiel tekstoj.
    • Paĝo kun Lua-fontokodo havas laContent ModelScribunto.
  • Al ĉiu fontokoda paĝo estas ligata dokumentada paĝo, kiu ankaŭ estu uzata.
  • Ŝablonoj ne estas efikaj en la fontokodo; proponoj je tuja forigo devas esti metataj alVP:ANaŭ kun indiko sur la ĉefpaĝon (modulo) en la dokumentadan paĝon. Rekta metado en kategoriojn estas same ne ebla.
  • Moduloj estas administrataj kiel ŝablonoj (enplektado de paĝoj). Ili aperas ankaŭ sub „Ligiloj ĉi tien “, eĉ se ili ne estas enplektitaj per#invoke,sed perrequire()estas alvokataj. Iloj nombras etwa la nombron de la enplektoj.

Alidirektiloj kaj alinomigoj

[redakti|redakti fonton]

Alidirektiloj kaj alinomigoj de unua modula paĝo al alia ne estas eblaj. „Alidirektilo “kreus Vikian sintakson anstataŭ Lua-fontokodo kaj (alie ol ĉe ŝablonoj) instigus enplektojn kajrequire()de la modulo al elmontrado de sintaksaj eraroj; tial povus alidirektilo eĉ ne senpene estas konservata.

Se la nomo de moduloj ne plu ŝajnas taŭga, la ekzisto de Lua-fontokodo devas resti certigata sub la programitaj nomoj. Ĉe produktive uzataj moduloj, kiuj jam estas enplektitaj de tre multaj paĝoj, la procedo estas relative komplikita; precipe se jam pluraj evoluigantoj estis kunagintaj.

  • Unue estu kreata nova modulo sub la estonta nomo kaj plenigataj per la fontokodo.
  • Se pluraj uzantoj partoprenis ĉe la programado, estu petata surVP:IUversia importo ene de la sama projekto.
  • Tiam ĉiuj uzadoj estu transmetataj al la nova nomo.
  • La uzado en la surekranigataj paĝoj inklude derequire()estas montrata surSpecialaĵo:Kio ligas ĉi tien?.Ĉi tiu listo poste devas esti malplena.
  • Je la fino la malnoviĝinta modulo estu forigata.

Ja povas esti atingata ĝis la nuligo de ĉiuj uzadoj unueca funkcieco, per tio ke kiel ununura linio estas metata:return require( "Modulo:NovaNomo" )

Prilaborado de paĝoj

[redakti|redakti fonton]
  • Ĉe la prilaborado de la fontkoda paĝo estas ŝaltataj laCodeEditor.
  • Sencimiga konsolo estas montrata.
  • Moduloj povas esti testataj en ŝablona ĉirkaŭaĵo (ene de alia paĝo).

Vidu ankaŭHelpo:Lua/Fontokodo kaj antaŭrigardo

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:xxxxxxxxxxxx
  • Modulo:Uzanto:xyxyxyxyxyxy
  • Subpaĝoj por uzanto-moduloj estas eblaj. La ŝablona provejo estas tamen preferinda.
Ŝablona provejo
Ĉiuj uzantoj povas administri per laŝablona provejosur siaj uzantopaĝoj proprajn modulojn por la testado. PereditorContenttiam ankaŭ estas je dispono laCodeEditor.

Krome estas uzeblajtestwiki:kajtest2wiki:,ankaŭde.wikipedia.beta.En esperanta vikipedio aperu tiam nur sufiĉe maturaj produktivaj versioj.

Programado en Lua

[redakti|redakti fonton]

Vidu pri tioHelpo:Lua/Programadokun la speciala temoj

Pri la lingvo Lua ĝenerale vidu tiujn subEksteraj ligilojdonitajn manlibrojn.

Montrado de fontokodo

[redakti|redakti fonton]
  • Fontokodo povas esti montrata en tekstopaĝoj per<syntaxhighlight lang= "lua" >.
  • La enhavo de tuta modulo povas esti montrata kolore per:
    {{#tag:syntaxhighlight |{{Modulo:Saluton}}| lang=lua}}

Eksteraj ligiloj

[redakti|redakti fonton]