Hilfe:Lua/Quellcode und Vorschau

aus Wikipedia, der freien Enzyklopädie

{{Wikipedia:Lua/Linkbox}} Auf dieser Hilfeseite wird beschrieben, wie sich in der Wiki-Umgebung Lua-Quellcode eingeben und testen lässt.

Code-Editor

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

Ä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

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 als action=submit.
Suche nach Syntaxfehlern
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()
Anweisungen der Art mw.log(text) bleiben scheinbar wirkungslos; ausgenommen:
  1. in der Konsole,
  2. 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 )
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.

Debugging-Meldungen

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

In der Vorlagenspielwiese können Module analog zum Modul-Namensraum entwickelt werden.