Lua
Stewie (Diskussion | Beiträge) |
Stewie (Diskussion | Beiträge) |
||
Zeile 35: | Zeile 35: | ||
'''Beispiel mit Argumenten:''' | '''Beispiel mit Argumenten:''' | ||
− | Lua Funktionen können beliebige Parameter übergeben bekommen | + | Lua Funktionen können beliebige Parameter übergeben bekommen, hier frame.args[1] |
Angepasstes Lua Modul | Angepasstes Lua Modul | ||
Zeile 55: | Zeile 55: | ||
'''Ergebnis:''' | '''Ergebnis:''' | ||
{{#invoke:LuaTest_Argumente|hello|Ein Toller Text}} | {{#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] |
Version vom 8. Mai 2024, 15: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
- Modul:LuaTest Übersicht aufbau
- Modul:ListeBasistyp Erstellt Listen für Basistypen (Kurzbeschreibung, GehörtZu, Bild, Publikation)
- Modul:ZauberNachGrad Sortiert Zauber einer Magieschule nach Grad
- Modul:AutomatischerIndex ersetzt Vorlage:AutomatischerIndex (sehr schlechte performance)
- Modul:Autoren
- Modul:MitarbeitAn
- Modul:Quellen
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