Änderungen

keine Bearbeitungszusammenfassung
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]