Hilfe:Lua/Quellcode und Vorschau
{{Wikipedia:Lua/Linkbox}} Auf dieser Hilfeseite wird beschrieben, wie sich in der Wiki-Umgebung Lua-Quellcode eingeben und testen lässt.
Code-Editor[Bearbeiten]
Bei den dafür vorgesehenen Seiten des Modul-Namensraums schaltet sich bei der Bearbeitung der Seite immer automatisch der CodeEditor zu.
- wikEd usw. müssen abgeschaltet sein.
- Der VisualEditor sollte sich seit Mitte 2013 selbst abschalten.
Seitenvorschau und Testseite[Bearbeiten]
Ähnlich wie bei Vorlagen gibt es (statt) der normalen Seitenvorschau zwischen Speichern und Änderungen zeigen im Feld darunter zusätzlich ⧼templatesandbox-editform-view-label⧽ zur Darstellung einer spezifizierten Seite, bei der der im Bearbeitungsfeld vorhandene Code so behandelt wird, als wäre das zugehörige Modul bereits gespeichert.
Das bietet sich insbesondere für die Testseite an:
- Zu jedem produktiven Modul sollte eine Testseite in Wikisyntax vorhanden sein. Sie erlaubt einen routinemäßigen Schnelltest, ob das Modul noch prinzipiell in ordnungsgemäßem Zustand ist.
- Es sind nach Funktionen gegliedert die typischen Vorlageneinbindungen und dafür das erwartete Ergebnis und das momentane Resultat aus dem Lua-Modul gegenüberzustellen, so dass sie unmittelbar und übersichtlich verglichen werden können.
- Gleichzeitig kann die Testseite als Bestandteil der Dokumentation alle diese Beispielfälle zur Veranschaulichung nutzen.
Beispiele: URLutil und TemplatePar.
Damit kann der Lua-Quellcode auch nach und nach in der Seitenvorschau entwickelt werden, ohne jede einzelne Version speichern zu müssen.
Konsole[Bearbeiten]
Wenn man ein Modul mit existierendem Quellcode im Bearbeitungsfeld zum Bearbeiten geöffnet hat, erhält man im Fußbereich der Seite eine Fehlerbereinigungskonsole.
- Dies gilt also nicht bei einer neu erstellten Seite beim ersten Öffnen mit
action=edit; auch hier jedoch nach der ersten Seitenvorschau alsaction=submit.
- Suche nach Syntaxfehlern Skriptfehler: Ein solches Modul „Vorlage:Anker“ ist nicht vorhanden.
- Mit der Maus in das grau unterlegten Eingabefeld der „Fehlerbereinigungskonsole“ gehen, ein Gleichheitszeichen
=eingeben und die Taste Enter drücken.- Wirkung: Der Quellcode im Bearbeitungsfeld wird per API zum Server geschickt, ausgewertet und einige Momente später dargestellt.
- Es wurde jedoch keine Funktion aufgerufen; also wird es kaum ein Resultat des Quellcodes geben.
- Dafür erhält man eine englischsprachige Fehlermeldung mit Angabe der Zeilennummer. Bei aktiviertem Code-Editor wird die Zeilennummer auch im Bearbeitungsfeld dargestellt.
- Statische Ausdrücke
- Statische Ausdrücke ohne Bezug zum Bearbeitungsfeld können berechnet werden, indem ein Gleichheitszeichen vorangestellt und Enter gedrückt wird.
- Modulwert
p - Die Variable p steht im Konsolenfenster für den Rückgabewert des Moduls – völlig egal, welchen Namen diese lokale Variable im Modul trägt.
- In das Konsolfeld wird eine Komponente des Modul-Rückgabewerts
p(Variable oder Funktionsaufruf) eingetragen, ein Gleichheitszeichen vorangestellt und Enter gedrückt. - mw.log() Skriptfehler: Ein solches Modul „Vorlage:Anker“ ist nicht vorhanden.
- Anweisungen der Art
mw.log(text)bleiben scheinbar wirkungslos; ausgenommen:- in der Konsole,
- bei der Seitenvorschau im Parser Profiling Report.
- Dieser ist für Normalbenutzer unsichtbar; Lua-Programmierer werden ihn sichtbar gemacht haben und auswerten.
- Dort unter der Überschrift „Lua-Logbücher“ und kann dann ausgeklappt werden.
- Es sind beliebig viele Argumente beliebigen Datentyps möglich, die fomatiert mit etwas Abstand hintereinander gezeigt werden.
- Damit können während einer Testphase noch Meldungen in die Programmierung des Moduls eingestreut werden, ohne das Gesamtergebnis der Auswertung zu stören.
- In einer produktiven Version sollte es jedoch nicht mehr auftreten.
- mw.logObject( object, prefix ) Skriptfehler: Ein solches Modul „Vorlage:Anker“ ist nicht vorhanden.
- Genauso wie mw.log(), jedoch mit einer table als erstes Argument object. Die Komponenten werden optisch gegliedert dargestellt.
- Ein optionales zweites Argument prefix kann eine Zeichenkette sein, die den angezeigten Namen des object benennt.
- print()
- Diese Funktion ist ein Alias für
mw.log()und für ein Wiki nur innerhalb der Konsole möglich. Es ist gleichzeitig ein Alias für das Gleichheitszeichen. - Wie dort sind in der Konsole lokale Informationen des Moduls nicht verfügbar.
Bedienung:
- Die bislang erzielten Ergebnisse der Konsole bleiben sichtbar, bis Leeren gedrückt oder die Seite neu aufgebaut wird.
- ↑ gibt Zugriff auf vorige Eingaben.
Für die Gesamtwirkung der Modul-Ergebnisse ist die Vorschau-Funktion wichtiger, insbesondere mit der im vorigen Abschnitt dargestellten Testseite.
Skriptfehler: Ein solches Modul „Vorlage:Anker“ ist nicht vorhanden. Debugging-Meldungen[Bearbeiten]
Während bei der Seitenvorschau der Modul-Einbindung die von mw.log() ausgeworfenen Meldungen in der Konsole sichtbar sind, erscheinen sie seit Juli 2014 in der normalen Seitenvorschau/Ansicht im Parser-Report. Dieser ist in der deutschsprachigen Wikipedia allerdings standardmäßig ausgeblendet.
Benutzer-Spielwiese[Bearbeiten]
In der Vorlagenspielwiese können Module analog zum Modul-Namensraum entwickelt werden.