Modul:Development: Unterschied zwischen den Versionen

Aus FürthWiki

(Die Seite wurde neu angelegt: „local p = {} --p stands for package function p.return_args() local args = "" for key, value in pairs(mw.getCurrentFrame():getParent().args) do args = args .. key .. "=" .. value .. " " end return args end return p“)
 
Keine Bearbeitungszusammenfassung
Zeile 3: Zeile 3:
function p.return_args()
function p.return_args()
local args = ""
local args = ""
local first_arg = true
for key, value in pairs(mw.getCurrentFrame():getParent().args) do
for key, value in pairs(mw.getCurrentFrame():getParent().args) do
args = args .. key .. "=" .. value .. " "
if not first_arg then
args = args .. " | "
end
args = args .. key .. "=" .. value
first_arg = false
end
end
     return args
     return args

Version vom 16. Juni 2025, 12:48 Uhr

Das Modul:Development hält verschiedene Funktionen zum Debuggen bereit:

print_template_args()

Die Funktion soll helfen, Vorlagen und insbesondere deren Einbindung zu debuggen, wenn nicht klar ist, ob alle und die richtigen Argumente übergeben werden.

Eingebunden in eine Vorlage gibt es seinen Aufruf mit Parametern aus. Man fügt einfach {{#invoke:Development|print_template_args}} temporär in die Vorlage (ggf. nur in die Vorschau) ein und sieht z. B.
Modul:Development|print_template_args: {{Karte|lon=10.9978422|lat=49.4805779|zoom=17}}

print_call_args()

Die Funktion soll helfen, die Argumente eines {{Vorlage | ...}} oder {{#invoke:Modul|Funktion | ...}} oder {{#display_map: ...}} zu debuggen, wenn nicht klar ist, ob alle und die richtigen Argumente übergeben werden.

Eingebunden wird die Funktion anstelle des eigentlichen Invokes. Beispiele:

  • {{ Vorlage | arg1=a | arg2=b }} ändern zu {{ #invoke:Development|print_call_args | arg1=a | arg2=b }} ergibt Skriptfehler: Die Funktion „print_call_args“ ist nicht vorhanden.
  • {{ #invoke:Modulename|Funktionsname | arg1=1 | arg2=2 }} ändern zu {{ #invoke:Development|print_call_args | arg1=1 | arg2=2 }} ergibt Skriptfehler: Die Funktion „print_call_args“ ist nicht vorhanden.
  • {{ #display_map: geojson=Südstadt | enablefullscreen=yes | resizable=yes }} ändern zu {{ #invoke:Development|print_call_args | geojson=Südstadt | enablefullscreen=yes | resizable=yes }} ergibt Skriptfehler: Die Funktion „print_call_args“ ist nicht vorhanden.

GetFrameAndParentArgs()

Dient Debugging-Zecken. Im Normalfall werden frame und parent-args rückgeliefert, aber diese können in der Lua-Konsole auch nach Schema pargs={} gesetzt werden. Hintergrund: In der Konsole funktioniert frame:getParent().args nicht.

htmlAndWikitextDump()

Diese Funktion hilft HTML- und WikiText für Dump/Log-Ausgaben sichtbar zu machen, der sonst gerendert werden würde. Es werden die bei HTML- und WikiText üblichen eckigen und geschweiften Klammern sowie die Größer/Kleiner-Zeichen in HTML Escape-Zeichen umgewandelt.

Unterseiten


local p = {} --p stands for package

function p.return_args()
	local args = ""
	local first_arg = true
	for key, value in pairs(mw.getCurrentFrame():getParent().args) do
		if not first_arg then
			args = args .. " | "
		end
		args = args .. key .. "=" .. value
		first_arg = false
	end
    return args
end

return p