Lua

Aus Splitterwiki
Zur Navigation springen Zur Suche springen
 
(8 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 5: Zeile 5:
  
 
Wichtige Ressourcen:
 
Wichtige Ressourcen:
Einsatz:  #invoke: Module_name | function_name | arg1 | arg2 | arg3 ...  
+
 
 +
'''Einsatz:'''
 +
Scribunto-Lua-Skripte werden in dem Namensraum Module abgelegt. Module laufen auf Wiki-Seiten unter Verwendung der #invoke Parser-Funktionen. Jedes Modul hat eine Sammlung an Funktionen, die mittels Wiki-Syntax aufgerufen werden können, wie:
 +
 
 +
<pre>
 +
  {{#invoke: Module_name | function_name | arg1 | arg2 | arg3 ... }}
 +
</pre>
 +
 
 +
Einfaches Beispiel, das Modul "LuaTest" mit der Funktion "hello", es erzeugt als ausgabe (return) "Hello, world!"
 +
 
 +
<pre>
 +
local p = {}
 +
 
 +
function p.hello( frame )
 +
    return "Hello, world!"
 +
end
 +
 
 +
return p
 +
</pre>
 +
 
 +
Einbindung in eine Wikiseite
 +
<pre>
 +
{{#invoke:LuaTest|hello}}
 +
</pre>
 +
 
 +
'''Ergebnis:'''
 +
{{#invoke:LuaTest|hello}}
 +
 
 +
'''Beispiel mit Argumenten:'''
 +
 
 +
Lua Funktionen können beliebige Parameter übergeben bekommen, hier frame.args[1]
 +
 
 +
Angepasstes Lua Modul
 +
<pre>
 +
 
 +
local p = {} --local p = {} -- p steht für Paket (engl. package)
 +
 
 +
function p.hello( frame )
 +
    return frame.args[1]
 +
end
 +
 
 +
return p
 +
 
 +
</pre>
 +
 
 +
<pre>
 +
{{#invoke:LuaTest_Argumente|hello|Ein Toller Text}}
 +
</pre>
 +
'''Ergebnis:'''
 +
{{#invoke:LuaTest_Argumente|hello|Ein Toller Text}}
 +
 
 +
'''Beispiel Semantische Angaben verarbeiten:'''
 +
Semantische Abfragen können innerhalb von Lua Scripten Erfolgen, die abfragen können dann entsprechend weiterverarbeitet werden.
 +
Die Rückgabe der Abfrage erfolgt dabei als "Array", die weiterverarbeitung ist etwas gewöhnungsbedürftig
 +
 
 +
Beispielweise sollen alle offiziellen Publikationen abgefragt werden, uns interessieren dabei die Autor:innen
 +
<pre>
 +
local queryResult =  mw.smw.ask('[[Hauptkategorie::Publikation]][[Kanon::offiziell]]|?Autoren#-=2|mainlabel=-|limit=500')
 +
</pre>
 +
 
 +
 
 
* [https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual Scribunto Refeferenz Allgemein]
 
* [https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual Scribunto Refeferenz Allgemein]
 
* [https://github.com/SemanticMediaWiki/SemanticScribunto/blob/master/docs/README.md SemanticScribunto]
 
* [https://github.com/SemanticMediaWiki/SemanticScribunto/blob/master/docs/README.md SemanticScribunto]
Zeile 19: Zeile 79:
 
* [[Modul:Quellen]]
 
* [[Modul:Quellen]]
  
{{#invoke:MitarbeitAn|getMitarbeit|Name=Uli Lindner}}
+
{{#invoke:ListenAuswahl|Liste|Pagename=Magier}}
 +
 
 +
{{#invoke:Quellen|getQuellen|Pagename=Darkadsmyr}}

Aktuelle Version vom 8. Mai 2024, 16:21 Uhr

Stewie (Nutzer) Wiki

Fehlersammlung  •   Bot  •   Ablage  •   Lua  •   Fehlende Artikel

Lua Module funktionieren nahezu wie Vorlagen, sind bei komplexen anliegen aber schneller und lesbarer als Wikicode.

Wichtige Ressourcen:

Einsatz: Scribunto-Lua-Skripte werden in dem Namensraum Module abgelegt. Module laufen auf Wiki-Seiten unter Verwendung der #invoke Parser-Funktionen. Jedes Modul hat eine Sammlung an Funktionen, die mittels Wiki-Syntax aufgerufen werden können, wie:

 {{#invoke: Module_name | function_name | arg1 | arg2 | arg3 ... }}

Einfaches Beispiel, das Modul "LuaTest" mit der Funktion "hello", es erzeugt als ausgabe (return) "Hello, world!"

local p = {} 

function p.hello( frame )
    return "Hello, world!"
end

return p

Einbindung in eine Wikiseite

{{#invoke:LuaTest|hello}}

Ergebnis: Hello, world!

Beispiel mit Argumenten:

Lua Funktionen können beliebige Parameter übergeben bekommen, hier frame.args[1]

Angepasstes Lua Modul


local p = {} --local p = {} -- p steht für Paket (engl. package)

function p.hello( frame )
    return frame.args[1]
end

return p

{{#invoke:LuaTest_Argumente|hello|Ein Toller Text}}

Ergebnis: Ein Toller Text

Beispiel Semantische Angaben verarbeiten: Semantische Abfragen können innerhalb von Lua Scripten Erfolgen, die abfragen können dann entsprechend weiterverarbeitet werden. Die Rückgabe der Abfrage erfolgt dabei als "Array", die weiterverarbeitung ist etwas gewöhnungsbedürftig

Beispielweise sollen alle offiziellen Publikationen abgefragt werden, uns interessieren dabei die Autor:innen

local queryResult =  mw.smw.ask('[[Hauptkategorie::Publikation]][[Kanon::offiziell]]|?Autoren#-=2|mainlabel=-|limit=500')


Liste von Modulen

Ausbildung Stewie/Lua:
Ressourcen:
Stärken:
Fertigkeiten:
Meisterschaften:

Personen mit Ausbildung als Stewie/Lua

Dakardsmyr (Publikation): Seite: 20-29,6 (Geschichte),
Selenia (Publikation):Fehler: keine Seitenzahl zu finden
Splittermond: Die Welt: Seite: 48-50