Extension:Scribunto/Lua reference manual/eo

Ĉi tiu manlibro dokumentas kiel ĝi estas uzita en MediaWiki kun la  kromaĵo. Kelkaj partoj estas derivita el la referenca manlibro pri Lua 5.1, kiu estas havebla laŭ la MITa licenco.

Ek!
En MediaWiki-a vikio kun Scribunto ebligita, kreu paĝon, kiu titolo komencas per "Module:", aŭ se la vikio havas la Esperanta lokaĵo ebligita "Modulo:" egale efikas, ekzemple "Module:Bananas". En ĉi tiu nova paĝo, kopiu la sekvantan tekston:

ŝpari tion, kaj en alia ne-modula paĝo, skribu:

Escepte vi devus anstataŭigi "Bonvenigoj" kun io ajn, kion vi nomis vian modulon. Tio vokos la "saluti" elstaton (funkcion) elportita el la modulo. La kodo  anstataŭiĝos kun la teksto, kiun la elstato provizis, tiukaze "Hello, world!".

Alvoki Lua-n kodon ekde ŝablona kunteksto estas ĝenerale bona ideo. Tio signifas ke laŭ la vokanta paĝo, la komponaĵo estas sendependa de la realigo, ĉu per Lua, ĉu per vikiteksto. Tio egale evitas la enkondukon de aldonita kompleksa sintakso ene de la enhava nomujo de la vikio.

Strukturo de modulo
La modulo mem endas liveri Lua ujon (tabelon), kiun enhavas la elstatojn vokeblajn per. Ĝenerale, kiel montrita supre, loka statingo estas deklarata por enteni statujon, elstatoj estas aldonata al tiu ujo, kaj la ujo estas liverata ĉe la fino de la modulkodo.

Ajnaj elstatoj, kiuj ne estas aldonita al ĉi tiun ujon, ĉu loka, ĉu malloka, ne estos alirebla per, sed mallokaj statingoj povus esti alirebla de aliaj ŝarĝataj moduloj per. Estas ĝenerale bona stilo por la modulo, kiam ĝi deklaras loke ĉiujn elstatojn kaj statingojn.

Aliri transvokatojn el vikiteksto
Elstatoj vokitaj per  estos pasita unuopa transvokato, tiu estanta kadra objekto. Por aliri transvokatoj pasitaj al, kodo kutime uzos la   ujon de tiu kadra objekto. Estas ankaŭ ebla aliri la transvokatojn pasitajn al la ŝablono enhavanta la  per uzo de   kaj alirado al   por tiu kadro.

Tiu kadra objekto estas ankaŭ uzita por aliri situaciemivojn de la vikiteksto disponigilo, kiel voki disponigilajn elstatojn, elvolvi ŝablonojn kaj elvolvi arbitran vikitekstajn signvicojn (ĉenojn).

Tekstliverado
La modula elstato kutime devus leveri unuopan signvicon; kio ajn kiomo (valoro) estas liverato, ĝi estos vicigita per tostring kaj tiam kunvicigita sen apartigila signo. Ĉi tiu vico enhaviĝas en la vikiteksto kiel la rezulto de.

Al ĉi tiu punkto en la paĝanalizo, ŝablonoj jam estis elvolvitaj, disponigilaj elstatoj kaj elvolvaj etikedoj jam estis procezita kaj pre-ŝparaj transformoj (ekz. elvolvado de subskriba tildo kaj la dukta lertaĵo) jam okazis. Sekve la modulo ne povas uzi tiujn ivojn en ĝia produktada teksto. Ekzemple, se modulo liveras, la paĝo legos "Saluton, mondo!  ".

Aliflanke, substituo estas pritraktita dum pli frua stadio de procezo, do kun  nur aliaj postaj anstataŭigoj estos procezita. Pro tio ke la nesukcesa anstataŭigo restos en la vikiteksto, ili tiam estos procezata dum la sekvanta redakto. Tio ĉi estas ĝenerale evitinda.

Dokumentaro de modulo
Scribunto eblas dokumenti modulojn per aŭtomata asocio inter la modulo kaj paĝo de vikiteksta dokumentaro; defaŭlte la "/doc" subpaĝo de la kapsulo estas uzita por tia celo kaj estas transhavigi super la modulfontkodo de la modulo en la paĝo de la modulo. Ekzemple, la dokumentaro por "Modulo:Bonvenigoj" estus je "Modulo:Bonvenigoj/doc".

Tio estas agordebla per mesaĝoj de la Mediaviki-nomujo:


 * —Fiksas la nomon de la paĝo uzita por dokumentaro. La nomo de la modulo (sen la Modulo: prefikso) estas pasita kiel . Se ili estas en la kapsulo nomujo, la paĝoj specifita ĉi tie estos interpretita kiel vikiteksto prefere ol Lua fonto kaj ne povas esti uzita kun  . Defaŭlte ĝi estas "Modulo:$1/doc", t.e. la /doc subpage de la modulo. Notu ke disponigilaj elstatoj kaj aliaj elvolvado de kuniga krampo ne povas esti uzita en tiu mesaĝo.
 * — Mesaĝo montrata kiam la dokumentara paĝo ne ekzistas. The name of the page is passed as . The default is empty.
 * — Message displayed when the doc page does exist. The name of the page is passed as . The default is to transclude the documentation page.
 * — Header displayed when viewing the documentation page itself. The name of the module (with Module: prefix) being documented is passed as . The default simply displays a short explanation in italics.

Notu ke moduloj ne povas esti rekte Kategorigita kaj ne povas havi intervikiaj ligoj rekte aldonita. Tio estas almetebla en la dokumentara paĝo ene de  etikedoj, kie ili estos aplikita al la modulo kiam la dokumentara paĝo estas transhavigita je la modula paĝo.

Leksoj
En Lua, nomo' (ankaŭ nomita identigilo') povas esti ajna vico de leteroj, ciferoj kaj substrekoj, nekomencanta cifere. Nomoj estas usklecdistingaj; "ajn", "Ajn" kaj "AJN" estas ĉiuj malsamaj nomoj.

La sekvaj signoĉenoj estas rezervitaj kaj ne povas esti uzataj kiel nomoj:



Nomoj komencantaj per substreko sekvita de majuskloj estas rezervitaj por internaj globalaj variabloj de Luao.

Aliaj leksoj estas:



Komentoj
Komento komencas kun  ie ajn ekster signvico. Se la  estas tuj sekvita de longa eka krampo, la komento daŭras ĝis la responda ĉesa longa krampo; alie la komento daŭras ĝis la fino de la nuna linio.

Datentipoj
Lua estas meditipa lingvo. Tio signifas ke statingoj kaj kunvokatoj (elstataj kunvokataj statingoj) havas neniun tipon, nur kiomoj (valoroj) asignitaj al ili havas ĝin. Ĉiuj kiomoj portas tipon.

Lua havas ok bazajn datenajn tipojn, tamen nur ses estas aktuala laŭ la Scribunto etendaĵo. La  elstato liveros la tipon de kiomo.

La  elstato signvicigos kiomon. La  elstato nombrigos kiomon se ebla kaj alie liveros   (nomo de la vakua kiomo). Ne estas eksplicitaj elstatoj por transtipi kiomon al aliaj datenaj tipoj.

Nombroj estas aŭtomate transtipita al signvicoj kiam uzvokeje atendita, ekzemple kiam uzita laŭ la alviciga elstatilo. Signvicoj rekonitaj de  estas aŭtomate transtipita al nombroj kiam uzita kun aritmetikaj elstatiloj. Kiam duopcia stato estas atendita, ĉiuj aliaj statoj ol  (vakua) kaj  (falsa) estas konsiderita kiel vera.

Vakua
"nil" signas la datena tipo de, kiu ekzistas por reprezenti la vakuan kiomon.

ne povas esti uzita kiel indico en ujo kaj estas neniu diferenco inter malasignita uja indico kaj indico asignita kun vakua kiomo.

Kiam signvicigita, la rezulto estas. Kiam duopciigita,  estas konsiderita   (falsa).

Duopcia
Duopciaj kiomoj (ankaŭ nomitaj buleaj valoroj) estas   (vera) kaj   (falsa).

Kiam signvicigita, la rezulto estas  aŭ.

Malkiel multe aliaj lingvoj, duopciaj kiomoj estas nenombrigivaj. Plie, nur  (falsa) kaj   (vakua) estas konsiderataj   por duopciaj transtipadoj; la nombro nulo  kaj la vakua signvico  ambaŭ estas konsiderita vera.

Signvica
Lua signvicoj estas konsiderataj serioj de 8-duumaj okopoj; la aplikaĵo interpretestras laŭ ajna aparta kodado.

Signvicoj rektstatoj (literaloj) limigivas per rektaj citiloj ĉu unustrekaj ĉu dustrekaj ( aŭ  ); kiel Ĝavoskripto kaj malkiel PHP, ili semantike ne diferencas. La sekvantaj interpretŝaltaj sinsekvoj estas rekonitaj:


 * (pepo, okopo 7)
 * (retropaŝo, okopo 8)
 * (horizontala tabo, okopo 9)
 * (linifino, okopo 10)
 * (vertikala tabo, okopo 11)
 * (paĝosalto, okopo 12)
 * (ĉaretreveno, okopo 13)
 * (dustreka citilo, okopo 34)
 * (unustreka citilo, okopo 39)
 * (sobstreko, okopo 92)

Linifina rektsigno enkludeblas en signvico per sobstreka prefikso. Okopoj specifeblas eskapan sinsekvon '\ddd, kie "ddd" estas la dekuma nombro de la okopo en la intervalo 0–255. Por enkludi Unikoda signoj per interpretŝaltaj sinsekvoj, la individuaj okopoj de la UTF-8 kodoprezento specifendas; ĝenerale, estos pli simpla enigi rekte la Unikodan signon.

Rektsignvicos ankaŭ difinivas per longaj krampoj. Eka longa krampoj konsistas de eka kvadrata krampo sekvita de nulo aŭ pli egalsignoj sekvita de alia eka kvadrata krampo, ekzemple,  , aŭ. La eka longa krampo respondendas al ĉesa longa krampo, ekzemple,  , or  .. Kiel speciala kazo, se eka longa krampo estas tuj sekvita de linifino tiam la linifino ne estas enkludita en la vico, sed linifino tuj antaŭ la ĉesa longa krampo estas konservita. Interpretŝaltaj sinsekvoj ene de signvicoj limitigitaj per longaj krampoj ne estas interpretata.

Notu ke ĉiuj signvicoj estas konsideritaj veraj kiam transtipitaj al duopcia. Tio estas malsame de plejpartaj aliaj lingvoj, kie la vakua signvico estas kutime konsiderita falsa.

Nombra
Lua havas nur unu nombran tipon, kiu estas tipe reprezentita interne kiel duobleneta movalta kiomo. Laŭ tiu datenaranĝo, indukto inter -9007199254740992 kaj 9007199254740992 reprezentivas nete, dum pli grandaj kaj iomonaj nombroj eble elportas rondigan eraron.

Nombraj konstantoj estas specifita uzanta punkto  kiel ondisilo kaj sen grupiganta apartigilojn, ekzemple. Nombroj ankaŭ povas esti reprezentita uzanta E notacio sen spacetoj, ekzemple,   aŭ. Induktoj ankaŭ specifivas laŭ deksesuma notacio per  prefikso, ekze.

Kvankam neniom kaj nefinioj ĉu pozitivaj ĉu estas ĝuste entenita kaj pritraktita, Lua ne provizas respondan rektkiomon. La konstanto   estas pozitiva nefinio, kiel estas divido simila ol , kaj divido kiel   uzitivas por rapide produkti neniom.

Notu ke ĉiuj nombroj estas konsideritaj veraj kiam transtipita duopcie. Tio estas malsame ol plejpartaj aliaj lingvoj, kie la nombro 0 estas kutime konsiderita falsa. Kiam transformita al signvico, finiaj nombroj estas reprezentitaj ondisile, eble en E natacio; neniom estas  aŭ  ; kaj nefinioj estas   aŭ.

Uja
Lua ujoj estas hakujoj, similege kiel PHPaj ujoj kaj Ĝavoskriptaj objektoj.

Ujoj estas kreita per kunigaj krampoj. La vakua ujo estas. Por plenigi kampojn dum kreo, kom- kaj/aŭ punktokomo-apartigita listo de kamp-specifiloj enkludivas interkrampoj. Tio prenas iun ajn el pluraj formoj:


 * uzas la (unua) kiomo de elvolvo1 kiel la indico kaj la (unua) kiomo el elvolvo2 kiel kiomo.
 * estas ekvivalenta ol
 * estas krude ekvivalento ol, kie i estas indukto komencanta ekde  1 kaj alkremanta po ĉiu kampo specifado de tiu formo. Se tio estas la lasta specifilo kaj la elvolvo havas multajn kiomojn, ĉiuj kiomoj estas uzitaj; alie nur la unua estas gardita.

La kampoj en ujo estas aliritaj per uzado de krampa notacio, ekzemple. Signvicaj indicoj kiuj estas ankaŭ validaj nomoj ankaŭ povas esti alirita per uzado de punkta notacio, ekzemple  estas ekvivalenta al. Voki elstaton kiu estas konservita en la ujo uzivas dupunktan notacion; ekzemple, kiu estas ekvivalenta ol   aŭ.

Sinsekvo estas ujo kun ne-vakuaj kiomoj por ĉiuj pozitivaj induktoj ekde 1 ĝis iomego kaj seniomo (nil) por ĉiuj pozitivaj induktoj pli granda ol iomego. Multaj Luaj elstatoj elstatas nur por sinsekvoj kaj ignoras ne-pozitiva-induktaj indicoj.

Malsame multaj aliaj lingvoj kiel PHP aŭ Ĝavoskripto, ajna kiomo krom seniomo (nil) kaj neniomo (NaN) uzivas kiel indico kaj neniu transtipado estas elfarita. Ĉi tiuj estas ĉiuj validaj kaj apartaj:

Simile, ajna kiomo krom seniomo konservivas kiel kiomo en ujo. Konservi seniomo (nil) ekvivalentas forigi la indicon el la ujo, kaj aliri ajnan indicon, kiu ne estis fiksita liveros seniomo.

Notu ke ujoj estas neniam implice kopiita en Lua; se ujo estas pasita kiel elstata kunvokato kaj ke la elstato traktas la indicoj aŭ kiomoj en la ujo, tiuj ŝanĝoj estos videblaj el la vokanto.

Kiam signvicigita, la kutima rezulto estas "table" (ujo) sed ĝi povas esti superregata per  metastatvojo (metametodo). Eĉ la vakua ujo estas konsiderita vera kiam duopciigita.

Elstataj
En Lua, elstatoj (funkcioj) estas plenaj kiomoj: ili kreivas sennome, kunvokatigivas, asignivas al ingoj, kaj tiel plu.

Elstatoj estas kreitaj per la  ĉeflekso, kaj vokita per krampoj. Kompona faciligo ekzistas por nomaj elstatojn, lokaj elstatoj, kaj elstatoj kiuj agas kiel ujano. Vidu elstataj deklaroj kaj elstataj vakadoj malsupre por detaloj.

Lua elstatoj estas fermiĝoj, tio estas ke ili tenadas referencon pri la trafejo en kiu ili estas deklaritaj kaj ke ili alirivas kaj traktivas statingojn en tiu trafejo.

Kiel ujoj, se elstato estas asignita al malsama statingo aŭ pasita kiel kunvokato al alia elstato, ĝi estas ankoraŭ la sama fundamenta "elstata objekto" kiu estos vokita.

Kiam signvicigita, la rezulto estas "function".

Neapogitaj tipoj
La uzantdatena tipo estas uzita por enteni opakaj kiomoj por kromaĵoj de Lua skribitaj per aliaj lingvoj; ekzemple, uzantdatenoj uzivus por enteni C indikilon (pointer) aŭ sturkturon (struct). Por permesi la uzado de Scribunto en gastigaj medioj kie propr-tradukitaj kodoj ne estas permesita, nenia estas uzita.

La fadena tipo reprezentas la pritraktoj por kunprogramoj, kiuj ne havivas mediujon de Scribunto.

Kromujoj
Ĉiu ujo povas havi rilatan ujo nomita kromujo. La kampoj en la kromujo estas uzita de kelkaj elstatiloj kaj elstatoj por specifi malsaman aŭ retrodefaŭlta konduto por la ujo. La kromujo de ujo alirivas per la getmetatable elstato kaj asignita per la setmetatable elstato.

Ilia kromsolviloj alirivas per rawget.

Kromujaj kampoj kiuj influas la ujo mem estas:
 * __index
 * Tio estas uzita kiam aja aliro  provizus seniomo (nil). Se la kiomo de tiu kampo estas ujo, la aliro estos ripetita en tiu ujo, tio estas   (kiu povas alvoki la __index de la kromujo de tiu ujo). Se la kiomo de tiu kampo estas elstato, la elstato estos vokita kiel  . La rawget elstato ĉirkaŭiras tiu krommetodo.


 * __newindex
 * Tio estas uzita dum indica asignado al ujo   kiam   provizus seniomo (nil). Se la kiomo de tiu kampo estas ujo, la asignato estos ripetita en tiu ujo, tio estas   (kiu povas alvoki la __newindex de la kromujon de tiu ujo). Se la kiomo de tiu kampo estas solilo, la elstato estos vokita kiel  . La rawset elstato ĉirkaŭiras tiun kromujon.


 * __call
 * Tio estas uzita kiam la elstatvoka komponaĵo estas uzita kun ujo, . La kiomo devas estas elstata, vokita simile ol.


 * __mode
 * Tio estas uzita por fari ujon, kiuj entenas feblajn referencojn. La kiomo estendas signvicon. Defaŭlte, ajna kiomo kiu estas uzita kiel indico aŭ kiel kiomo en ujo ne estos senrubigata. Sed se tiu metakampo enhavas la leteron 'k', indicoj povas esti senrubigota se ne estas malfeblaj referencoj kaj se ĝi enhavas 'v' kiomojn eble; ambaŭkaze, ambaŭ la responda indico kaj la kiomo estas forigita de la ujo. Notu ke la konduto estas nedifinata se tiu kampo estas ŝanĝita post la ujo estas uzita kiel metaujo.

Alia metaujaj kampoj inkludas:


 * __add†
 * __sub†
 * __mul†
 * __div†
 * __mod†
 * __pow†
 * __unm
 * __concat†
 * __eq‡
 * __lt‡
 * __le‡
 * __pairs
 * __ipairs
 * __metatable*
 * __tostring

† Por duloka elstatiloj, Lua rigardas unue la metaujon de la statinga kunvokato (se iu ajn) kaj poste al la kioma kiam serĉanta por uzebla metastatvojo. ‡ Por interrilataj elstatiloj, la metastatvojoj estas nur uzita se la sama elstato estas specifita en metaujoj de ambaŭ kunvokatoj. Malsamaj sennomaj elstatoj, eĉ kun identa kodenhavo kaj fermo, ne povas esti konsiderita la sama. * __metatable (metaujo) influas ambaŭ getmetatable kaj setmetatable

Notu: En Lua, ĉiuj signvicoj ankaŭ kunhavigas ununuran metaujo, en kiu  rilatas al la   ujo. Tiu metaujo ne estas alirebla en Scribunto nek estas la referencita  ujo; la   ujo disponebla en moduloj estas kopio.

Statingoj
Statingoj estas lokoj kiuj ŝparas kiomoj. Estas tri specoj de statingoj en Lua: ĉies statingoj, lokaj statingoj kaj ujaj kampoj.

Nomo reprezentas ĉies aŭ lokan statingo (aŭ elstata kunvokato, kiu estas nur speco de loka statingo). Statingos estas supozita malloka krom se eksplicite deklarita kiel loka uzanta la  ĉeflekso. Ajna statingo kiu ne estis asignita kiomon estas konsiderita kiel senioma kiomo.

Mallokaj statingoj estas ŝparitaj en norma Lua ujo nomita environment (medio); tiu ujo estas ofte disponebla kiel la ĉies statingo. Ĝi estas ebla fiksi metaujo por ĉi tiu ĉies statinga ujo; la   kaj   metastatvojoj estos vokitaj por alirojn kaj asignadoj al ĉies statingoj tiel ili estus pro aliroj kaj asignadoj al kampoj en ajna alia ujo.

La medio por elstato alirivas per la getfenv elstato kaj ŝanĝivas per setfenv elstato; en Scribunto, tiuj elstatoj estas severe restriktita se ili estas disponeblaj aŭ tute ne estas disponeblaj.

Lokaj statingoj estas leksikologie trafebla; vidu Deklaroj de lokaj statingoj por detaloj.

Elvolvoj
Elvolvo estas io kiu havas kiomojn: rektstatoj (nombroj, signvicoj, vera, falsa, senioma), deklaroj de sennoma elstato, anigiloj de ujo, referencoj de statingo, elstataj vokoj, la elvolvo de varia kunvokataro, elvolvoj envolvitaj en kromoj, unuloka elstatiloj aplikita al elvoloj, kaj elvolvoj kombinitaj kun dulokaj elstatiloj.

Plejpartoj de elvolvoj havas unu kiomon; elstataj vokoj kaj la elvolvoj de varia kunvokataro povas havi ajnan nombron. Notu ke envolvi elvolvo de elstata voko aŭ varia kunvokataro inter kromoj perdigos ĉiujn ilin krom la unua kiomo.

Elvolvaj listoj estas komo-apartigitaj listojn de elvolvoj. Ĉiuj krom la lasta elvolvo estas devigita al unu valoro (foriganta pluajn kiomojn aŭ uzanta  se la elvolvo havas neniujn kiomojn); ĉiuj kiomoj de la lasta elvolvo estas inkludita en la kiomoj de la elvolva listo.

Aritmetikaj elstatiloj
Lua provizas la kutimajn aritmetikajn elstatilojn: adicio, subtraho, multipliko, divido, modulo, potencigo kaj negacio.

Kiam ĉiuj elstatatoj estas nombroj aŭ signvicoj por kiuj tonumber liveras ne-seniom, la elstatadoj havas ilian kutimajn signifojn.

Se ajna elstatato estas ujo kun taŭga metastatvojo, la metastatvojo estos vokita.

Rilataj elstatiloj
La rilataj elstatiloj en Lua estas,  ,  ,  ,  , kaj. La rezulto de rilata elstatilo estas ĉiam duopcia.

Egaleco unue komparas la tipojn de ĝiaj elstatatoj; se ili estas malsamaj, la rezulto estas falsa. Tiam ĝi komparas la kiomojn: vakua, duopcia, nombra kaj signvicaj estas komparitaj en la atendata maniero. Elstatoj estas egalaj se ili referas al la tutsamaj elstataj objektoj;  liveros falsan kiomon, kiel ĝi  komparas du malsamajn sennomajn elstatojn. Ujoj estas defaŭlte komparitaj sammaniere, sed tio povas esti ŝanĝita per la  metastatvojo.

Malegaleco estas la plena negacio de egaleco.

Por la ordonantaj elstatiloj, se ambaŭ estas nombroj aŭ ambaŭ estas signvicoj, ili estas komparitaj rekte. Sekve, metastatvojoj estas kontrolitaj:


 * uzas
 * uzas  se disponebla, aŭ se   estas disponebla tiam ĝi estas konsiderat ekvivalenta al
 * estas konsiderat ekvivalenta al
 * estas konsiderat ekvivalenta al

Se la necesa metastatvojoj ne estas disponeblaj, eraro estas pelata.

Logikaj elstatiloj
La logikaj elstatiloj estas  (kaj),   (aŭ) kaj   (ne). Ĉiuj uzas la norman interpreton kie vakua kaj falsa estas konsideritaj falsaj kaj io ajn alia estas konsiderita vera.

Pro, se la unua elstatato estas konsiderita falsa tiam ĝi estas liverota kaj la dua elstatato ne estas elstatigota; alie la dua elstatato estas liverota.

Por, se la unua elstatato estas konsiderita veran tiam ĝi estas liverota kaj la dua elstatato ne estas statigota; alie la dua elstatato estas liverota.

Por, la rezulto ĉiam estas vera aŭ falsa.

Notu ke  kaj   kurtvojas. Ekzemple, ami aŭ umi nur vokos  se   liveras falsan aŭ   kiel ĝia unua kiomo.

Ĉena elstatilo
La ĉena elstatilo estas du punktoj, uzita. Se ambaŭ elstatatoj estas nombroj aŭ signvico, ili estas transtipataj al signvicoj kaj kunĉenataj. Alie se   metastatvojo estas disponebla, ĝi estas uzita. Alie, eraro estas pelata.

Notu ke Lua signvicoj estas malŝanĝebla kaj Lua ne provizas ajnan specon de "signvica konstruilo", do ciklilo kiu multfoje faras    necesos krei novan signvicon por ĉiu iteracio kaj poste senrubigi la malnovajn signvicojn. Se multaj signvicoj ĉenendas, povas esti pli rapida uzi  aŭ enmeti ĉiujn la vicsignojn en sinsekvo kaj uzi   ĉe la fino.

Longeca elstatilo
La longeca elstatilo estas, uzita kiel. Se   estas signvico, ĝi liveras la okopan longecon. Se  estas  sinsekva ujo, ĝi liveras la longecon de la sinsekvo.

Se  estas ujo kiu  ne estas sinsekvo, la   povas liverunta ajnan kiomon tiom tia ke   ne estas   kaj   estas , eĉ se estas ne-seniomaj kiomojn laŭ sekvantaj indeksoj. Ekzemple,

Elstatilaj antaŭeco
La elstatila antaŭeco de Lua aŭ ordo de elstatoj, de plej antaŭeca al plej posteca:


 * 1) not # - (negacio)
 * 2) + - (subtraho)
 * 3) and
 * or
 * 1) and
 * or
 * 1) and
 * or

Ene de antaŭeca nivelo, plej multe dulokaj elstatiloj estas unualoko-asociecaj, t.e.    estas interpretita kiel. Potencigo kaj ĉenigo estas dualoko-asociecaj, t.e.   estas interpretita kiel.

Elstataj vokoj
Lua elstataj vokoj similas tiujn en plejpartaj aliaj programlingvoj: nomo sekvita de listo de argumentoj inter kromoj:

elstato( elvolvo-listo )

Kiel estas kutima kun elvolvaj listoj en Lua, la lasta elvolvo en la listo povas provizi plurajn kunvokatajn kiomojn.

Se la elstato estas vokita kun malpli da valoroj en la elvolva listo ol estas kunvokatoj en la elstata difino, la ekstraj kunvokatoj havos   kiel kiomo. Se la elvolva listo enhavas pli da kiomoj ol estas kunvokatoj, la ekscesaj kiomoj estas ignorita. Ĝi estas ankaŭ ebla por funkcio preni varian nombron de argumentoj; vidas Elstataj deklaroj por detaloj.

Lua ankaŭ permesas rektan vokon de elstata liverata kiomo, t.e. . Se elvolvo pli kompleksa ol varia aliro estas necesa por determini la vokenda elstato,  kromata elvolvo povas esti uzita anstataŭ de la varia aliro.

Lua havas komponaĵa faciligo por du oftaj kazoj. La unua estas kiam ujo estas uzata kiel objekto kaj la elstato estas vokota kiel statvojo de la objekto. La komponaĵo

ujo:nomo( elvolvo-listo )

estas tute ekvivalenta al

ujo.nomo( ujo, elvolvo-listo )

La dua ofta kazo estas la tekniko de Lua por efektivigi nomitajn kunvokantojn per pasanta ujo kiu enhavas la nom-al-kiomajn mapigojn kiel la unika pozicia kunvokato al la elstato. Tiukaze, la kromoj ĉirkaŭ la kunvokat-listo povas esti preterlasita. Tio ankaŭ efikas se la elstato estas pasota kiel unuopa rekstata signvico. Ekzemple, la vokoj

func{ arg1 = exp, arg2 = exp } func"string"

estas ekvivalentaj al

func( { arg1 = exp, arg2 = exp } ) func( "string" )

Tiuj povas esti kombinitaj; la sekvantaj vokoj estas ekvivalentaj:

table:name{ arg1 = exp, arg2 = exp } table.name( table, { arg1 = exp, arg2 = exp } )

Elstataj deklaradoj
La komponaĵo de elstataj deklaroj prezentas kiel:

function ( var-list ) block end

Ĉiuj statingoj en statingo-listo estas loka al la elstato, kun kiomoj asignitaj el la elvolva listo en la elstata voko. Suplementaj lokaj statingoj povas esti deklarata en la kodingo.

Kiam la elstato estas vokata, la ordonoj en kodingo estas rulata post lokaj statingoj respondantaj al statingo-listo estas kreitaj kaj asignitaj kiomojn. Se elŝaltila ordono estas atingita, la kodingo estas elirita kaj la kiomoj de la elstatovoka elvolvo estas tiuj donita per la elŝatila ordono. Se rulo atingas la finon de la kodingo de la elstato sen renkonti elŝatila ordono, la rezulto de la elstatovoka elvolo havas nulajn valorojn.

Lua elstatoj estas leksikaj fermoj. Kutima idiomaĵo estas deklari "privatajn transvokajn" statingoj kiel lokaj en la trafejo kie la elstato estas deklarita. Ekzemple,

Elstato povas esti deklarita por akcepti varian nombron da kunvokatoj, per uzo de  kiel fina ero en la statingo-listo:

function ( var-list, ... ) block end

Ene de la kodingo, la variakunvokata elvolvo  povas esti uzita, kun la rezulto estanta ĉiuj la kromaj kiomoj de la elstata voko. Ekzemple,

La  elstato estas konceptita por labori kun la sternata elvolvo; precipe,   uzendus anstataŭ   por kalkuli la nombron de kunvokatoj en la sternata elvolvo, ĉar   ne povas esti sinsekvo.

Lua provizas kompona faciligo por kombini elstatan deklaron kaj asignadon al statingo; vidu elstato deklaro ordo por detaloj.

Notu ke tio ne laboros:

 local factorial = function ( n ) if n <= 2 then return n   else return n * factorial( n - 1 ) end end

Pro tio ke la elstata deklaro estas procezita antaŭ la asignado de loka statingo estas kompleta, "faktoriali" en la elstata enhavo rilatas al la (verŝajne nedifinita) tielnomita statingo en ekstera trafejo. Tiu problemo estas evitebla per deklarado de la loka statingo unue kaj tiam asigni ĝin en sekvanta ordono aŭ per komponaĵo de la elstato-deklara ordono.

Ordonoj
Ordono estas la baza unuo de rulo: unu asignado, ŝaltpelo, elstata voko, statinga deklaro, ktp.

Kodono (angle chunck, litere peco) estas sinsekvo de ordonoj, opcie apartigitaj per punktokomoj. Kodono estas konsiderata la enhavo de anonima elstato, do ĝi povas deklari lokan statingoj, ricevi kunvokatoj kaj liveri kiomojn.

Kodingo estas ankaŭ sinsekvo de ordonoj, kiel kodono. Kodingo povas esti limdifinita por krei unuopan ordono:. Tiuj povas esti uzita por limigi la trafejon de lokaj statingoj aŭ aldoni  aŭ   ene de alia kodingo.

Alsignadoj
La varia-listo estas komo-apartigita liston de statingoj; la elvolvo-listo estas komo-apartigita liston de unu aŭ pli da elvolvoj. Ĉiuj elvolvoj estas statigita antaŭ ajnaj ordonoj estas elfarita, do,  interŝanĝos la valorojn de amo kaj belo.

Lokaj statingo-deklaroj
Lokaj statingoj povas esti deklarita ie ajn ene de kodingo aŭ kodono. La unua formo, sen elvolva listo, deklaras la statingoj sed ne asignas kiomon do ĉiuj statingoj havas  kiel kiomo. La dua formo asignas valorojn al la lokaj statingoj, kiel priskribita en Komisioj antaŭe.

Notu ke trafebleco de la loka statingo komencas kun la ordono post la loka statingo-deklaro. Do deklaro kiel  deklaras  lokan statingo   kaj asignas ĝin la valoro de   de la ekstera trafejo. La lokaj statingoj restas en trafejo ĝis la fino de la plejena kodingo enhavanta la loka statingo deklaro.

Ŝaltpeliloj
La  (dum) ordono ripetas kodingo ĝis la elvolvo statigas al vera kiomo.

La  (ripete) ordono ripetas kodingon ĝis elvolvo statigas al vera kiomo. Lokaj statingoj deklaritaj en la kodingo povas esti alirata en la elvolvo.

Tiu unua formo de la  (por) ciklilo deklaros  lokan statingon kaj ripetos la kodingo por kiomoj de ekelvolvo al lastelvolvo aldonanta poelvolvo dum ĉiu iteracio. Notu ke poelvolvo povas esti tute ne-informata, en kiu kazo  estas uzata, sed ne-nombraj kiomoj kiel   kaj   estas eraro. Ĉiuj elvolvoj estas statigitaj unufoje antaŭ ekcikli.

Tiu formo de la  ciklilo estas proksime ekvivalenta al

escepte ke la statingoj ero, limo, kaj volvo ne estas trafebla de ie ajn alia. Notu ke la statingo nomo estas loka al la kodingo; por uzi la kiomon post la ciklilo, ĝi devas esti kopiita al statingo deklarita ekster la ciklilo.

La dua formo de la  ciklilo efikas kun iteraciaj statiloj. Kiel en la unua formo, la elvolvo-listo estas statigita nur unufoje antaŭ ekcikli.

Ĉi tiu formo de la  ciklilo estas proksime ekvivalenta al

Escepte ke denove la statingoj,   kaj   ne estas trafebla ie ajn alia. Notu ke la statingoj en statingo-listo estas lokaj al la kodingo; por uzi ilin post la ciklilo, ili devas esti kopiita al statingoj deklaritaj ekster la ciklilo.

Ofte la elvolvo-listo estas unuopa elstata voko kiu liveras la tri valoroj. Se la iteracia elstato estas skribebla tiel ke ĝi nur dependas el la transvokatoj provizitaj al ĝi, tio estus la plej efika. Alie, Programado en Lua sugestas ke fermo estas preferata ol liveri ujon kiel la komuna statingo kaj ĝisdatigi ĝiajn anojn dum ĉiu iteracio.

Rulas ĉefkodingo se ĉefelvolvo liveras, alie rulas kromkodingo se kromelvolvo liveras   kaj lastblokindo alie. La  parto estas opcia kaj la   parto estas ripetebla kaj opcia kiel necesa.

La  ordono estas uzita por liveri kiomojn de elstato aŭ  kodono (kiu estas nur elstato). La elvolvo-listo estas komo-apartigita liston enhavanta nulo aŭ pli da elvolvoj.

Lua efektivigas postaj vokoj: se elvolvo-listo konsistas de nur unu elvolvo kiu estas elstata voko, la nuna staka framo estos reuzota por la voko al tiu elstato. Tio havas implicojn por elstatoj kiuj traktas la vokan stakon, kiel  kaj.

La  ordono devas esti la lasta ordono en ĝia kodingo. Se por ajn ialo  estas necesa antaŭe en la kodingo, eksplicita kodingo    estas uzebla.

La  ordono estas uzita por fini la rulon de ,   aŭ   ciklilo, ŝaltanta al la sekvanta ordono post la ciklilo.

La  ordono devas esti la lasta ordono en ĝia kodingo. Se por ial ajn  estas necesa antaŭe, eksplicita kodingo   estas uzebla.

Elstataj vokoj kiel ordonoj
Elstataj vokoj estas uzeblaj kiel ordono; tiukaze, la elstato estas vokata nur por ajnaj flankaj efikoj ĝi povas havi (ekz.  protokolaj kiomoj) kaj ajnaj liveratajn kiomojn estas ignorota.

Elstato-deklaraj ordonoj
Lua provizas kompona faciligo por fari deklaro de elstato kaj asigni ĝin al elstato pli natura. La sekvantaj paroj de deklaroj estas ekvivalentaj

-- Basic declaration function func( var-list ) block end func = function ( var-list ) block end

-- Local function local function func( var-list ) block end local func; func = function ( var-list ) block end

-- Function as a field in a table function table.func( var-list ) block end table.func = function ( var-list ) block end

-- Function as a method in a table function table:func( var-list ) block end table.func = function ( self, var-list ) block end

Notu la dupunktan notacion ĉi tie egalas la dupunktan notacion por elstataj vokoj, aldonanta implican kunvokaton nomita  (mem) kiel unua ero de la kunvokata listo.

Eraro-traktado
Eraroj povas esti "ĵetata" per la  kaj   elstatoj. Por "kapti" erarojn, uzu  aŭ. Notu ke kelkaj internaj eraroj de Scribunto estas nekaptebla en Lua kodo.

Senrubigo
Lua elfaras aŭtomatan memoran procedon. Tio signifas ke vi bezonas prizorgi nek pri asigni memoron por novaj objektoj nek pri liberigi ĝin kiam la objektoj ne plu estas necesaj. Lua procedas memoron aŭtomate per ruli senrubigilon fojfoje por kolekti ĉiuj senutilaj objektoj (tio estas, objektoj kiu estas ne plu trafebla el Lua) kaj objektoj kiuj estas nur trafeblaj per feblaj referencoj. Tuto da memoro uzata de Lua estas submetata al aŭtomata procedo: ujoj, elstatoj, signvicoj, ktp.

Senrubigo okazas aŭtomate kaj ne povas esti agordata ene de Scribunto.

Normaj elordontekoj
La normaj elordontekoj de Lua provizas havendajn servojn kaj elfaro-kritikaj elstatoj al Lua. Nur tiuj partoj de la normaj elordontekoj kiuj estas havebla en Scribunto estas dokumentita ĉi tie.

_G


Tiu statingo entenas referenco al la nuna ĉiea statinga ujo; la ĉiea statingo  ankaŭ esti trafebla per. Notu, tamen, ke estas nenio speciala pri  mem; ĝi estas reasignebla en la sama maniero ol ajna alia statingo:

La ĉiea statinga ujo povas esti uzita tute kiel ajna alia ujo. Ekzemple,

_VERSION


Signvico enhavanta la rulanta versio de Lua, ekz. "Lua 5.1".

assert
Se  estas   aŭ , eligas eraron. En ĉi tiu kazo,  estas uzita kiel teksto de la eraro: se ĝi estas   (aŭ nespecifita), la teksto estas "assertion failed!" ("aserto malsukcesis!"); se ĝi estas signvico aŭ nombro, la teksto estas tiu kiomo; alie   mem pelos eraron.

Se  estas iu ajn alia kiomo,  liveras ĉiujn opelstatoj,   kaj   inklude.

Iom kutima idiomaĵo en Lua estas ke elstatoj liveras  kiomon en ordinara elstatado kaj laŭ malsukceso liveras   aŭ   kiel la unua kiomo kaj erara sciigo kiel la dua kiomo. Flua erara kontrolado povas tiam esti efektivigita per envolvado de la voko en alia voko al :

error
Eldonas eraron, kun la teksto.

normale aldonas iun informon pri la loko de la eraro. Se  estas 1 aŭ neinformita, tiu informo estas la loko de la voko al    mem; 2 uzas la loko de la voko de la elstato kiu vokis  ; kaj tiel plu. Pasanta 0 ne malinkludas la informon pri loko.

getfenv
Notu ke tiu funkcio povas esti malhavebla, depende de  en la maŝina agordo.

Liveras medion (malloka statinga ujo), kiel specifita per  :


 * Se ĝi tiomas 1,  aŭ ne estas informata, liveras la medion de la elstato vokanta  . Ofte tio estos la sama ol _G.
 * Induktoj inter 2 kaj 10 liveras la medio de elstatoj pli antaŭ en la vokstako. Ekzemple, 2 liveras la medio por la elstato kiu vokis la nunan elstaton, 3 liveras la medio por la elstato vokanta tiu elstato, kaj tiel plu. Eraro estos pelata se la kiomo estas pli alta ol la nombro da elstataj vokoj en la stako aŭ se la celata staknivelo liveris posta voko.
 * Pasado de elstato liveras la medion kiu estos uzota kiam tiu elstato estas vokota.

La medioj uzitaj de ĉiuj normaj elordontekaj elstatoj kaj elordontekaj elstatoj de Scribunto estas protektataj. Provado de aliro al ĉi tiujn mediojn per  liveros   anstataŭ.

getmetatable
Liveras la metaujo de ujo. Iu ajn alia tipo liveros.

Se la metaujo havas  kampo, tiu kiomo estos liverita anstataŭ la efektiva metaujo.

ipairs
Liveras tri kiomoj: laŭciklila elstato, la ujo   kaj. Tio ĉi estas celita por uzo en la laŭciklila formo de :

Tio laŭciklos la parojn ( 1, ujo[1] ), ( 2, ujo[2] ), kaj tiel plu, haltanta kiam ujo[i] estus.

La norma konduto povas esti superregata per provizado de  metastatvojo. Se tiu metametodo ekzistas, la alvoko al ipairs redonos la tri valorojn redonitajn je  anstataŭe.

next
Tio permesas iteracii laŭ la eroj el ujo. Se  estas   aŭ nespecifita, liveras la "unuan" eron el la ujo kaj ĝian kiomon; alie, ĝi liveras la "sekvantan" eron kaj ĝian kiomon. Kiam ne plu estas haveblaj eroj, liveras. Eblas kontroli ĉu ujo estas vakua per la elvolo.

Notu ke la ordo en kiu la eroj estas liverataj ne estas specifita, eĉ por numeraj ujoj. Por transiri ujojn laŭ numera ordo, uzu numera   aŭ ipairs.

Konduto estas nedifinita se, kiam uzi  por trairi, ajna ne-ekzistanta eron estas asignita kiomo. Asignado de nova kiomo (inklude ) al ekzistanta kampo estas permesita.

pairs
Liveras tri kiomoj: laŭciklila elstato ( next  aŭ iu simil-efika), la ujo   kaj. Tio estas celita por uzo en la laŭciklila formo de :

Tio iteracios laŭ la noma-kiomaj paroj en  tute kiel next efektivigus; vudu la dokumentaron pri next por restriktoj rilate al modifi la ujon dum trairado.

La norma konduto superprengius per provizado de  metastatvojo. Se tiu metastatvojo ekzistas, la voko al  liveros la tri kiomoj liverota per   anstataŭ.

pcall
Vokas la elstato  kun la donita argumentojn per protektita modo. Tio signifas ke se eraro estas levita dum la voko al,   liveros   kaj la erara-mesaĝo levita. Se neniu eraro okazas,  liveros   kaj ĉiuj kiomoj liverotaj per la voko.

Je pseŭdokodo,  povus esti difinita jene:

rawequal
Tio estas ekvivalenta al  escepte ke ĝi ignoras ajna   metastatvojo.

rawget
Tio estas ekvivalenta al  escepte ke ĝi ignoras ajnan   metastatvojo.

rawset
Tio estas ekvivalenta al  escepte ke ĝi ignoras ajna __newindex metastatvojo.

select
Se  estas nombro, liveras ĉiuj argumentoj en   post la. Se  estas la signvico '#', liveras la nombro da ero en.

Alivorte,  estas io proksimume kiel la jena, escepte ke ĝi efikas korekte eĉ kiam   enhavas   kiomoj (vidu dokumentaron pri # kaj unpack por la problemo pri seniomoj).

setmetatable
Statigas la metastatvojo de ujo. povas esti senioma, sed devas esti eksplicite provizita.

Se la nuna metastatvojo havas   kampo,   pelos eraron.

tonumber
Provas transformi je  al nombro. Se ĝi jam estas nombro aŭ signvico transtipebla al nombro, tiam  liveras tiun nombron; alie, ĝi liveras.

La opcia  (defaŭlte 10) specifas la bazon por interpreti la numeralon. La bazo povas esti ajna integralo inter 2 kaj 36, inklude. En bazoj super 10, la letero 'A' (ajna usklece) reprezentas 10, 'B' reprezentas 11 kaj tiel antaŭen, kun 'Z' reprezentanta 35.

En bazo 10, la kiomo povas havi decimalan parton, povas esti esprimita laŭ scienca "E" notacio kaj povas komenci per "0x" por indiki bazon 16. En aliaj bazoj, nur sensignumaj induktoj estas akceptitaj.

tostring
Transtipas je  al signvico. Vidu datenajn tipojn supre por detaloj pri kiel ĉiu tipo estas transtipita.

La norma konduto por ujoj estas superregita per provizado de __tostring metastatvojo. Se tiu metastatvojo ekzistas, la voko al __tostring liveros la unikan kiomon liverita per  anstataŭ.

type
Liveras la tipo de  kiel signvico: ,  ,  ,  ,  , aŭ.

unpack
Liveras kiomojn el la provizita ujo, simile ol tiu ke  liverus se elskribita mane. Se  aŭ ne provizita,   defaŭltas al 1 kaj   defaŭltas al.

Notu ke rezultoj estas nedeterminismaj se  ne estas  sinsekvo kaj   estas   aŭ nespecifita; vidu Longeca elstatilo por detaloj.

xpcall
Tio estas similege al, escepte ke la eraro-mesaĝo estas pasita al la elstato   antaŭ liveri ĝin.

Laŭ pseŭdocode,  povus esti difinita simile ol tiu:

debug.traceback
Liveras signvicon kun retrospuro de la vokstako. Opcia sciiga signvico estas almetita al la komenco de la retrospuro. Opcia nivela nombro indikas laŭ kiu staka nivelo komenci la retrospuro.

math.abs
Liveras la absolutan kiomo de.

math.acos
Liveras la arkokosinuso de  (esprimita per radianoj).

math.asin
Liveras la arksinuso de  (esprimita per radianoj).

math.atan
Liveras la arktangenton de  (esprimita per radianoj).

math.atan2
Liveras la arktangento de denominatorono el numeratoro  (esprimita per radianoj), uzanta la signumoj de ambaŭ kunvokatoj por trovi la kvadranton de la rezulto.

math.ceil
Liveras la plej malgrandan indukton kiu estas pli granda aŭ egala ol.

math.cos
Liveras la kosinuso de  (esprimita en radianoj).

math.cosh
Liveras la hiperbolan kosinuson de.

math.deg
Liveras la angulon, esprimata en radianoj, en gradoj.

math.exp
Liveras la kiomo de $$entelekiom^{iom}$$, tio estas bazo de la funkcio de natura logaritmo pezigite (potencigite) per.

math.floor
Liveras la plej grandan indukton pli malgranda aŭ egala ol.

math.fmod
Liveras la reston de la divido de  per   kiu rondigas la kvocienton al nulo. Ekzemple, matematiko. liveras.

math.frexp
Liveras du kiomojn  kaj   tiel


 * Se $$iom$$ estas finia kaj ne-nula: $$iom = ununormafrakcio \times 2^{pezo}$$,   estas indukto kaj la absoluta kiomo de   estas en la intervalo $$[0,5;1[$$,
 * Se  estas nulo:  kaj    estas
 * Se  estas neniom  aŭ nefinio:   estas   kaj   ne estas specifita

math.huge
La kiomo reprezentanta pozitivan nefinio; pli granda aŭ egala ol iu ajn alia nombra kiomo.

math.ldexp
Returns $$m \times 2^e$$ ( should be an integer).

math.log
Liveras la ĉefproentelekiomo (natura logaritmo) de.

math.log10
Liveras la dekumo-baza proentelekiom (logaritmo) de.

math.max
Liveras la maksimuman kiomon inter ĝiaj kunvokatoj.

Konduto kun neniom  ne estas specifita. Kun la nuna efektivigo,  estos liverota se   estas , sed aliaj sekvantaj   estos ignorata.

math.min
Liveras la minimuman kiomon inter ĝiaj kunvokatoj.

Konduto kun neniom  ne estas specifita. Kun la nuna efektivigo,  estos liverota se   estas , sed aliaj sekvantaj   estos ignorata.

math.modf
Liveras du nombroj, la entjera parto de  kaj la frakcia parto de. Ekzemple, math.modf( 1.25 ) liveras.

math.pi
La kiomo de traonĉirkaŭiom ($$\pi$$).

math.pow
Ekvivalenta ol.

math.rad
Liveras la angulon  (esprimita per gradoj) en radioj.

math.random
Liveras pseŭdo-hazarda nombro.

La lokoj  kaj   povas esti neinformataj, sed se specifataj ili induktigeblendas.


 * Senlokate, liveras rean nombron el la intervalo $$[0,1[$$
 * Kun unu lokato, liveras indukton el la intervalo $$[1,tiom]$$
 * Kun du lokatoj, liveras indukton el la intervalo $$[tiom, aliom]$$

math.randomseed
Asignas  kiel la semo por la pseŭdo-hazarda generilo.

Notu ke uzi la saman semon kaŭzos  eligi la saman sinsekvon de nombroj.

math.sin
Liveras la sinuson de  (esprimata per radianoj)

math.sinh
Revenas la hiperbolan sine de.

math.sqrt
Liveras la duonan (kvadratan) radikon de. Ekvivalenta ol.

math.tan
Liveras la tangento de  (esprimata per radianoj).

math.tanh
Liveras la hiperbola tangento de.

os.clock
Liveras proksimumon en sekundoj de procesoro tempuzado per la elordono.

os.date

 * formatDate el lingva elordonteko estas uzebla por pli ampleksa datenaranĝo

Liveras signvicon aŭ ujon enhavanta daton kaj tempon, aranĝita laŭ. Se la prezento ne estas informat aŭ, "%c" estas uzota.

Se  estas provizita, ĝi estas la aranĝenda tempo (vidu  ). Alie la nuna tempo estas uzota.

Se  komencas kun '!', tiam la dato estas aranĝita laŭ UTK prefere ol la loka tempo de la servilo. Post tiu opcia signo, se prezento estas la signvico "*t", tiam dato liveras ujon kun la sekvantaj kampoj:


 * , plena jaro
 * (1–12), monato
 * (1–31), tago
 * (0–23), horo
 * (0–59), minuto
 * (0–59), (escepto: la dua salto = 60)
 * , labortago, dimanĉo estas 1
 * , tago de la jaro
 * (duopcia), taglumo savanta flagon; povas esti neĉeesta se la informo ne estas havebla

Se  ne estas "*t", tiam   liveras la daton kiel vicsigno, aranĝita laŭ la samaj reguloj kiel la C elstato strftime.

os.difftime
Liveras la nombron de sekundoj ekede  ĝis.

os.time
Liveras nombron, kiu reprezentas la nunan tempon.

Kiam vokata senlokate, liveras la nunan tempon. Se ujo estas pasita, la tempo kodita en la ujo estas analizota. La ujo havendas la kampon " " (jaro), " " (monato) kaj " " (tago), kaj ankaŭ povas inkludi " " (horo, defaŭlte uzas 12), " " (minutoj, defaŭlte uzas 0), " " (sekundoj defaŭlte uzas 0) kaj " " (taglumo savanta flago).

require
Ŝargas la specifitan modulon.

Unue, ĝi konsideras  por determini se la modulo estas jam ŝargita. Tiakaze, ĝi liveras.

Alie, ĝi vokas ĉiu ŝargilo en la  sinsekvo por provi trovi ŝargilon de la modulo. Se iu ŝargilo estas trovata, tiu ĉi estas vokata. La kiomo liverata per la sârgilo estas ŝparita en  kaj estas liverata.

Vidu la dokumentaron por  por informoj pri la haveblaj ŝargilojn.

Ekzemple, se vi havas modulon "Modulo:Donanto" enhavanta la jeno:

Vi povas ŝargi ĝin en alia modulo kun kodo kiel jena:

package.loaded
Tiu ujo entenas la ŝargitan modulon. La indicoj estas la modulaj nomoj, kaj la kiomoj estas la kiomoj liveritaj kiam la modulo estis ŝargita.

package.loaders
Tiu ujo entenas la sinsekvon de serĉilaj elstatoj uzeblaj dum modula ŝargado. Ĉiu serĉila elstato estas vokata kun unuopa lokato, la nomo de la modulo ŝargenda. Se la modulo estas trovita, la serĉilo devas liveri elstaton kiu efektive ŝargos la modulon kaj liveros la kiomon liverata el require. Alie, ĝi devas liveri.

Scribunto provizas du serĉiloj:


 * 1) konsidere    por la serĉila elstato
 * 2) konsidere moduloj provizitaj per Scribunto por la modula nomo kaj, se tio malsukcesas, konsidere la   nomujo. La " " prefikso devas esti provizata.

Notu ke la normaj ŝargiloj de Lua ne estas inkludataj.

package.preload
Tiu ujo entenas ŝargilajn elstatojn, uzitaj de la unua serĉilo ke Scribunto inkludas en.

package.seeall
Asignas la  metastatvojon por   al _G.

Ĉena elordonteko
En ĉiuj ĉenaj (signovicaj) elstatioj, la unua signo lokiĝas en pozicio 1, ne en pozicio 0 kiel en C, PHP kaj Ĝavoskripto. Indicoj povas esti negativaj, en kiu kazo ili numeras ekde la fino de la ĉeno: pozicio -1 estas la lasta signo en la ĉeno, -2 estas la antaŭlasta, kaj tiel plu.

La ĉenateko supozas unu-okopajn signkodadojn. 'Ĝi ne povas pritrakti Unikodajn signojn. Por pritrakti Unikodajn ĉenojn, uzu la respondajn statvojon el la Unikodaĉena elordonteko de Scribunto.

string.byte
Se la ĉeno estas konsderita kiel vico da okopoj, liveras la okopajn kiomojn por, , ···,. La defaŭlta kiomo por ekero estas 1; La defaŭlta kiomo por finero estas. Identa al mw.ustring.byte.

string.char
Liveras nulon aŭ pli da induktoj. Liveras ĉenon, kiun longecon egalas la nombro de lokatoj, en kiu ĉiu signo havas la okopan kiomon egala al ĝia responda lokato.

Vidu mw.ustring.char por simila elstato kiu uzas Unikoda signonumero anstataŭ okopaj kiomoj.

string.find
Serĉas la unuan kongruon de  en la ĉeno. Se ĝi trovas kongruon, tiam  liveras la deŝovon (pozicion) en   kie tiu okazo komencas kaj finas; alie, ĝi liveras. Se la skemo havas kaptilojn, tiam kiam sukcese kongrui la kaptitaj kiomojn estas ankaŭ liverata post la du indicoj.

Tria, opcia nombra lokato  specifas kie komenci la serĉon; defaŭlte ĝi tiomas 1 kaj povas esti negativa. Se la kvara opcia lokato  tiomas , tio malebligas la kongruivon, do  la elstato faras rektan "subĉenan trovadon", kun neniu signo el   konsiderita kiel "skema".

Notu ke se  estas provizata, tiam   devas esti donita ankaŭ.

Vidu mw.ustring.find por simila elstato etendita kiel priskribita en Unikoda-ĉenaj skemoj kaj kie la  deŝovo estas en signoj anstataŭ okopoj.

string.format
Liveras formigitan version de ĝia varia nombro de kunvokatoj, kiuj sekvantas la priskribon donitan en ĝia unua kunvokato (kiu devas esti ĉeno).

La formĉeno uzas liman subaron de la formigaj specifiloj:


 * Rekonitaj flagojn estas '-', '+',' ', '#' kaj'0'.
 * Induktaj kampo-larĝoj ĝis 99 estas apogita. '*' ne estas apogita.
 * Induktaj precizecoj ĝis 99 estas apogita. '*' Ne estas apogita.
 * Longecaj modifiloj ne estas apogita.
 * Rekonitaj transtipi-specifiloj estas 'c', 'd', 'i', 'o', 'u', 'x', 'X', 'e', 'E', 'f', 'g', 'G', -a', '%' kaj la ne-norma 'q'.
 * Poziciaj specifiloj (ekz. "%2$s") ne estas apogita.

La transtipi-specifilo 'q' estas kiel 's', sed formas la ĉenon en formo taŭga por sekure relegi per la Lua interpretilo: la ĉeno estas skribita inter dustrekaj rektaj citiloj kaj ĉiuj dustrekaj citiloj, linifinoj, enkorpigitaj nuloj kaj sobstrekoj en la ĉeno estas korekte sencoŝaltitaj kiam skribitaj.

Transtipado inter ĉenoj kaj nombroj estas elfarita kiel specifita en datenaj tipoj; aliaj tipoj ne estas aŭtomate transtipitaj al ĉenoj. Ĉenoj enhavanta la  nula signojn (okopo kiu tiomas 0) ne estas konvene pritraktita.

Identa al mw.ustring.format.

string.gmatch
Liveras laŭciklilan elstaton kiu liveras la sekvantajn kaptatojn de  laŭ ĉeno   po unu por ĉiu voko. Se skemo specifas neniun kaptilon, tiam la tuta kongruo estas produktita por ĉiu voko.

Por tiu elstato, ĉapelo ' ' ne konsiderata kiel speciala skema signo kiam ĝi estas la unua signo de la ĉeno, kiel tio antaŭhaltigus la cikladon. Ĝi estas traktita kiel rektsigno.

Vidu  por simila elstato por kiu la skemo estas etendita kiel priskribita en unikodaĉenaj skemoj.

string.gsub
Liveras kopion de  el kiu okozoj de   estis anstataŭita per la  , tipunta kiel ĉena, uja aŭ elstata. Se la opcia  estas provizita, ĝi limas la nombron da anstataŭigo, alie ĉiuj okazoj estas anstataŭitaj. ankaŭ liveras duakiome la totalan nombron da kongruo kiu okazis.

Se  estas ĉeno, tiam ĝia kiomo estas uzita por anstataŭado. La signo  efikas kiel sencŝalto: ajna sinsekvo en   laŭ la formo  , kie iom estas inter 1 kaj 9, figuras la kiomo de la iom-a kaptato subĉeno. La sinsekvo  figuras la tuta kongruo, kaj la sinsekvo   figuras rektsola.

Se  estas ujo, tiam la ujo estas petata por ĉiu kongruo, uzanta la unuan kapton kiel la indico; se la skemo specifas neniun kaptilon, tiam la tuta kongruo estas uzita kiel indico.

Se  estas elstato, tiam tiu elstato estas vokita por ĉiutempe kongruo okazas, kun ĉiuj kaptitaj subĉenoj pasitaj kiel kunvokatoj samorde; se la skemo specifas neniun kaptilon, tiam la tuta kongruo estas pasita kiel unika kunvokato.

Se la kiomo liverata per la uja peto aŭ de la elstata voko estas ĉeno aŭ nombro, tiam ĝi estas uzita kiel la anstataŭaĵa ĉeno; alie, se ĝi estas falsa aŭ seniom, tiam estas neniu anstataŭado (tio estas, la originala kongruo estas konservita en la ĉeno).

Vidu mw.ustring.gsub por simila elstato en kiu la skemo estas etendita kiel priskribita en Unikodaĉenaj skemoj.

string.len
Liveras la longecon de la ĉeno, esprimata en okopoj. Bone pritraktas la ASCIIan nulsignon. Ekvivalenta al.

Vidu mw.ustring.len por simila elstato, kiu uzas Unikodajn signonumerojn anstataŭ okopoj.

string.lower
Liveras kopion de tiu ĉeno kun ĉiuj ASCIIaj majusklaj leteroj ŝanĝitaj al minuskloj. Ĉiuj aliaj signoj estas senŝanĝe lasitaj.

Vidu mw.ustring.lower por simila elstato en kiu ĉiuj signoj kun majusklaj al minusklaj difinoj en Unikodo estas transuskitaj.

string.match
Serĉas la unuan kongruon de  en la ĉeno. Se ĝi trovas iun, tiam  liveras la kaptatojn de la  ; alie ĝi liveras%s. Se skemo specifas neniun kapton, tiam la tuta kongruon estas liverita.

Tria, opcia nombra kunvokato  specifas kie komenci la serĉon; ĝi defaŭlte valoras   kaj povas esti negativa.

Vidu  por simila elstato en kiu la skemo estas etendita kiel priskribita en Unikodaĉenaj skemoj kaj la   deŝovo estas signoj anstataŭ okopoj.

string.rep
Liveras ĉenon kiu estas la kunĉenigo de  da  kopioj de la ĉeno. Identa al mw.ustring.rep.

string.reverse
Liveras ĉenon kiu estas la laŭokopa inversa de la ĉeno.

string.sub
Liveras la subĉenon el  kiu numere komencas al la   kaj ĉesas al  ;   kaj   povas esti negativaj. Se  estas nula aŭ preterlasita, ĝi daŭros ĝis la fino de la ĉeno.

Note that a string in Lua begins at index 1. Also, when using this function, the indices at both ends are inclusive.

Aparte, la voko   liveras  -longan prefikson de   kaj    liveras  -longan sufikson de.

Vidu mw.ustring.sub por simila elstato kie la deŝovoj estas en signoj anstataŭ okopoj.

string.upper
Liveras kopion de tiu ĉeno kun ĉiuj ASCIIaj minusklaj leteroj ŝanĝitaj al majuskloj. Ĉiuj aliaj signoj estas senŝanĝe lasitaj.

Vidu mw.ustring.upper por simila elstato en kiu ĉiuj signoj kun minusklaj al majusklaj difinoj en Unikodo estas transuskitaj.

Skemoj
Notu ke la skemoj de Lua estas similaj al skemvolvoj, sed ne estas identaj. Aparte, notu la sekvantajn diferencojn de skemvolvoj kaj Perl-kongruaj skemvolvoj:


 * La citilsigno estas procento, ne sobstreko.
 * Punkto ĉiam kongruas kun ĉiuj signoj, inklude linifino.
 * Neniu neuskleciva modo.
 * Neniu alterno (la elstatilo ).
 * Kvantigiloj (, ,   kaj  ) nur povas esti aplikita al unuopaj signoj aŭ signaj klasoj, ne el kaptgrupojn.
 * La unika nekaptema kvantigilo estas, kiu estas ekvivalenta al Perl-kongruskemvolvaj kvantigilo.
 * No generalized finite quantifier (e.g. the  quantifier in PCRE).
 * The only zero-width assertions are,  , and the   "frontier" pattern; assertions such as PCRE's   or   are not present.
 * Patterns themselves do not recognize character escapes such as "\ddd". However, since patterns are strings these sort of escapes may be used in the string literals used to create the pattern-string.

Ankaŭ notu ke skemo ne povas enhavi enkorpigitan nulan okopon (ASCIIa,  ). Uzu  anstataŭ.

Ankaŭ vidu Ustring patterns por simila skem-kaptado aranĝo uzanta Unikodaj signoj.

Signa klaso
Signa klaso estas uzita por reprezenti aron de signoj. La sekvantaj kombinaĵoj estas permesitaj kiam priskribi signan klason:

Skemaj eroj
Skema ero povas esti


 * unuopa signa klaso, kiu kongruas kun ajnan unuopan signon en la klaso;
 * unuopa signa klaso sekvita de ' ', kiu kongruas kun 0 aŭ pli da ripetoj de signoj en la klaso. Tiuj ripetaj eroj ĉiam kongruos kun la sinsekvo kiu estas plej longa ebla;
 * unuopa signa klaso sekvita de ', kiu kongruas kun 1 aŭ pli da ripetoj de signoj en la klaso. Tiuj ripetaj eroj ĉiam kongruos kun la sinsekvo kiu estas la plej longa ebla;
 * a single character class followed by ' ', which also matches 0 or more repetitions of characters in the class. Unlike ' ', these repetition items will always match the shortest possible sequence;
 * a single character class followed by ' ', which matches 0 or 1 occurrence of a character in the class;
 * , for n between 1 and 9; such item matches a substring equal to the n-th captured string (see below);
 * , where x and y are two distinct characters; such item matches strings that start with x, end with y, and where the x and y are balanced. This means that, if one reads the string from left to right, counting +1 for an x and -1 for a y, the ending y is the first y where the count reaches 0. For instance, the item  matches expressions with balanced parentheses.

Note that frontier patterns were present but undocumented in Lua 5.1, and officially added to Lua in 5.2. The implementation in Lua 5.2.1 is unchanged from that in 5.1.0.
 * , a frontier pattern; such item matches an empty string at any position such that the next character belongs to set and the previous character does not belong to set. The set set is interpreted as previously described. The beginning and the end of the subject are handled as if they were the character '\0'.

Skemo
Skemo estas sinsekvo de skemaj eroj.

' ' ĉe komenco de skemo fiksas la kongruon ĉe la komenco de la tema ĉeno. '$' ĉe la fino de skemo fiksas la kongruon ĉe la fino de la tema ĉeno. Ĉe aliaj pozicioj, ' ' kaj ' ' havas ne specialan signifon kaj reprezentas ili mem.

Kaptoj
Skemo povas enhavi sub-skemoj envolvitaj inter kromoj; ili priskribas kaptojn. Kiam kongruo sukcesas, la subĉenoj de la tema ĉeno kiu kongruas kun kaptojn estas ŝparitaj ("kaptitaj") por estonta uzo. Kaptoj estas numerataj laŭ iliaj ovraj kromoj. Ekzemple, en la skemo, la parto de la ĉeno kongruanta kun    estas ŝparita kiel la unua kapto (kaj sekve havas numero 1); la signo kongruanta kun   estas kaptita kun numero 2 kaj la parto kongruanta kun   havas numeron 3.

Kaptaj referencoj povas aperi en la skema ĉeno ĝin mem kaj retroreferi al teksto kiu estis kaptita antaŭe en la kongruo. Ekzemple,  kongruos kun ajna paro de ASCIIaj identaj minusklaj leteroj, dum   kongruos kun ajna 7-letera palindromo.

Kiel speciala kazo, la vakua kapto  kaptas la nunan laŭĉenan pozicion (numeron). Ekzemple, aplikante la skemon  al la ĉeno " ", estos du kaptoj: 3 kaj 5.

Uja elordonteko
Plejpartaj de elstatoj en la uja elordonteko supozas ke la ujo reprezentas sinsekvon.

La elstatoj,  , kaj povas esti havebla sed estas evitindaj. Uzu  ciklilon kun ,   ciklilon kun  , kaj la longecan elstatilon anstataŭe.

table.concat
Provizitan ujon kie ĉiuj eroj estas ĉenoj aŭ nombroj, liveras.

Defaŭlte  estas la vakua ĉeno,   estas   kaj   estas la longeco de la ujo. Se  estas pli granda ol , la vakua ĉeno estas liverota.

table.insert
Enmetas eron  al pozicio   en , ŝovanta poste aliaj eroj al aperta spaco, se necesa. Defaŭlte  estas la longeco de la ujo plus 1, do kiam vokata   enmetas   ĉe la fino de

Eroj ĝis  estas ŝovitaj; vidu Longeca elstatilo por avertoj pri kiam la ujo ne estas sinsekvo.

table.maxn
Liveras la plej grandan pozitivan nombran indicon el la donita ujo aŭ nulo se la ujo ne havas pozitivajn nombrajn indicojn.

Por fari tion, ĝi traciklas laŭ la tuta ujo. Tio estas proksime ekvivalenta al

table.remove
Forigas de  la ero ĉe pozicio  , ŝovanta antaŭen la aliaj eroj por densigi la spacon, se necesa. Liveras la kiomon de la forigita ero. Defaŭlte  estas la longeco de la ujo, por ke la voko   forigas la lastan eron de.

Eroj ĝis  estas ŝovitaj; vidu Longeca elstatilo por avertoj pri kiam la ujo ne estas sinsekvo.

table.sort
Ordigas la ujaj eroj laŭ provitaj ordo, ĉi-tiea, el  al.

Se  estas donita, tiam ĝi devas esti elstato kiu prenas du ujajn kunvokatojn kaj liveras veran kiam la unua estas malpli granda ol la dua (do kiam   estos vera post la ordigo). Se  ne estas provizita, tiam la norma Lua elstatilo   estas uzita anstataŭ.

La ordiga ciklsolvilo ne estas stabila; tio estas, eroj konsideritaj egalaj laŭ la provizita ordo povas havi iliajn relativajn poziciojn ŝanĝita per la ordigo.

Scribuntaj elordontekoj
Ĉiuj Scribuntaj elordontekoj estas lokitaj en la ujo.

mw.addWarning
Aldonas averton kiu estas montrita supre de la antaŭprezento kiam antaŭprezentanta redakto. estas analizita kiel vikiteksto.

mw.allToString
Vokas tostring laŭ ĉiuj kunvokatojn, tiam kunĉenas ilin kun taboj kiel apartigiloj.

mw.clone
Kreas plenkopion de kiomo. Ĉiuj ujoj (kaj ilia metaujoj) estas reekkonstruita. Tamen, elstatoj estas ankoraŭ komunaj.

mw.getCurrentFrame
Liveras la nunan kadran objekton, kutime la kadra objekto de la plej lastatempa.

mw.incrementExpensiveFunctionCount
Aldonas unu al la "altekosta disponigila elstato" nombrado kaj pelas escepton se ĝi preterpasas la limon (vidu ).

mw.isSubsting
Liveras veran se la nuna  estas substituata, falsan alie. Vidu liverantan tekston supre por diskuto pri diferencoj inter substituado kaj nesubstituado.

mw.loadData
Foje modulo necesas ampleksan ujo da dateno; ekzemple, ĝenerala-cela modulo por konverti unuojn de mezuro povus necesi ampleksan ujon de rekonitaj unuoj kaj iliaj konvertadaj faktorojn. Kaj foje tiuj moduloj estos uzitaj multfoje mempaĝe. Disponigi la ampleksan datenan ujon por ĉiu  povas uzi gravan kvanton da tempo. Por eviti tiun aferon,  estas provizita.

efikas kiel, kun la jenaj aliecoj:


 * La ŝargita modulo estas statigita nur unu fojo paĝŝarge, anstataŭ unu fojo voke de
 * La ŝargita modulo ne estas registrita en.
 * La kiomo liverita de la ŝargita modulo devas esti ujo. Aliaj datenaj tipoj ne estas apogitaj.
 * La liverita ujo (kaj ĉiuj subujoj) povas enhavi nuran duopcioj, nombroj, ĉenoj kaj aliaj ujoj. Aliaj datenaj tipoj, precipe elstatoj, ne estas permesitaj.
 * La liverita ujo (kaj ĉiuj subujoj) ne povas havi metaujo.
 * Ĉiuj ujaj kiuoj devas esti duopciaj, nombroj aŭ ĉenoj.
 * La ujo efektive liverita de  havas metastatvojoj kiuj provizas nurlegajn alirojn al la ujo liverita el la modulo. Pro tio ke ĝi ne enhavas la datenon rekte,   kaj    efikos sed aliaj metodoj, inklude ,  , kaj la elstatoj en la Uja elordonteko, ne efikos korekte.

La hipoteza unuo-konvertila modulo menciita supre povus enteni ĝian kodon en "Modulo:Konvertilo" kaj ĝia dateno en "Modulo:Konvertilo/dateno" kaj "Modulo:Konvertilo" uzus   por efike ŝarĝi la datenojn.

mw.dumpObject
Seriigas  al homo-legebla prezento, tiam liveras la rezultontan ĉenon.

mw.log
Pasas la kunvokatojn al mw.allToString, kaj tiam almetas la rezultintan ĉenon al la protokla bufro.

En la erarseĉa konzolo, la elstato  estas alinomo por tiu elstato.

mw.logObject
Vokas  kaj alfiksas la rezultintan ĉenon al la protokola bufro. Se prefikso estas donita, ĝi estos aldonota al la protokola bufro, sekvota de egalsigno antaŭ la seriigita ĉeno estas alfiksita (t.e. la protokol teksto estos ).

Kadra objekto
La kadra objekto estas la fasado al la transvokatoj pasitaj al , kaj al la disponigilo.

Note that there is no frame library, and there is no global variable named. A frame object is typically obtained by being passed as a parameter to the function called by, and can also be obtained from.

frame.args
Ujo por aliri la kunvokatojn pasitajn al la kadro. Ekzemple, se modulo estas vokita ekde vikiteksto kun

tiem  liveros ,   liveros  , kaj   (aŭ  ) liveros. Estas ankaŭ ebla tracikli la laŭ kunvokatoj per  aŭ. However, due to how Lua implements table iterators, iterating over arguments will return them in an unspecified order, and there's no way to know the original order as they appear in wikitext.

Notu ke valoroj en tiu ujo estas ĉiam ĉenoj;  povas esti uzita por nombratipigi ilin, se necesa. Kiuoj, tamen, estas nombroj eĉ se eksplicite provizitaj en la alvokado:  provizas ĉenajn kiomojn    kaj , numere indicitaj per   kaj.

Kiel en Mediavikiaj ŝablonaj alvokadoj, nomitaj kunvokatojn havos ekstremajn blankspacojn forigitaj de ambaŭ la nomo kaj la kiomo antaŭ ke ili estas pasitaj al Lua, dum nenomitaj kunvokatoj ne havos blankspacojn viŝitajn.

Por rendimentaj kialoj,  uzas  metaujoj, anstataŭ rekte enhavi la kunvokatojn. Kunvokataj kiomoj estas petita de Mediavikio laŭ demando. Tio signifas ke plejparto de aliaj tablaj statvojoj ne laboros korekte, inklude,  , kaj elstatoj en uja elordonteko.

Se antaŭprocesora sintakso kiel ŝablonaj alvokoj kaj trioblaj krampaj argumentoj estas inkluzivita ene de argumento al #invoke, ili ne pligrandiĝos, post esti pasigitaj al Lua, ĝis iliaj valoroj estos petitaj en Lua. Se kelkaj specialaj etikedoj estas skribitaj en XMLa notacio, kiel,  ,   kaj  , estas inkluditaj kiel kunvokatoj de  , tiam tiuj etikedoj estos transformita  "senigaj signoj" — specialaj ĉenoj kiuj komencas kun foriga signo (ASCIIa 127), anstataŭenda kun HTMLo post ili estas liverota de.

frame:callParserFunction

 * Notu la uzon de nomitaj kunvokatojn.

Voku disponigila elstato, liveranta konvena ĉeno. Kiam ebla, soklaj elstatoj de Lua aŭ de Scribunto-a elstatoteko devus esti preferata al tiu elvokingaro.

La sekvantaj vokoj estas proksimume ekvivalentaj al la indikitaj vikitekstoj:

Notu ke, kiel kun frame:expandTemplate, la elstata nomo kaj kunvokatoj ne estas preprocezitaj antaŭ ke ili estas pasitaj al la disponigila elstato.

frame:expandTemplate

 * Notu la uzon de nomitaj kunvokatojn.

Tio ĉi estas transkludo. La voko

frame:expandTemplate{ title = 'template', args = { 'arg1', 'arg2', name = 'arg3' } }

faras proksimume la saman efikon per Lua ol  faras per vikiteksto. Kiel en transhavigo, se la pasita titolo ne enhavas nomuja prefikso ĝi estos supozita esti en la  nomujo.

Noto ke la titolo kaj kunvokatoj ne estas preprocezita antaŭ ili estas pasitaj al la ŝablono:

frame:extensionTag
Tio estas ekvivalenta kun voko al  kune kun elstata nomo   kaj kun   prefiksita al.

frame:getParent
Vokita sur la kadro kreita fare de, liveras la kadron por la paĝo kiu vokis. Vokita sur tiu kadro, liveras.

Ekzemple, se la ŝablono enhavas la kodon , kaj paĝo transhavigas tiun ŝablonon kaj provizas transvokatojn al ĝi , vokado de   en Modulo:ModuloNomo liveros.

frame:getTitle
Liveras la titolon asociitan kun la kadro kiel ĉeno. Por la kadro kreita fare de , tio ĉi estas la titolo de la modulo alvokita.

frame:newChild

 * Notu la uzon de nomitaj kunvokatojn.

Kreas novan kadran objekton kiu estas ido de la nuna kadro, kun opciaj kunvokatoj kaj titolo.

Tio estas ĉefe celita por uzo en la spura konsolo por elprovantaj elstatoj kiuj normale estus vokita per. La nombro de kadroj kreeblaj unuopatempe estas limigita.

frame:preprocess
Tio elvolvas vikitekston en la vokejo de la kadro, t.e. ŝablonoj, disponigilaj elstattoj kaj transvokatoj kiel  estas elvolvitaj. Kelkaj specialaj etikedoj skribitaj laŭ XML-stila notacio, kiel,  ,   kaj  , estos anstataŭigita kun "senigaj signoj" — specialaj ĉenoj kiuj komencas kun foriga signo (ASCIIa 127), estas anstataŭigataj kun HTMLo post ili estas liverota de.

Se vi estas elvolvanta unuopa ŝablono, uzu   anstataŭ provi konstruadon de  vikiteksta ĉeno pasebla al ĉi tiu statvojo. Ĝi estas pli rapida kaj malpli erarema se la kunvokatoj enhavas ortstrekon aŭ alian vikimarkilon.

If you are expanding a single parser function, use  for the same reasons.

frame:getArgument
Akiras objekton por la specifita kunvokato aŭ tiomas  se la argumento ne estas provizita.

La liverita objekto havas statvojo,, kiu liveras la elvolvita vikiteksto de la kunvokato.

frame:newParserValue
Liveras objekton kun statvojo, kiu liveras la rezulto de.

frame:newTemplateParserValue

 * Notu la uzon de nomitaj kunvokatojn.

Liveras objekton kun statvojo, kiu liveras la rezulto de   vokita kun la provizitaj kunvokatoj.

frame:argumentPairs
Same ol. Inkludita por retrokongrueco.

mw.hash.hashValue
Haku ĉenan kiomon kun la specifita ciklsolvilo. Validaj ciklsolviloj povas esti ŝargita per mw.hash.listAlgorithms.

mw.hash.listAlgorithms
Liveras liston de apogita hakantaj ciklsolviloj, uzebla per mw.hash.hashValue.

HTMLa elstatteko
estas flua fasado por konstrui kompleksan HTML ekde Lua. objekto estas kreebla per.

Elstatoj dokumentitaj kiel  estas haveblaj laŭ la ĉiea   ujo; elstatoj dokumentitaj kiel  kaj   estas statvojoj de   objekto (vidu  ).

Baza ekzemplo povus aspekti jene:

mw.html.create
Kreas novan  objecto kiu enhavas   HTMLan eron. Vi ankaŭ povas pasi vakua ĉeno aŭ  kiel   por krei  vakua   objekto.

povas esti ujo kun la sekvantaj indicoj:


 * : Devigas la nunan etikedon esti mem-fermo, eĉ se mw.html ne rekonas ĝin kiel mem-fermo
 * : antaŭanto de la nuna mw.html anaĵo (celita al interna uzado)

mw.html:node
Almetas idan -an  nodon al la nuna   anaĵo. Se   transvokato estas pasita, tio estas vakigo. Ĉiu nodo estas ĉena prezento de HTMLa ero.

mw.html:wikitext
Almetas nedeterminitan nombron de vikiteksta ĉeno al la  objekto.

Notu ke tiu ĉesas ĉe la unua   ero.

mw.html:newline
Almetas linifino al la  objekto.

mw.html:tag
Almetas novan idan nodon kun la donita  al la konstruilo, kaj liveras    anaĵo prezentanta tiun novan nodon. La  transvokato estas identa al tio de

mw.html:attr
Asignas HTMLan atributon kun la donita  kaj   al la nodo. Alternative ujo entenanta  paroj de asignenda povas esti pasita. En la unua formo, vakua kiomo  kaŭzas ajnan atributon kun la donita   esti malasignota se ĝi estis antaŭe asignita.

mw.html:getAttr
Akiras la kiomo de HTMLa atributo antaŭe fiksita per  kun la donita.

mw.html:addClass
Aldonas klasan nomon al la klasa atributo de la nodo. Se   kunvokato estas pasita, tiu estas vakigo.

mw.html:css
Asignas CSSan atributon kun la donita  kaj   al la nodo. Alternative ujo entenanta  paroj de asignendaj atributoj povas esti pasita. En la unua formo, vakua kiomo  kaŭzas ajnan atributon kun la donita   esti malasignota se ĝi estis antaŭe asignita.

mw.html:cssText
Aldonas kelkajn krudajn  (sternstiligo) al la   atributo de la nodo. Se  kunvokato estas pasita, tio estas vakigo.

mw.html:done
Liveras la antaŭantan nodon sub kiu la nuna nodo estis kreita. Kiel, tio estas oportuna elstato por ebli la konstruon de pluraj idaj nodoj esti ĉenita kune en unuopa ordono.

mw.html:allDone
Kiel, sed plentransiras ĝis la radika nodo de la arbo kaj liveras ĝin.

Lingvoteko
Lingvaj kodoj estas priskribita en rilata dokumentaro. Multaj de la lingvaj kodoj el Mediavikio estas similaj al IETFaj lingvaj etikedoj, sed ne ĉiuj Mediavikiaj lingvaj kodoj estas validaj IETFaj etikedoj aŭ inverse.

Elstatoj dokumentitaj kiel  estas haveblaj el la ĉiea   ujo; elstatoj dokumentitaj kiel   estas stavojoj de lingva objekto (vidu  ).

mw.language.fetchLanguageName
La plena nomo de la lingvo por la donita lingva kodo: indiĝena noma (endonomo) defaŭlte, nomo tradukita en cela lingvo se kiomo estas donita por.

mw.language.fetchLanguageNames
Venigas la liston de lingvoj konitaj de Mediavikio, liveranta ujo kiu mapigas lingvan kodon al lingva nomo.

Defaŭlte la nomo liverata estas la endonomo de la lingvo; pasi lingvan kodon per  liveras ĉiuj nomoj en tiu lingvo.

Defaŭlte, nur lingvaj nomoj konitaj en Mediavikio estas liveritaj; pasanta  pro   liveros ĉiujn haveblajn lingvojn (ekz. de ), dum pasanta   inkludos nur lingvojn enhavantaj akomodaj mesaĝoj inkluditaj kun Mediavikia kerno aŭ ebigitaj kromaĵoj. Por eksplicite elekti la defaŭlton,  povas esti pasita.

mw.language.getContentLanguage
Liveras novan lingvan objekton por la defaŭlta enhava lingvo de la vikio.

mw.language.getFallbacksFor


Liveras liston de retrodefaŭlta lingvaj kodoj el Mediavikio por la specifa kodo.

mw.language.isKnownLanguageTag
Liveras veran se lingva kodo estas konata de Mediavikio.

lingva kodo estas "konita" se ĝi estas "valida praa kodo" (t.e. ĝi liveras veran por ) kaj liveras  ne-vakuan ĉenon por.

mw.language.isSupportedLanguage
Kontrolas ĉu ajna lokaĵo estas havebla por tiu lingva kodo en Mediavikio.

lingva kodo estas "apogita" se ĝi estas "valida" kodo (liveras veran por ), enhavas neniun majusklan signon kaj havas mesaĝan dosieron en la nunrulanta versio de Mediavikio.

Eblas por lingva kodo esti "apogita" sed ne "konita" (t.e. liveranta veran por  ). Ankaŭ notu ke kelaj kodoj estas "apogita" malgraŭ ke  liveras falsan.

mw.language.isValidBuiltInCode
Liveras veran se lingva kodo estas valida formo laŭ la celoj de interna adaptado de Mediavikio.

La kodo povas ne efektive respondi al ajna konata lingvo.

Lingva kodo estas "valida praa kodo" se ĝi estas "valida" kodo (t.e. ĝi liveras veran por  ); enhavas nur ASCIIajn literojn, nombrojn kaj strekoj; kaj longestas almenaŭ du signoj.

Notu ke kelkaj kodoj estas "apogita" (t.e. liveras veran por ) kvankam tiu elstato liveras falsan.

mw.language.isValidCode
Liveras veran se lingvokoda ĉeno estas valida formo, ĉu ĝi ekzistas aŭ ne. Tio inkludas kodojn, kiujn estas uzitaj nur por akomado tra la Mediavikia nomujo.

La kodo povas ne efektive respondi al ajna konata lingvo.

Lingva kodo estas valida se ĝi ne enhavas kelkajn nesekurajn signojn (dupunktoj, unuopa- aŭ duopa-citiloj, sorstrekoj, sobstrekoj, angulaj krampoj, kaj-signoj aŭ ASCIIaj nulsignoj) kaj estas alie permesita en paĝa titolo.

mw.language.new
Kreas novan lingvan objekton. Lingvaj objektoj ne havas ajnan publike alireblajn ecojn, sed ili ja havas plurajn statvojojn, kiujn estas dokumentita malsupre.

Estas limo pri la nombro de distingaj lingvaj kodoj kiuj povas esti uzitaj en iu paĝo. Preterpasi tiun limon rezultos en erarojn.

mw.language:getCode
Liveras la lingvan kodon por tiu lingva objekto.

mw.language:getFallbackLanguages
Liveras liston de retrodefaŭltaj lingvaj kodoj de Mediavikio por ĉi tiu lingva objekto. Ekvivalenta al.

mw.language:isRTL
Liveras veran se la lingvo estas skribita liven, falsa se ĝi estas skribita dekstren.

mw.language:lc
Transusklas la ĉenon al minusklo, honorantaj ajnaj specialaj regulojn por la donita lingvon.

Kiam la Unikodoĉena eldonteko estas ŝargita, la mw.ustring.lower elstato estas efektivigita kiel voko al.

mw.language:lcfirst
Transusklas la unuan signon de la ĉeno al minusklo, kiel kun lang:lc.

mw.language:uc
Transusklas la ĉenon al majusklo, honoranta ajnaj specialaj regulojn por la donita lingvo.

Kiam la Unikodoĉena eldonteko estas ŝargita, la mw.ustring.upper elstato estas efektivigita kiel voko al.

mw.language:ucfirst
Transusklas la unuan signon de la ĉeno al majusklo, kiel kun lang:uc.

mw.language:caseFold
Transusklas la ĉenon al reprezentado konvena por neuskleciva komparo. Notu ke la rezulto ne povas fari ajnan signifon kiam montrita.

mw.language:formatNum
Formatas nombron kun grupaj kaj ona apartigiloj konvenaj por la donita lingvon. Donita 123456.78, tio povus produkti "123,456.78", "123.456,78" aŭ eĉ io kiel "١٢٣٬٤٥٦٫٧٨" depende de la lingvo kaj vikia agordo.

estas ujo de opcioj, kiuj povas esti:


 * : Fiksu veran por formeti grupiganta apartigilojn kaj uzu punkton kiel dekuman apartigilon. Digit transformation may still occur, which may include transforming the decimal separator.

mw.language:formatDate
Formatas daton laŭ la donita formĉenon. Se  estas neinformita, la defaŭlto estas la nuna tempo. La kiomo por  devas esti duopcia aŭ vakua ; se vera, la tempo estas fomigita laŭ la lokaĵa tempo de la vikio anstataŭ UTC.

La formĉeno kaj apogitaj kiomoj por  estas identaj al tiuj por la tempa disponigila elstato de. Notu tamen ke sobstreko povas necesi dufojigon en Lua rektĉeno, pro tio ke Lua ankaŭ uzas sobstreko kiel sencŝalta signo dum vikiteksto ne faras tion:

. lang:formatDate( '\n' )

-- Tio estas ekvivalenta al, ne al. lang:formatDate( '\\n' )

-- Tio estas ekvivalenta al, ne al. lang:formatDate( '\\\\n' )

mw.language:formatDuration
Rompas sekundan tempodaŭron laŭ pli homa-legeblaj unuoj, ekz. 12345 al 3 horoj, 25 minutoj kaj 45 sekundoj, liveranta la rezulton kiel ĉeno.

, se donita, estas ujo kun kiomoj nomantaj la intervalaj unuojn uzenda en la respondo. Tio inkludas  (jarmiloj),   (jarcentoj),   (jardekoj),   (jaroj),   (semajnoj),   (tagoj),   (horoj),   (minutoj), and   (sekundoj).

mw.language:parseFormattedNumber
Tio prenas nombron kiel prezentigita el lang:formatNum kaj liveras la efektivan nombron. Aliavorte, tio estas resume lingvo-konscia versio de.

mw.language:convertPlural
Tio elektas la konvenan gramatikan formon el  (kiu devas esti  sinsekva ujo) aŭ   laŭ la kiomo. Ekzemple, en la angla vi povus uzi  aŭ   por produkti gramatikekorektan tekston ĉu estas nur 1 sock (ŝtrumpeto) aŭ 200 ŝtrumpetoj.

La necesaj kiomoj por la sinsekvo estas lingvo-dependa, vidu lokecigon de magiaj vortoj kaj la respondaron de translatewiki pri PLURALO por kelkaj detaloj.

mw.language:convertGrammar

 * Notu la malsaman transvokatan ordon inter la du alinomoj.  kongruas la ordon de la samnoma statvojo el la Lingva objekto de Mediavikio, dum   kongruas la ordon de la samnoma disponigila elstato, dokumentita en rilata dokumentaro.

Tio elektas la konvenan fleksian formon de  por la donita fleksia kodo.

La eblaj kiomoj por  kaj   estas lingvo-dependa, vidu Special:MyLanguage/Help:Magic words kaj tradukvikio:Gramatiko por kelkaj detaloj.

mw.language:gender
Elektas la ĉenon respondanta al la genro de, kiu povas esti   (iĉa),    (ina) aŭ registrita uzantan nomon.

mw.language:getArrow
Liveras Unikoda saga signo respondanta al :


 * (fluen): Ĉu "→" ĉu "←" laŭ la direkteco de la lingvo.
 * (malfluen): Ĉu "←" ĉu "→" laŭ la direkteco de la lingvo.
 * (liven): "←"
 * (dekstren): "→"
 * (supren): "↑"
 * (malsupren): "↓"

mw.language:getDir
Liveras  aŭ , laŭ la direkteco de la lingvo.

mw.language:getDirMark
Liveras ĉenon enhavanta aŭ U+200E (la liva-al-dekstra marko) aŭ U+200F (la deskstra-al-liva marko), dependanta de la direkteco de la lingvo kaj ĉu  estas vera aŭ falsa kiomo.

mw.language:getDirMarkEntity
Liveras "&amp;lrm;" aŭ "&amp;rlm;", depende de la direkteco de la lingvo kaj ĉu  estas vera aŭ falsa kiomo.

mw.language:getDurationIntervals
Disigas sekundan tempodaŭron al pli homa-legeblaj unuoj, ekzemple 12345 al 3 horoj, 25 minutoj kaj 45 sekundoj, liveranta la rezulton kiel ujo kiu mapigas unuajn nomojn al nombroj.

For example,

, se donita, estas ujo kun kiomoj nomantaj la intertempaj unuoj uzendaj en la respondo. Tiuj inkludas  (jarmiloj),   (jarcentoj),   (jardekoj),   (jaroj),   (tagoj),   (horoj),   (minutoj), and   (sekundoj).

The unit names in  may be specified in any order (currently in English only, indendantly of the language object used, and with their plural unabbreviated form only like in the returned table, where unit names are symbolic but still not translated and not grammatically changed according to their assigned value). If the input table contains only unsupported unit names, the returned table will be empty. If the input table is not specified, is nil, or is empty, a static table for any supported units (including 'seconds' for the shortest unit) will be used by default.

The specified duration in seconds is first rounded down to an integer number of the shortest desired unit. The number of members in the returned array is variable, and only unit names mapped to a non-zero value are kept in the returned table if the rounded number of seconds is strictly positive. Otherwise only the member for the shortest desired unit name ('seconds' by default) will be set to the rounded down duration.

Mesaĝa elstatteko
Tiu elordonteko estas fasado al la lokecigaj mesaĝoj kaj la  nomujo.

Elstatoj dokumentitaj kiel   estas tra la ĉiealirebla   ujo; elstatoj dokumentitaj kiel  estas statvojoj de mesaĝa objekto (vidu  ).

mw.message.new
Kreas novan mesaĝan objekton por la donita mesaĝan. The remaining parameters are passed to the new object's  method.

La mesaĝa objekto havas neniun econ, sed havas plurajn statvojojn dokumentataj ĉi malantaŭe.

mw.message.newFallbackSequence
Kreas novan mesaĝan objekton por la donita mesaĝojn (la unua kiu ekzistas estos uzota).

La mesaĝa objekto havas neniun econ, sed havas plurajn statvojojn dokumentataj ĉi malantaŭe.

mw.message.newRawMessage
Kreas novan mesaĝan objekton, uzanta la donita tekston rekte anstataŭ elserĉi internaciigitan mesaĝon. La restantaj kunvokatoj estas pasitaj al la nova objekto  statvojo.

La mesaĝa objekto havas neniun econ, sed havas plurajn statvojojn dokumentataj ĉi malantaŭe.

mw.message.rawParam
Volvas la kiomon por ke ĝi ne estas analizota kiel vikiteksto per.

mw.message.numParam
Volvas la valoron por ke ĝi aŭtomate estos prezentigota kiel de. Notu ke tio ne dependas de la lingva elordonteko efektive estanta havebla.

mw.message.getDefaultLanguage
Liveras  lingvan objekton por la defaŭlta lingvo.

mw.message:params
Aldonu parametrojn al la mesaĝo, kiuj povas esti pasita kiel unuopaj kunvokatoj aŭ kiel sinsekva ujo. Transvokatoj devas esti nombroj, ĉenoj aŭ la specialaj kiomoj liverita el mw.message.numParam aŭ mw.message.rawParam. Se sinsekva ujo estas uzita, transvokatoj devas esti rekte ĉea en la ujo; referencoj uzantaj la __indekso metastatvojo ne efikos.

Liveras la  objekto, por ebli vokĉenadon.

mw.message:rawParams
Kiel, sed havas la efikon antaŭe trakti ĉiujn la kunvokatojn per.

Liveras la  objekto, por ebli vokĉenado.

mw.message:numParams
Kiel params, sed havas la efikon antaŭe pasi ĉiuj la transvokatoj tra mw.message.numParam.

Liveras la  objekto, por ebli vokĉenado.

mw.message:inLanguage
Specifas la lingvon uzenda dum mesaĝa procezo. povas esti ĉeno aŭ ujo kun   statvojo (t.e. Lingva objekto).

La defaŭlta lingvo estas tiun liverita el.

Liveras la  objekto, por ebli vokĉenado.

mw.message:useDatabase
Specifas ĉu elserĉi mesaĝojn en la  nomujo (t.e. serĉi en la datenbazo) aŭ nur uzi la defaŭltajn mesaĝojn distribuitaj kun Mediavikio.

Defaŭlte estas vera.

Liveras la  objekto, por ebli vokĉenado.

mw.message:plain
Anstataŭigas la transvokatoj kaj liveras la mesaĝan vikitekston senŝanĝe. Ŝablonaj vokoj kaj disponigilaj elstatoj estas senŝanĝaj.

mw.message:exists
Liveras duopcia kiomo indikanta ĉu la mesaĝa kiuo ekzistas.

mw.message:isBlank
Liveras duopcia kiomo indikanta ĉu la mesaĝa kiuo havas enhavon. Liveras veran se la mesaĝa kiuo ne ekzistas aŭ la mesaĝo estas la vakua ĉeno.

mw.message:isDisabled
Liveras duopcia kiomo indikanta ĉu la mesaĝa kiuo estas malebligita. Liveras veran se la mesaĝa kiuo ne ekzistas aŭ se la mesaĝo estas la vakua ĉeno aŭ la ĉeno.

mw.site.currentVersion
Ĉeno tenanta la nuna versio de Mediavikio.

mw.site.scriptPath
La kiomo de.

mw.site.server
La kiomo de.

mw.site.siteName
La kiomo de.

mw.site.stylePath
La kiomo de.

mw.site.namespaces
Ujo tenanta datenon por ĉiuj nomujoj, indicitaj nombre.

La datenoj havebla estas:


 *   (identigilo): nomuja nombro.
 * name: Local namespace name.
 * canonicalName: Canonical namespace name.
 * displayName: Set on namespace 0, the name to be used for display (since the name is often the empty string).
 * hasSubpages: Whether subpages are enabled for the namespace.
 * hasGenderDistinction: Whether the namespace has different aliases for different genders.
 * isCapitalized: Whether the first letter of pages in the namespace is capitalized.
 * isContent: Whether this is a content namespace.
 * isIncludable: Whether pages in the namespace can be transcluded.
 * isMovable: Whether pages in the namespace can be moved.
 * isSubject: Whether this is a subject namespace.
 * isTalk: Whether this is a talk namespace.
 * defaultContentModel: The default content model for the namespace, as a string.
 * aliases: List of aliases for the namespace.
 * subject: Reference to the corresponding subject namespace's data.
 * talk: Reference to the corresponding talk namespace's data.
 * associated: Reference to the associated namespace's data.

Metaujo estas ankaŭ aro kiu eblas elserĉi nomujon (lokeciga aŭ ĉefforma). Ekzemple, ambaŭ  and   liveros informojn pri la projekta nomujo.

mw.site.contentNamespaces
Ujo tenanta nur la enhavaj nomujoj, indicitaj nombre. Vidu  por detaloj.

mw.site.subjectNamespaces
Ujo tenanta nur la temaj nomujoj, indicitaj nombre. Vidu  por detaloj.

mw.site.talkNamespaces
Ujo tenanta nur la diskutaj nomujoj, indicitaj nombre. Vidu  por detaloj.

mw.site.stats
Ujo tenanta la retejaj statistikoj. Disponeblaj statistikoj estas:


 * pages (paĝoj): Nombro da paĝoj en la vikio.
 * articles (artikoloj): Nombro da artikoloj en la vikio.
 * files (dosieroj): Nombro da dosieroj en la vikio.
 * edits (redaktoj): Nombro da redaktoj en la vikio.
 * views (vidoj): Nombro da vidoj en la vikio.
 * users (uzantoj): Nombro da uzantoj en la vikio.
 * activeUsers (agemuzantoj): Nombro da agemaj uzantoj en la vikio.
 * admins (estroj): Nombro da uzantoj en la grupo sysop (sistemoperatoro) en la vikio.

mw.site.stats.pagesInCategory


Akiras statistikojn pri la kategorio. Se  estas nespecifita,   aŭ , liveras ujon kun la sekvantaj ecoj:


 *   (ĉiuj): Totala nombro da paĝoj, dosieroj kaj subkategorioj.
 *   (subkategorioj): Nombro da subkategorioj.
 *   (dosieroj): Nombro da dosieroj.
 *   (paĝoj): Nombro da paĝoj.

Se  estas unu el la supraj ĉenoj, nur la responda valoro estas liverita anstataŭ.

Ĉiu nova kategorio petita alkrementos la nombron da altekostaj elstatoj.

mw.site.stats.pagesInNamespace
Liveras la nombron de paĝoj en la donita nomujo (specifita per nombro).

mw.site.stats.usersInGroup
Liveras la nombron da uzantoj en la donita grupo.

mw.site.interwikiMap
Liveras ujon, kiu entenas datenoj pri havebla intervikiaj prefiksoj. Se  estas la ĉeno , tiam nur datenoj por lokaj intervikiaj prefiksoj estas liveritaj. Se  estas la ĉeno , tiam nur datenoj por ne-lokaj prefiksoj estas liveritaj. Se neniu  estas specifita, dateno por ĉiuj prefiksoj estas liverita. "Loka" prefikso en ĉi tiu kunteksto estas iu kiu estas por la sama projekto. Ekzemple, sur la angla Vikipedio, alilingvoj Vikipedioj estas konsideritaj lokaj, kontraŭe al Vikivortaro kaj aliaj tiaj Vikimediaj projektoj.

Kiuoj en la ujo liverita per la elstato estas intervikiaj prefiksoj, kaj kiomoj estas subujoj kun la jenaj ecoj:


 * prefix - la interwiki
 * url - the URL that the interwiki points to. The page name is represented by the parameter $1.
 * isProtocolRelative - a boolean showing whether the URL is protocol-relative.
 * isLocal - whether the URL is for a site in the current project.
 * isCurrentWiki - whether the URL is for the current wiki.
 * isTranscludable - whether pages using this interwiki prefix are transcludable. This requires scary transclusion, which is disabled on Wikimedia wikis.
 * isExtraLanguageLink - whether the interwiki is listed in.
 * displayText - for links listed in $wgExtraInterlanguageLinkPrefixes, this is the display text shown for the interlanguage link. Nil if not specified.
 * tooltip - for links listed in $wgExtraInterlanguageLinkPrefixes, this is the tooltip text shown when users hover over the interlanguage link. Nil if not specified.

Teksta elstatteko
La teksta elordonteko provizas iujn komunajn elstatojn de teksta traktado mankanta en la ĉena elordonteko kaj la Unikodaĉena elordonteko. Tiuj funkcioj estas senmisaj por uzo kun UTF-8 ĉenoj.

mw.text.decode
Anstataŭigas HTMLaj entoj en la ĉeno kun la respondaj signoj.

Se  estas nespecifita aŭ falsa, la nuraj rekonitaj nomitaj entoj estas '&amp;lt;', '&amp;gt;', '&amp;amp;', '&amp;quot;', kaj '&amp;nbsp;'. Alie, la listo de HTML5 nomitaj entoj rekonenda estas ŝargita el PHPa  elstato.

mw.text.encode
Anstataŭigas signojn en ĉeno kun HTMLaj entoj. Signoj '<', '>', '&', '"' kaj la nerompebla spaceto estas anstataŭigita kun la konvenaj nomitaj entojn; ĉiuj aliaj estas anstataŭigitaj kun nombraj entoj.

Se  estas provizita, ĝi devus esti ĉeno kiel konvena por iri inter krampoj de  unikodaĉena skemo, t.e. la "aro" en. La defaŭlta  estas. (la spaceto ĉe la fino estas la nerompebla spacon, U+00A0).

mw.text.jsonDecode
Malkodas JSONan ĉenon. estas 0 aŭ kombinaĵo (uzanta ) de la     kaj.

Kutime ek-nulaj ujoj de JSON estas renumeritaj al Lua ek-unuaj sinsekvaj ujoj; por malhelpi tion, pasu.

Por eviti kelkajn postulojn en JSON, kiel neniu fina komo en aroj aŭ objektoj, pasu. Tio ne estas rekomendita.

Limoj:


 * Malkodita JSONaj ujoj povas ne esti Lua sinsekvoj se la ujo enhavas nulajn kiomojn.
 * JSONaj objektoj forigos kiuojn kun nulaj kiomoj.
 * Maleblas rekte diri ĉu la enigo estis JSONa ujo aŭ JSONa objekto kun sinsekvaj induktaj kiuoj.
 * JSONa objekto kun sinsekvaj induktaj kiuoj unu-eka malkodos al la sama uja strukturo ol JSONa ujo kun la samaj kiomoj, malgraŭ tiuj tute ne estanta ekvivalentaj, krom  estas uzita.

mw.text.jsonEncode
Kodas JSONan ĉenon. Eraroj estas levitaj se la pasita kiomo ne povas esti kodita per JSON. estas  aŭ kombinaĵo (uzu  ) de la flagoj   kaj.

Kutime Lua ekunuaj sinsekvaj ujoj estas koditaj kiel JSON eknulaj ujoj; kiam  estas fiksita en , eknulaj sinsekvaj ujoj estas koditaj kiel JSONaj ujoj.

Limoj:


 * Vakuaj ujoj estas ĉiam koditaj kiel vakuaj ujoj, ne vakuaj objektojn.
 * Sinsekvaj ujoj ne povas esti koditaj kiel JSONaj objektoj sen aldoni "lokokupan" eron.
 * Por produkti objektojn aŭ ujojn kun  kiomoj, artifikema efektivigo de la   metastatvojo estas necesa.
 * Lua ujo kun sinsekvaj induktivaj kiuoj kiuj komencas kun 0 kodos kiel JSONa ujo, same ol Lua ujo kuninduktivaj kiuoj kiuj komencas kun 1, krom se  estas uzita.
 * Kiam ambaŭ nombra kaj la ĉena prezentoj de tiu nombro estas uzitaj kiel kiuo en la sama ujo, konduto estas nespecifita.

mw.text.killMarkers
Forigas ĉiuj Mediavikia senigaj signoj el ĉeno.

mw.text.listToText
Kuniĝas liston prozo-stile. Alivorte, ĝi estas kiel  sed kun malsamaj apartigiloj antaŭ la fina ero.

La defaŭlta apartigilo estas prenita el MediaWiki:comma-separator laŭ la enhava lingvo de la vikio kaj la defaŭlta konjunkcio estas MediaWiki:and ĉenita per MediaWiki:word-separator.

Ekzemploj, kun la defaŭltaj kiomoj por la mesaĝoj: . mw.text.listToText( { 1 } ) -- Liveras. mw.text.listToText( { 1, 2 } ) -- Liveras. mw.text.listToText( { 1, 2, 3, 4, 5 } ) -- Liveras. mw.text.listToText( { 1, 2, 3, 4, 5 }, '; ', ' or ' )

mw.text.nowiki
Anstataŭigas diversajn signoj en la ĉeno kun HTMLaj entoj por malhelpi ilian sencigon kiel vikiteksto. Tio inkludas:


 * La sekvantaj signoj: '"', '&', "'", '<', '=', '>', '[', ']', '{', '|', '}'
 * La sekvantaj signoj ĉe la komenco de la ĉeno aŭ tuj post linifino: '#', '*', ':', ';', space, tab ('\t')
 * Blankaj linioj havos unu el la rilata linifina aŭ ĉaretrevena signoj sencŝaltita
 * "" ĉe la komenco de la ĉeno aŭ tuj post linifino havos la unuan streko '-' sencŝaltitan
 * "__" havos unu substrekon sencŝaltitan
 * "://" havos la dupunkton sencŝaltitan
 * Blankspaca signo kiu sevkas "ISBN", "RFC" aŭ "PMID" estos sencŝaltita

mw.text.split
Disigas la ĉenon al subĉenoj ĉe limoj kongruantaj kun la unikodaĉena skemo. Se  estas specifita kaj vera,   estos sencigita kiel rektsignvico anstataŭ Lua skemo (tiel kun la samnoma transvokato de ). Liveras ujon kiu enhavas la subĉenojn.

Ekzemple,  liverus ujon.

Se  kongruas kun la vakua ĉeno   estos fendota en apartaj signoj.

mw.text.gsplit
Liveras laŭciklila elstato kiu traciklos laŭ la subĉenoj kiu estus liverita per la ekvivalenta voko al.

mw.text.tag

 * Notu la uzon de nomitaj kunvokatojn.

Produktas HTML-stila etikedo por.

Se  estas donita, ĝi devas esti ujo kun ĉenaj kiuoj. Ĉenaj kaj nombraj kiomoj estas uzita kiel la kiomo de la eco; duopcia vero rezultas al la kiuo estanta eligota kiel HTML5 senkioma transvokato; duopcia falso plene nespecifas la kiuon; kaj io ajn alia estas eraro.

Se  (enhavo) ne estas donita (aŭ estas  ), nur la eketikedo estas liverita. Se  estas duopcia falso, mem-ferma etikedo estas liverita. Alie ĝi devas esti ĉeno aŭ nombro, en kiu kazo tiu enhavo estas envolvita en la konstruita komencan kaj fermanta etikedon. Notu ke la enhavo ne estas aŭtomate HTMLe-kodita; uzu mw.text.encode se necesa.

Por bone liveri etendaĵajn etikedojn kiel, uzu   anstataŭ.

mw.text.trim
Forigas blankspacojn aŭ aliajn signojn el la komenco kaj la fino de ĉeno.

Se  estas provizita, ĝi devus esti ĉeno kiel konvena por iri inter krampoj de  unikodaĉena skemo, t.e. la "aro" en. La defaŭlta  estas ASCIIa blankspaco, ".

mw.text.truncate
Kurtigas  al la specifa longeco, aldonanta elipsmarko se kurtigo estis elfarita. Se longeco estas pozitiva, la fino de la ĉeno estos kurtigita; se ĝi estas negativa, la komenco estos forigita. Se  estas donita kaj vera, la rezultinta ĉeno inklude   ne estos pli longa ol la specifa longeco.

La defaŭlta kiomo por  estas prenita de MediaWiki:ellipsis el la enhava lingvo de la vikio.

Ekzemploj, kun la defaŭltaj "..." elipsmarkoj:

mw.text.unstripNoWiki
Anstataŭigas Mediavikia &lt;nowiki&gt; senigaj signoj kun la responda teksto. Aliaj tipoj de senigaj signoj ne estas ŝanĝitaj.

mw.text.unstrip
Ekvivalenta al.

Tio ne plu rivelas la HTMLo uzita por speciala paĝa transhavigo, &lt;ref&gt; etikedoj, kaj tiel plu kiel ĝi faris en pli fruaj versioj de Scribunto.

mw.title.equals
Testas ĉu du titoloj estas egalaj. Notu ke fragmentoj estas ignoritaj en la komparo.

mw.title.compare
Liveras,   aŭ   por indiki ĉu la titolo   estas malpli ol, egala al aŭ pli granda ol titolo.

Tio komparas titolojn laŭ intervikiaj prefiksoj (se iu ajn) kiel ĉenoj, tiam de nomuja nombro, tiam de la neprefiksita titola teksto kiel ĉeno. Tiuj ĉenaj komparoj uzas la norma  elstatilo de Lua.

mw.title.getCurrentTitle
Liveras la titolan objekton de la nuna paĝo.

mw.title.new


Kreas novan titolan objekton. Returns type "nil" if the pagename (in parameter "text") is invalid, but succeeds if it is valid but only does not exist.

Se nombro  estas donita, objekto estas kreita por la titolo kun tiu paĝo-identigilo. La titolo referencita estos nombrita kiel ligita el la nuna paĝo. Se la paĝo-identigilo ne ekzistas, liveras. La nombro da altekostaj elstatoj estos alkrementita se la kreita titola objekto ne estas por iu titolo kiu jam estis ŝargita.

Se ĉeno  estas donita anstataŭ, objekto estas kreita por tiu titolo (eĉ se la paĝo ne ekzistas). Se la teksta ĉeno ne specifas nomujo,   (kiu povas esti ajna kiuo trovebla en  ) estos uzita. Se la  ne estas valida titolo,   estas liverota.

mw.title.makeTitle
Kreas titolan objekton kun titolo  ennomujo , opcie kun la specifita   kaj   prefiksoj. povas esti ajna kiuo trovebla en. Se la rezultinta titolo ne estas valida, liveras.

Notu ke, malsame al, tiu statvojo ĉiam aplikos la specifitan nomujon. Ekzemple,  kreos objekton por la paĝo Ŝablono:Modulo:Amo, dum   kreos objekton por la paĝo Modulo:Amo.

Titolaj objektoj
Titola objekto havas nombron da ecoj kaj statvojoj. Plejparto de la ecoj estas nurlega.

Notu ke kampoj finantaj kun  liveras titoloj kiel ĉenaj kiomoj dum la kampoj finantaj kun   liveras titolajn objektojn.


 * id: La paĝa identigilo. 0 se la paĝo ne ekzistas..
 * interwiki: The interwiki prefix, or the empty string if none.
 * namespace: The namespace number.
 * fragment: The fragment, or the empty string. May be assigned.
 * nsText: The text of the namespace for the page.
 * subjectNsText: The text of the subject namespace for the page.
 * text: The title of the page, without the namespace or interwiki prefixes.
 * prefixedText: The title of the page, with the namespace and interwiki prefixes.
 * fullText: The title of the page, with the namespace and interwiki prefixes and the fragment. Interwiki is not returned if equal to the current.
 * rootText: If this is a subpage, the title of the root page without prefixes. Otherwise, the same as.
 * baseText: If this is a subpage, the title of the page it is a subpage of without prefixes. Otherwise, the same as.
 * subpageText: If this is a subpage, just the subpage name. Otherwise, the same as.
 * canTalk: Whether the page for this title could have a talk page.
 * exists: Whether the page exists. Alias for file.exists for Media-namespace titles. For File-namespace titles this checks the existence of the file description page, not the file itself. . It is always expensive if the title object was created by "mw.title.new" or "mw.title.makeTitle", and the call will throw an exception rather than returning "false" if the limit (500 on most wikies) is reached.
 * file, fileExists: See below.
 * isContentPage: Whether this title is in a content namespace.
 * isExternal: Whether this title has an interwiki prefix.
 * isLocal: Whether this title is in this project. For example, on the English Wikipedia, any other Wikipedia is considered "local" while Wiktionary and such are not.
 * isRedirect: Whether this is the title for a page that is a redirect..
 * isSpecialPage: Whether this is the title for a possible special page (i.e. a page in the Special: namespace).
 * isSubpage: Whether this title is a subpage of some other title.
 * isTalkPage: Whether this is a title for a talk page.
 * isSubpageOf( title2 ): Whether this title is a subpage of the given title.
 * inNamespace( ns ): Whether this title is in the given namespace. Namespaces may be specified by anything that is a key found in.
 * inNamespaces( ... ): Whether this title is in any of the given namespaces. Namespaces may be specified by anything that is a key found in.
 * hasSubjectNamespace( ns ): Whether this title's subject namespace is in the given namespace. Namespaces may be specified by anything that is a key found in.
 * contentModel: The content model for this title, as a string..
 * basePageTitle: The same as.
 * rootPageTitle: The same as.
 * talkPageTitle: The same as, or nil if this title cannot have a talk page.
 * subjectPageTitle: The same as.
 * redirectTarget: Returns a title object of the target of the redirect page if the page is a redirect and the page exists, returns false otherwise.
 * protectionLevels: The page's protection levels. This is a table with keys corresponding to each action (e.g., "edit" and "move"). The table values are arrays, the first item of which is a string containing the protection level. If the page is unprotected, either the table values or the array items will be nil..
 * cascadingProtection: The cascading protections applicable to the page. This is a table with keys "restrictions" (itself a table with keys like protectionLevels has) and "sources" (an array listing titles where the protections cascade from). If no protections cascade to the page, "restrictions" and "sources" will be empty..
 * subPageTitle( text ): The same as.
 * partialUrl: Returns  encoded as it would be in a URL.
 * fullUrl( query, proto ): Returns the full URL (with optional query table/string) for this title.  may be specified to control the scheme of the resulting url: "http", "https", "relative" (the default), or "canonical".
 * localUrl( query ): Returns the local URL (with optional query table/string) for this title.
 * canonicalUrl( query ): Returns the canonical URL (with optional query table/string) for this title.
 * getContent: Returns the (unparsed) content of the page, or nil if there is no page. The page will be recorded as a transclusion.

Titolaj objektoj povas esti komparitaj per rilataj elstatiloj. liveros.

Since people find the fact surprising, note that accessing any expensive field on a title object records a "link" to the page (as shown on Special:WhatLinksHere, for example). Using the title object's  method or accessing the   field records it as a "", and accessing the title object's   or   fields records it as a "".

Dosiera metadateno
Titolaj objektoj prezentanta paĝon en la Dosiero aŭ Media nomujo havos econ nomitan. Tio estas ujo, strukturita kiel sekvanta:


 *  : Ĉu la dosiero ekzistas. Ĝi estos registrita kiel bilda uzado. La  eco sur titola objekto ekzistas por retrokongruecaj kialoj kaj estas alinomo por ĉi tiu eco. Se tio ĉi estas falsa, ĉiuj aliaj dosieraj ecoj estos.
 *  : La larĝo de la dosiero. Se la dosiero enhavas multoblajn paĝojn, tio ĉi estas la larĝo de la unua paĝo.
 *  : La alto de la dosiero. Se la dosiero enhavas multoblajn paĝojn, tio ĉi estas la alto de la unua paĝo.
 * pages: If the file format supports multiple pages, this is a table containing tables for each page of the file; otherwise, it is nil. The # operator can be used to get the number of pages in the file. Each individual page table contains a width and height property.
 * size: The size of the file in bytes.
 * mimeType: The MIME type of the file.
 * length: The length (duration) of the media file in seconds. Zero for media types which do not support length.

Altekostaj ecoj
La ecoj id, isRedirect, exists, kaj contentModel necesas ŝargi datenon pri la titolo de la datenbazo. Por tiu kialo, la nombron da altekostaj elstatoj estas alkrementata la unua fojo ke unu el ili estas alirita por paĝo alia ol la nuna paĝo. Postaj aliroj de iu ajn de ĉi tiuj ecoj por tiu paĝo ne inkrementos denove la nombron da altekostaj elstatoj.

Aliaj ecoj markitaj kiel altekostaj ĉiam alkrementos la nombro da altekostaj elstatoj dum la unua tempo ili estas alirita por paĝo alia ol la nuna paĝo.

mw.uri.encode
Procenta-kodas la ĉenon. La defaŭlta tipo,, kodas spacetojn uzanta '+' por uzo en petaj ĉenoj;   kodas spacetojn kiel   kaj    kodas spacetojn kiel '_'.

Notu ke la "vikia" perzento ne estas tute inversigebla, ĉar ambaŭ spacetoj kaj substrekoj estas kodita kiel '_'.

mw.uri.decode
Procento-malkodas la ĉenon. La defaŭlta tipo,, malkodas '+' al spaceto;   ne elfaras ajnan kroman malkodadon; kaj    malkodas '_'  al spaceto.

mw.uri.anchorEncode
Kodas ĉeno por uzo en Mediavikia URIa fragmento.

mw.uri.buildQueryString
Kodas ujon kiel URIa peta ĉeno. Kiuo devus esti ĉenoj; kiomoj povas esti ĉenoj aŭ nombroj, sinsekvaj ujoj aŭ duopcia falso.

mw.uri.parseQueryString
Malkodas la petan ĉenon  al ujo. Kiuoj en la ĉeno sen kiomoj havos falsan kiomon; kiuoj ripetitaj plujfoje havos sinsekvajn ujon kiel kiomoj; kaj aliaj havos ĉenojn kiel kiomoj.

La opciaj nombraj kunvokatoj  kaj   povas esti uzitaj por specifi subĉeno disponigebla, anstataŭ la tuta ĉeno. estas la pozicio de la unua signo de la subĉeno kaj defaŭlte kiomas 1. estas la pozicio de la lasta signo de la subĉeno kaj defaŭlte kiomas la longecon de la ĉeno. Ambaŭ  kaj   povas esti negativa, kiel en string.sub.

mw.uri.canonicalUrl
Liveras URIan objekton por la ĉefforma URLo de paĝo, kun opcia peta ĉeno/ujo.

mw.uri.fullUrl
Liveras URIan objekton por la plena URLo de paĝo, kun opcia peta ĉeno/ujo.

mw.uri.localUrl
Liveras URIan objekton por la loka URLo de paĝo, kun opcia peta ĉeno/ujo.

mw.uri.new
Konstruas novan URIan objekton por la pasita ĉeno aŭ ujo. Vidu la priskribon de URIaj objektoj por la eblaj kampoj en la ujo.

mw.uri.validate
Konfirmas la pasitan ujon (aŭ URIan objekton). Liveras duopcion indikantan ĉu la ujo estis validita aŭ, kiam malsukcesas, ĉeno klariga kiuj problemoj estis trovitaj.

URIa objekto
La URIa objekto havas la sekvantajn kampojn, kelkaj aŭ ĉiuj de kiu povas kiomi :


 * protocol: ĉena protokolo/skemo
 * user: ĉena uzanto
 * password: ĉena pasvorto
 * host: ĉena gastinganta nomo
 * port: induktiva pordo
 * path: ĉena vojo
 * query: ujo, kiel el mw.uri.parseQueryString
 * fragment: ĉena fragmento.

La sekvantaj ecoj ankaŭ estas haveblaj:
 * userInfo: ĉena uzanto kaj pasvorto
 * hostPort: ĉena gastigo kaj pordo
 * authority: ĉena uzanto, pasvorto, gastigo kaj pordo
 * queryString: ĉena versio de la peta ujo
 * relativePath: ĉena vojo, peta ĉeno kaj fragmento

provizos la URIan ĉenon

Statvojoj de la URIa objekto estas:

mw.uri:parse
Disponigas ĉenon en la nuna URIa objekto. Iu ajn kampo specifita en la ĉeno estos anstataŭigita en la nuna objekto; kampoj ne specifitaj ŝparos iliajn malnovajn kiomojn.

mw.uri:clone
Faras kopion de la URIa objekto.

mw.uri:extend
Kunfandas la transvokata ujo en la peta ujo de la objekto.

Unikodaĉena elordonteko
La unikoda ĉena elordonteko celas esti rekta reefektivigo de la norma ĉena elordonteko, escepte ke la statvojoj efikas laŭ signoj en UTF-8aj kodaj ĉenoj anstataŭ okopoj.

Plejpartoj de elstatoj pelos eraron se la ĉeno ne estas valida UTF-8; esceptoj estas notitaj.

mw.ustring.maxPatternLength
La maksimuma permesita longeco de skemo, en okopoj.

mw.ustring.maxStringLength
La maksimuma permesita longeco de ĉeno, en okopoj.

mw.ustring.byte
Liveras unuopan duumokopon; identa al string.byte.

mw.ustring.byteoffset
Liveras la okopan deŝovon de indicita signo en la ĉeno. Defaŭlte ambaŭ  kaj   tiomas. povas esti negativa, en kiu kazo ĝi nombras ekde la fino de la ĉeno.

La signo ĉe  estas la unua signo komencanta ĉe aŭ post la okopo indicita per  ; la signo ĉe   estas la unua signo komencanta ĉe aŭ antaŭ okopo indicita per. Notu ke tio ĉi povas esti la sama signo. Pli grandaj aŭ malpliaj kiomoj de  estas nombrita relative al ĉi tiuj.

mw.ustring.char
Similege al string.char, escepte ke la induktivoj estas unikodaj signonumeroj anstataŭ okopaj kiomoj.

mw.ustring.codepoint
Similige kiel, escepte ke la liverataj kiomoj estas signonumeroj kaj la deŝovoj estas signoj anstataŭ okopoj.

mw.ustring.find
Similige kiel string.find, escepte ke la skemo estas etendita kiel priskribita en Unikodaĉenaj skemoj kaj la  deŝovo estas en signoj anstataŭ okopoj.

mw.ustring.format
Identa al string.format. Larĝoj kaj precizecoj por ĉenoj estas esprimitaj per okopoj, ne per signonumeroj.

mw.ustring.gcodepoint
Liveras tri kiomoj por tracikli laŭ la signonumeroj en la ĉeno. defaŭltas al  kaj   al. Tio estas celita por uzo en la tracikla formo de  :

mw.ustring.gmatch
Similige kiel string.gmatch, escepte ke la skemo estas etendita kiel priskribita en Unikodaĉenaj skemoj.

mw.ustring.gsub
Similige kiel string.gsub, escepte ke la skemo estas etendita kiel priskribita en Unikodaĉenaj skemoj.

mw.ustring.isutf8
Liveras veran se la ĉeno estas valida UTF-8a ĉeno, falsan alie.

mw.ustring.len
Liveras la longecon da signonumeroj de la ĉeno, aŭ   se la ĉeno ne estas valida UTF-8a ĉeno.

Vidu string.len por similaj elstatoj kiuj uzas okopaj longecoj anstataŭ signonumeroj.

mw.ustring.lower
Similige kiel string.lower, escepte ke ĉiuj signoj kun difinoj de minusklo al majuklo en unikodo estas transusklataj.

Se la Lingva elordonteko estas ankaŭ ŝargita, tio anstataŭe vokos  por la defaŭlt-lingva objekto.

mw.ustring.match
Similige kiel string.match, escepte ke la skemo priskribita en Unikodaĉenaj skemoj kaj la  deŝovo estas en signoj anstataŭ okopoj.

mw.ustring.rep
Identa al string.rep.

mw.ustring.sub
Similige kiel string.sub, escepte ke la deŝovoj estas signoj anstataŭ okopoj.

mw.ustring.toNFC
Transformas la ĉenon al Normiga Formo C. Liveras  se la ĉeno ne estas valida UTF-8a ĉeno.

mw.ustring.toNFD
Transformas la ĉenon al Normiga Formo D. Liveras  se la ĉeno ne estas valida UTF-8a ĉeno.

mw.ustring.upper
Similige kiel string.upper, escepte ke ĉiuj signoj kun difinoj de majuklo al de minusklo en unikodo estas transusklataj.

Se la Lingva elordonteko estas ankaŭ ŝargita, tio anstataŭe vokos  por la defaŭlt-lingva objekto.

Unikodaĉenaj skemoj
Skemoj en la unikodaĉenaj elestatoj uzas la samajn komponaĵojn ol la ĉeno-elordontekaj skemoj. La grava diferenco estas ke la signaj klasoj estas redifinita kiel Unicoda-signaj ecoj:


 *  : prezentas ĉiujn signojn kun genera kategorio "Letter" (litero).
 *  : prezentas ĉiujn signojn kun genera kategorio "Control" (kontrolo).
 *  : prezentas ĉiujn signojn kun genera kategorio "Number, decimal digit" (nombro, dekuma cifero).
 *  : prezentas ĉiujn signojn kun genera kategorio "Lowercase Letter" (minuskla litero).
 *  : prezentas ĉiujn signojn kun genera kategorio "Punctuation" (interpunkcio).
 *  : prezentas ĉiujn signojn kun genera kategorio "Separator" (apartigilo), plus tabo, linisalto, ĉaretreveno, vertikala tabo, kaj paĝosalto.
 *  : prezentas ĉiujn signojn kun genera kategorio "Uppercase Letter" (majuksla litero).
 *  : prezentas ĉiujn signojn kun genera kategorio "Letter" (litero) or "Decimal Number" (dekuma nombro).
 *  : aldonas plenlarĝajn signajn versiojn de deksesumaj nombroj.
 *  : represents all characters with General Category "Control".
 *  : represents all characters with General Category "Number, decimal digit".
 *  : represents all characters with General Category "Lowercase Letter".
 *  : represents all characters with General Category "Punctuation".
 *  : represents all characters with General Category "Separator", plus tab, linefeed, carriage return, vertical tab, and form feed.
 *  : represents all characters with General Category "Uppercase Letter".
 *  : represents all characters with General Category "Letter" or "Decimal Number".
 *  : adds fullwidth character versions of the hex digits.

Like in String library patterns,  ,  ,  ,  ,  ,  ,    here represent the complementary set ("all characters without given General Category").

Ĉiukaze, signoj estas sencigitaj kiel Unicodaj signoj anstataŭ okopoj, do intervaloj kiel, skemoj kiel %  kaj kvantigiloj aplikitaj al plurokopaj signoj efikas korekte. Vakua kaptoj kaptos la pozicion en signonumero anstataŭ okopoj.

Ŝargeblaj elordontekoj
Ĉi tiuj elordontekoj ne estas inkluditaj defaŭlte, sed se devita povas esti ŝargita per.

tridekduopa-duumo
Ĉi imitado de la Lua 5.2  elordonteko povas esti ŝargita per

bit32 = require( 'bit32' )

La bit32 elordonteko provizas laŭduumaj operacioj por sensignuma tridekduopa induktoj. Enigaj nombroj estas kurtigitaj al induktoj (per nesspecifita maniero) kaj reduktitaj laŭ modulo 232 do la kiomo estas en la intervalo 0 al 232−1; liverata kiomo estas ankaŭ en ĉi tiu intervalo.

Kiam duumoj estas nombritaj (kiel en ), 0 estas la malpli-peza duumo (tia kun la kiomo 20) kaj 31 estas la plej-peza (tia kun kiomo 231).

bit32.band
Liveras la laŭduuma KAJ de ĝiaj kunvokatoj: la rezulto havas fiksita duumo nur se tiu samloka duumo estas fiksita en ĉiuj kunvokatoj.

Se donita neniom kunvokatoj, la rezulto havas ĉiuj duumoj fiksitaj.

bit32.bnot
Liveras la laŭduuman komplementon de.

bit32.bor
Liveras la laŭduuma AŬ de ĝiaj kunvokatoj: la rezulto havas duumo fiksita se iu ajn samloka duumo estas fiksita el kunvokatoj.

Se donita neniom kunvokato, la rezulto havas ĉiuj duumoj senigitaj.

bit32.btest
Ekvivalenta al

bit32.bxor
Liveras la laŭduuma malinkluziva AŬ de ĝiaj argumentoj: la rezulto havas fiksitan duumon se la samloka duumo estas fiksita en nepara nombro da kunvokatoj.

Se donita neniom kunvokato, la rezulto havas ĉiuj duumoj senigitaj.

bit32.extract
Eltiras  da duumo el , komencanta kun la  -loka duumo. Aliri duumojn ekstere de la intervalo inter 0 kaj 31 estas eraro.

Se ne specifita, la defaŭlta por  estas 1.

bit32.replace
Anstataŭas  da duumoj en  , komencanta kun la malalta   duumoj ekde. Aliri duumon ekstere de la gamo inter 0 kaj 31 estas eraro.

Se ne specifita, la defaŭlta por  estas 1.

bit32.lshift
Liveras la nombron  ŝovita alten per   da duumo. Tio estas logika ŝovo: insertitaj duumoj estas 0. Tio ĉi estas ĝenerale ekvivalenta al multobligi per 2undefined.

Notu ke deŝovado pli alta ol 31 rezultos en 0.

bit32.rshift
Liveras la nombron  ŝovita malalten per   da duumo. Tio estas logika ŝovo: insertitaj duumoj estas 0. Tio ĉi estas ĝenerale ekvivalenta al onigi per 2undefined.

Notu ke deŝovado pli alta ol 31 rezultos en 0.

bit32.arshift
Liveras la nombron  ŝovita malalten per   da duumo. Tio estas aritmetika ŝovo: se   estas pozitiva, insertitaj duumoj estos la samaj ol la 31a duumo el la origina nombro.

Notu ke deŝovado pli alta ol 31 rezultos en 0 aŭ 4294967295.

bit32.lrotate
Liveras la nombron  |rotaciita je   da duumoj alte.

Notu ke rotacioj estas ekvivalentaj module 32: rotacio de 32 estas la sama ol rotacio de 0, 33 estas la sama ol 1, kaj tiel plu.

bit32.rrotate
Liveras la nombron  |rotaciita je   da duumoj malalte.

Notu ke rotacioj estas ekvivalentaj module 32: rotacio de 32 estas la sama ol rotacio de 0, 33 estas la sama ol 1, kaj tiel plu.

tekutilo
Ĉi tiu elordonoteko enhavas statvojo utila kiam efektiviganta Scribunto elordonotekoj. Ĝi povas esti ŝarĝita uzanta

libraryUtil = require( 'libraryUtil' )

libraryUtil.checkType
Levas eraron se    ne kongruas kun. Krome, neniu eraro estos levita se  kiomas   kaj   estas vera.

estas la nomo de la vokanta elstato kaj  estas la pozicio de la kunvokato en la kunvokataro. Tiuj estas uzitaj por aranĝo erara mesaĝo.

libraryUtil.checkTypeMulti
Pelas eraron se tipo( kunvokataro ) ne respondas al iu ajn ĉeno en la aro.

Tio estas por kunvokatoj kiuj havas pli ol unu valida tipo.

libraryUtil.checkTypeForIndex
Pelas eraron se  ne egalas.

Tio ĉi estas celita por uzo en efektiviganta   metastatvojo.

libraryUtil.checkTypeForNamedArg
Pelas eraron se   ne egalas. Krome, neniu eraro estos pelita se  estas   kaj   estas vera.

Tio estas celita por uzo kiel  ekvivalento al      en statvojoj vokitaj per Lua "nomita kunvokato" komponaĵo,.

libraryUtil.makeCheckSelfFunction
Tio estas celita por uzo en efektiviganta "statvojoj" en objektaj ujoj kiuj estas celitaj por vokado per  komponaĵo. Ĝi liveras elstaton kiu devus esti vokita ĉe la supro de ĉi tiuj statvojoj kun la  (mem) argumento kaj la statvoja nomo, kio pelos eraron se tiu   objekto ne estas.

Tiu elstato ĝenerale estos uzita en konstruila elstato de elordonteko, io kiel:

luabit
La luabit elordonteko moduloj "bit" (duuma) kaj "hex" (deksesuma) povas esti ŝargita per

bit = require( 'luabit.bit' ) hex = require( 'luabit.hex' )

Notu ke la bit32 elordonteko enhavas la samajn operaciojn ol  kaj la operacioj en   povas esti elfarita per string.format kaj $tonumber_funkcio.

La luabit modulo "noki" ne estas havebla, kiel ĝi estas tute senutila en Scribunto. La luabit modulo "utf8" estas ankaŭ ne havebla, kiel ĝi estis konsiderita redunda kun la Ustring biblioteko.

ustring
La pure-Lua ŝajnfasko al la Ustring elordonteko povas esti ŝargita per

ustring = require( 'ustring' )

Ĉiel la Ustring elordonteko devus esti uzita anstataŭ, kiel ĝi anstataŭigas multaj el la pli malrapida kaj pli memoro-intensaj operacioj kun retrovokoj al PHPa kodo.

Etendaĵaj elordontekoj
Iuj MediaWiki-etendaĵoj provizas aldonajn bibliotekojn Scribunto. Ĉi tiuj ankaŭ troviĝas en la tabelo, kutime en la tabelo  , tamen ili ĉeestas nur kiam iuj etendaĵoj estas instalitaj (aldone al la etendaĵo Scribunto mem).

Tiaj etendaĵoj uzas Scribunto-provizitajn hokojn:
 * ScribuntoExternalLibraries
 * ScribuntoExternalLibraryPaths

Skribado de bibliotekoj Scribunto donas informojn pri kiel tiaj bibliotekoj povas esti disvolvitaj por provizi interfacojn Lua por MediaWiki-etendaĵoj.

Ĉi tiuj elordontekoj estas planitaj aŭ estas en farota revizio de Gerrit.


 * (neniu nune)

mw.wikibase
Wikibase Client provides access to localizable structured data. See Extension:Wikibase Client/Lua. This is supported by Wikidata.

mw.wikibase.lexeme
WikibaseLexeme provides access to Wikibase Lexeme entities. This is supported by Wikidata:Lexicographical data.

mw.wikibase.mediainfo
WikibaseMediaInfo provides access to Wikibase MediaInfo entities. See Extension:WikibaseMediaInfo/Lua. This is supported by Structured Data on Commons. See Commons:Structured data/Lua.

mw.bcmath
BCmath provides arbitrary-precision arithmetic to Lua modules. See BCmath documentation via "LDoc" link at Extension:BCmath.

mw.smw
Semantic Scribunto provides native support for the Scribunto extension to Semantic MediaWiki extension.

mw.ext.data
JsonConfig provides access to localizable tabular and map data. See Extension:JsonConfig/Tabular. Tabular Data and GeoJSON Map Data is supported in Commons "Data:" namespace.

mw.ext.cargo
Cargo provides a means to query its data store from Lua. See Extension:Cargo/Other features.

mw.ext.cattools
CategoryToolbox provides a means to check from Lua if a certain page belongs to a category. Is is experimental and not enabled on public WikiMedia wikies.

mw.ext.FlaggedRevs
FlaggedRevs provides a means to access the stability settings of a page from Lua.

mw.ext.TitleBlacklist
TitleBlacklist provides a means to test and obtain information about blacklisted page naming entries from Lua.

mw.ext.ParserFunctions
ParserFunctions provides a means to evaluate a parser function expressions from Lua.

mw.ext.articlePlaceholder
ArticlePlaceholder provides a means to override default Wikibase renderings from Lua. See Extension:ArticlePlaceholder/Module:AboutTopic.

mw.ext.externalData
ExternalData provides a means to get structured data from Internet from Lua. See Extension:External Data.

mw.ext.seo
WikiSEO provides a means to set SEO Data for the current page. See Extension:WikiSEO.

Ŝanĝitaj elstatoj
La sekvantaj elstatoj estis modifitaj:
 * setfenv
 * getfenv: Eble ne esti haveblaj, dependanta de la agordo. Se havebla, malsukcesos provoj de aliri antaŭantajn mediojn.
 * getmetatable: Laboroj sur ujoj nur antaŭhaltigas nepermesitajn aliron al antaŭantaj medioj.
 * tostring: Referencaj adresoj de ujoj kaj elstatoj ne estas provizitaj. Tio estas por fari memoro-koruptan atakeblon pli malfacila ekspluatebla.
 * pairs
 * ipairs: Apogo por la   kaj   metastatvojoj (aldonita en Lua 5.2) estis aldonita.
 * pcall
 * xpcall: Kelkaj internaj eraroj ne povas esti kaptitaj.
 * require: Povas ŝargi kelkajn praajn modulojn, kiuj estas distribuitaj kun Scribunto, kaj moduloj enhavataj en la Modulo nomujo de la vikio. Por ŝargi vikiajn modulojn, uzu la plenan paĝnomon, nomujo inklude. Ne povas alie aliri la lokan dosiersistemo.

Forigitaj elstatoj kaj pakoj
La sekvantaj pakoj estas plejparte forigita. Nur tiuj funkcias enlistigita estas haveblaj:
 * package.*: Dosiersistemaj kaj C-elordontekaj aliroj estis forigita. Haveblaj elstatoj kaj ujoj estas:
 * package.loaded
 * package.preload
 * package.loaders: Ŝargiloj kiuj aliras la lokan dosiersistemon aŭ ŝaras C-elordontekoj ne estas haveblaj. Ŝargilo por Modulo-nomujaj paĝoj estas aldonita.
 * package.seeall


 * os.*: Estas kelkaj nesekuraj elstatoj tie, kiel os.execute, kiuj ne povas esti permesita. Haveblaj elstatoj estas:
 * os.clock
 * os.date
 * os.difftime
 * os.time


 * debug.*: Plejparto de la elstatoj estas nesekuraj. Haveblaj elstatoj estas:
 * debug.traceback

La sekvantaj elstatoj kaj pakoj ne estas haveblaj:
 * collectgarbage
 * module
 * coroutine.*: Neniu apliko estas konata de ni, do ĝi ne estis reviziita por sekureco.
 * dofile
 * loadfile
 * io.*, file.*: Permesas lokan dosiersisteman aliron, kiu estas nesekura.
 * load
 * loadstring: Tiuj estis formetitaj por ebli statikan analizon de la Lua fonta kodo. Ankaŭ, permesanta ĉi tiujn permesus Lua kodo esti aldonita rekte al artikolo kaj ŝablonaj paĝoj, kio ne estas dezirata por afabligaj kialoj.
 * print: Tio ĉi estis diskutita en wikitech-l kaj ĝi estis decidita ke ĝi devus esti formeti favore al liverataj kiomoj, por plibonigi kvaliton de kodo. Se necesa,  povas esti uzita por eligi informojn al la spura konsolo.
 * string.dump: Povus elmeti privatan datenon de gepatraj medioj.

Suplementaj avertoj

 * Referancaj datenaj strukturoj: ciklaj datenaj strukturoj kaj datenaj strukturoj kie la sama nodo povas esti atingita per pli ol unu vojo ne povas esti korekte sendita al PHP. Provi tiel fari kaŭzos nedifina konduto. Tio inkludas (sed ne estas limigita al) liveri tiajn datenajn strukturojn el la modulo vokita per   kaj pasi tiajn datenajn strukturojn kiel transvokatoj al eldontekaj elstatoj de Scribunto kiu estas efektivigitaj kiel retrovoko en PHP.Tiaj datenaj struktutoj estas libere uzebla ene de Lua, inklude kiel la liverato kiomo de moduloj ŝagitaj per.

Skribi elordontekojn por Scribunto
Tiu informo estas utila al disvolvistoj kiuj skribas suplementan elordontekoj por Scribunto, ĉu por inkludo en Scribunto mem aŭ por provizi fasadon por iliaj propraj etendaĵoj.

Scribunto elordontekoj ĝenerale konsistas de kvin partoj:


 * La PHPa parto de la elordonteko.
 * La Lua parto de la elordonteko.
 * La PHPa parto de la testaj kazoj.
 * La Lua parto de la testaj kazoj.
 * La dokumentaro.

Ekzistantaj elordontekojn servas kiel bona ekzemplo.

Elordonteko
La PHPa parto de la elordonteko estas klaso kiu devas etendi. Vidu la dokumentaron de tiu klaso por efektivigaj detaloj. En la Scribunto etendaĵo, tiu dosiero devus esti lokita en, kaj mapado devus esti aldonita al. Aliaj etendaĵoj devus uzi la ScribuntoExternalLibraries hoko. En ajna kazo, la kiuo devus egali la Lua modulonomo ("mw.nomo" por elordontekoj en Scribunto aŭ "mw.ext.nomo" por etendaĵaj elordontekoj).

La Lua parto de la elordonteko instalas la ujon enhavantan la elstatoj kiuj povas esti vokita de Lua moduloj. En la Scribunto etendaĵo, la dosiero devus esti lokita en. Tiu dosiero ĝenerale devus inkludi reuzeblaĵo, kiel:

ĉiea-ujo. mw = mw or {} mw.ext = mw.ext or {} mw.ext.NAME = object

-- Indikas ke ni estas ŝargita package.loaded['mw.ext.NAME'] = object end

return object

La modulo en  (load this with  ) contains some functions that may be helpful (ŝargas tion kun  ) enhavas kelkajn elstatojn kiuj povas esti helpema.

Certiĝe ruli la Scribunto testaj kazoj kun via elordonteko ŝargita, eĉ se via elordonteko mem ne provizas ajnajn testajn kazojn. La normaj testaj kazoj inkludas testojn por aferoj kiel elordontekoj aldonantaj neatenditaj mallokaj statingoj. Ankaŭ, se la elordonteko estas ŝargita kun PHP, ajna transkiomo kies ĝia Lua elstatoj havas ne estos rekomencigitaj inter sekvantaj. Prizorgo devas esti prenita certigi ke moduloj ne povas fitrakti tion por translokigi informon inter sekvantaj.

Testaj kazoj
La Scribunto etendaĵo inkludas bazan klason por testaj kazoj,, kiu rulos la testojn kompare kun kaj la Lua-mediuja kaj Lua-memstara motoroj. La testa kazo de la elordonteka devus etendi tiun klason kaj ne devus superregi. En la Scribunto etendaĵo, la testa kazo devus esti en  kaj esti aldonita en la ujo   (en  ); etendaĵoj devus aldoni iliajn testajn kazojn en ilia propra   hoka elstato, verŝajne kondiĉe de ĉu   estas fiksita aŭ ne.

Plejofte, por fari la testan kazon nur endas jena:

class ClassNameTest extends Scribunto_LuaEngineTestBase { protected static $moduleName = 'ClassNameTest'; function getTestModules { return parent::getTestModules + array(             'ClassNameTest' => __DIR__ . '/ClassNameTests.lua';          ); } }

Tio ŝargos la dosieron  kiel se ĝi estis la paĝa "Modulo:KlasNomoTests", atendanta ke ĝi liveras objekton kun la sekvantaj ecoj:


 * count: induktiva, nombro da testoj
 * provide( n ): elstato kiu liveras tri kiomoj:, la nomo de testo  , kaj ĉeno kiu estas la atentata eligo por testo.
 * run( n ): Elstato kiu rulas teston   kaj liveras unu ĉeno.

Se  estas deklarita kiel montrita, "Modulo:TestFramework" estas havebla, kaj provizas multajn utilajn helpilaj metodoj. Se tio estas uzita,  ŝajnus kiel:

local testframework = require 'Module:TestFramework' return testframework.getTestProvider( {    -- Testoj iras ĉi tie } )

Ĉiu testo mem estas ujo, kun la sekvantaj ecoj:


 * name: Nomo de la teksto.
 * func: Elstato rulenda.
 * args: Opcia ujo de kunvokatoj, pasendaj al elstato.
 * expect: Rezultoj atentendaj.
 * type: Opcia tipo de testo, defaŭlte kiel "Normal" (normala).

La tipo kontrolas la aranĝo de  kaj kiel   estas vokita. Inkluditaj tipoj estas:


 * Normal:  estas ujo de liverataj kiomoj, aŭ ĉeno se la testo devus peli eraron.
 * Iterator:  estas ujo de liverataj kiomoj.   estas vokita kiel  iteracia   ciklilo, kaj ĉiu liverata kiomo de iteracio estas akumilitaj.
 * ToString: Kiel "Normal", escepte ke ĉiu liverata kiomo estas pasita tra.

Testaj kazoj en alia etendaĵo
Estas (almenaŭ) du vojoj ruli PHPUnit-ajn testojn:


 * 1) Ruli phpunitaj per kerno, permesanta al la dosiero tests/phpunit/suites/ExtensionsTestSuite.php trovi la testojn de la etendaĵo per la  hoko. Se la nomoj de klasaj testoj de via etendaĵo ĉiujn enhavas unuopan komponaĵo (ekz. la nomo de la etendaĵo), la opcio   povas esti uzita por ruli nur la testojn de via etendaĵo.
 * 2) Ruli phpunit per la etendaĵa dosio, kie ĝi kaptos ajnan dosieron kiu finas kun "Test.php".

Ajn iel efikos bone se Scribunto estas ŝargita en LocalSettings.php. Kaj ĝi estas facile por metodo #1 de labori se Scribunto ne estas ŝargita, kiel la UnitTestsList hoko facile povas esti skribita por eviti liveradon de la Scribunta testo kiam  ne estas fiksita.

Sed Jenkins uzas la duan metodon. Por ke Jenkins konvene rulas la testojn, vi devos aldoni Scribunto kiel dependeco al via etendaĵo. Vidu por ekzemplo de kiel tio estas farita.

Se por iu kialo vi bezonas ke la testoj estas ruleblaj laŭ la dua metodo sen Scribunto ŝargita, iu eskapsolvo estas aldoni tiun kontrolon al la supro de via unua testa dosiero:

Dokumentaro
Moduloj inkluditaj en Scribunto devus inkludi dokumentaron en la Scribunto elordonteka sekcio supre. Etendaĵaj elordontekoj devus inkluzivi dokumentaron en subpaĝo de ilia propra etendaĵa paĝo, kaj ligi al tiu dokumentaro el.

Vidu ankaŭ

 * Lua

Permesilo
Tiu manlibro estas derivita el la referenca manlibro pri Lua 5.1, kiu estas havebla laŭ la MITa licenco.

Ĉi tiu derivaĵa manlibro ankaŭ povas esti kopiita sub la kondiĉooj de la sama licenco.