Wikipedija:Lua

Z Wikipedije
Źi na bok: Nawigacija, Pytaś
Logo Lua-rěcy

Lua jo programěrowańska rěč, kótaraž něnto stoj k dispoziciji pśez rozšyrjenje MediaWiki Scribunto. Lua-kode dajo se do wikipśedłogow z pomocu funkcionalnosći "{{#invoke:}}" rozšyrjenja MediaWiki Scribunto zasajźiś.

Žrědłowy kode Lua składujo se w bokach pomjenjenych module (na pś. Module:Bananas). Toś te jadnotliwe module wołaju se pón (pśez "{{#invoke:}}") na pśedłogowych bokach (na pś. Module talk:Bananas wužywa kode {{#invoke:Bananas|witaj}}, aby tekst "Witaj swět!" wudał).

Pśikładowe module[wobźěłaś]

  • Module:Bananas: Nejwěcej jadnory móžny skript, kótaryž dodawa jadnučku funkciju bźez argumentow.
  • Module:BananasArgs: Demonstrěrujo, kak maju pśistup na parametry a kak se wužywaju.

Skript póžedaś[wobźěłaś]

Woglědaj se k bokoju Wikipedia:Lua requests, aby wó pomoc pśi pisanju Lua-skripta pšosył, kótaryž ma specifiski nadawk we Wikipediji abo drugem projekśe załožby Wikimedia Foundation wuwjasć.

Historija[wobźěłaś]

ParserFunctions, rozšyrjenje Lua, wikijowa skriptowa rěc debatěrujo se (JavaScript napśeśiwo Lua), mw:Extension:WikiScripts, Tim Starling pišo Scribunto ze zakładneju pódpěru za Lua.

Wót lět diskutěrowane, jo se Lua w lěśe 2012 za testowanje na test2.wikipedia.org instalěrował a wšykne wobźěłarje su se pśeprosyli, se na eksperimentěrowanju pśi wuwijanju Lua-modulow wobźěliś. Lua jo se w engelskej Wikipediji we februarje 2013 instalěrował, za tym až jo se na mediwiki.org na testowych wikijach testował.

Wo Lua[wobźěłaś]

Lua jo skriptěrowańska rěc, kótaraž dajo se za analyzěrowanje datow, wulicowanje wurazow a formatěrowanje wuslědkow z pomocu funkcijow objektorientěrowanego programěrowanja wužywaś. Lěcrownož Lua-skript dajo se jadnory wobchowaś, za lažke rozměśe, zmóžnja Lua kompleksne struktury, kótarež by informatikarja wupominali, z tabelami, dynamiskimi funkcijami a asociatiwnymi datowymi pólami, źož dłymoko stajone indekse mógu słowa a teke indeksowe cysła byś. Lua teke pódpěra rekursiju zašachtelikanych funkcijow abo zmóžnja korutiny za kooperatiwny multitasking, źiwaj togodla na to, až wobijaš se ekscesiwneje kompleksnosći, źož druge wužywarje njeby rozměli, kak maju z Lua-modulom wobchadaś. Slědujo pśikład za žrědłowy kode z Lua za fakultowu funkciju:

  function factorial(n)
    if n == 0 then
      return 1 --to wrośa wuslědk 1, gaž jo se nul pśepódał
    else
      return n * factorial(n - 1)
    end
  end
  for index = 1,5 do
      print(index, "n! = ", factorial(index) )
  end

Pśikład za Lua wuzwigujo se pśez toflicku "<source lang="lua">...</source>", kótaraž zaměstnjujo se wokoło žrědłowego koda. Aby se wěcej kompleksne pśikłady za Lua woglědał, glědaj nastawk: "de:Lua".

Za instrukcije, kak Lua wužywa se w MediaWiki, glědaj mw:Extension:Scribunto/Lua reference manual.

Testowanje jadnotkow[wobźěłaś]

Wobłuk za testowanje jadnotkow za Lua-skripty na Wikipediji stoj na Module:UnitTests k dispoziciji. Zmóžnja śi, swój skript za wěstu sajźbu zapodaśow wuwjasć a pśeglědaś, lěc wótcakane wudaśa producěruju. Testy jadnotkow su wósebnje wužytne, aby se regresije spěšnje namakali, źož změny na skripśe nowe problemy wuwołuju.

Pó konwenciji testy jadnotkow za modul kaž Module:Bananas zaměstnjuju se w Module:Bananas/testcases, a wuwjeduju se na Module talk:Bananas/testcases z na pś. {{#invoke: Bananas/testcases|run_tests}}. Testowe metody muse se z "test" zachopiś.

How jo jadnory pśikład z Module:Bananas/testcases:

-- Testy jadnotkow za [[:en:Module:Bananas|Module:Bananas]]. Klikni na diskusijny bok, aby testy startował.
local p = require('Module:UnitTests')
 
function p:test_witaj()
    self:preprocess_equals('{{#invoke:Bananas | witaj}}', 'Witaj, swět!')
end
 
return p

Za lisćinu wšych modulow, kótarež wužywaju testy jadnotkow, glědaj Special:Whatlinkshere/Module:UnitTests.

Za Wikipediju specifiske funkcije[wobźěłaś]

Lua - zapódawańske wobgranicowanja[wobźěłaś]

Lua-kode w rozšyrjenju Scribunto wuwjeźo se jano, gaž bok se analyzěrujo. Togodla jo wobźěłowanje boka jadnučke wužywarske zapódaśe, kótarež Lua akceptěrujo - wón njamóžo pólo napóraś, kótarež wulicujo kwadratny kórjeń, kótaryž zapódawaš, abo źěl Mandelbrotoweje sajźby we wótwisnosći wót togo znowego wulicyś, na kótaryž źěl nadrědowaneje sajźby kliknjoš. Lua-zapódaśe móžo bok pśenosujobnego teksta na Wikipediji wopśimjeś. To njezapśimujo grafiske dataje (teke nic .SVG-dataje, lěcrownož su pópšawem tekst, teke gaž pśesunjoš je na wikitekstowy bok), lisćina bokow w kategoriji a teke nic wopśimjeśe specialnych bokow.

Wikitekst[wobźěłaś]

Pśenjasone Wikipedijowe głowki wopśimuju cesto schowany kode ako na pś. "UNIQ5ae8f2aa414ff233-h-3--QINU", kótaryž musy se ewentuelnje wótpóraś, aby se efektiwnje analyzěrowali.

Wikiwótkaze typa [[Wikipedia:Help|]] njefunkcioněruju, jolic wrośaju se ako wudaśe - muse se wuraznje ako [[Wikipedia:Help|Help]] pisaś.

Glědaj teke[wobźěłaś]

Specifiske resurse engelskeje Wikipedije