Hoppa till innehållet

Wikipedia:Lua

Från Wikipedia

Lua är ett programspråk som nu finns tillgänglig via programtillägget Scribunto i MediaWiki på svenskspråkiga Wikipedia. Luakod kan nu bäddas in Wikipedia-mallar genom att använda "{{#invoke:}}".

Lua(käll)koden lagras i sidor som kallas moduler som ligger i namnrymden Modul (t ex Modul:Sgd). En Lua-modul anropas normalt från en mallsida med {{#invoke:}}, t ex {{#invoke:Sgd|sgd|a=66|b=12}}.

Projekt

Huvudsyftet med detta projekt är att hjälpa dem som vill koda en Lua-modul för Wikipedia, genom att ge tips, riktlinjer och kontakter med andra som kodar Lua-moduler.

Lua i Wikipedia

Ett Hello World exempel är Modul:HelloWorld:

mitt_objekt = {}; -- Alla Lua moduler i Wikipedia måste börja med att definiera en variabel som har deras
                  -- externt tillgängliga funktioner. De kan ha valfria namn och kan även innehålla data.
 
mitt_objekt.hej = function( frame )  -- Lägg till en funktion till variabeln. Dessa går att anropa från 
                                     -- Wikipedia med #invoke. "frame" innehåller datat som Wikipedia 
                                     -- skickar till denna funktion när den anropas.
 
    local str = "Hello World!"  -- Deklarera en lokal variabel och ge den data. 
 
    return str  -- Avsluta denna funktion och skicka datat i "str" tillbaka till Wikipedia.
                -- "print" funktionen är inte tillåten, så all utmatning görs genom att skicka
                -- tillbaka data på detta sätt.
 
end  -- Slut på funktionen.
 
return mitt_objekt  -- Alla moduler avslutas med att skicka tillbaka variabeln med dess funktioner
                    -- till Wikipedia.
 
-- Vi kan nu använda denna modul med {{#invoke: HelloWorld | hej }}.
-- #invoke kommandot börjar med modulens namn, i detta fall "HelloWorld",
-- sedan följer ett av modulens funktioner, i detta fall "hej".

För en mer detaljerad beskrivning om hur man använder Lua i Wikipedia, se mw:Extension:Scribunto/Lua reference manual (engelska).

Lägg till mallen {{Lua}} längst upp på diskussionssidan för alla mallar som använder Lua. Detta för att hjälpa de som inte känner till Lua och underlätta för projektet att få en översyn. Mallen ser ut så här:

Begränsningar av Lua i Wikipedia

Lua-koden körs endast när en sida tolkas (dvs när en sida sparas, förhandsgranskas, etc) och Lua kan endast få indata som textsträngar, skickade med {{#invoke:}} och som går att hämta från frame:expandTemplate, frame:preprocess, osv. Den wikitext som skickas ut från Lua efterbearbetas inte, så mallar och all annan transkludering sker inte, utan texten kommer att visas som den är. Länkar av typen [[Wikipedia:Hjälp|]] fungerar inte som utdata från Lua - de måste skrivas explicit som [[Wikipedia:Hjälp|Hjälp]]. All annan behandling av innehållet, t ex att ersätta ~~~~ med signaturer sker inte heller. Slutligen så är Luakoden på en sida begränsad till 10 sekunder CPU-tid i servern.

Din sandlåda

Ifall man vill byta ut wikikod mot Lua i en befintlig mall är det lämpligt att först prova sig fram i en personlig "sandlåda". Den skapar du enligt detta format (ersätt texten mellan < > med lämplig text).

Modul:Sandlådan/<Ditt användarnamn>/<Namnet på din modul>

Använd Special:PrefixIndex/Modul:Sandlådan för att lista all Lua-kod i alla sandlådor.

Deltagare

Som med de flesta andra projekt som finns det ett antal personer som engagerar sig i det. Alla är mycket välkomna att delta precis hur mycket de vill, utan att man måste skriva upp sig någonstans för den sakens skull – många på Wikipedia föredrar att inte göra det. Om man vill, så går det dock att markera sin närvaro nedan, så finns det några man kan vända sig om man specifikt vill kontakta användare om projektet.

Se även