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