Modul:Development: Unterschied zwischen den Versionen

Aus FürthWiki

Keine Bearbeitungszusammenfassung
Keine Bearbeitungszusammenfassung
Zeile 1: Zeile 1:
local p = {} --p stands for package
local p = {} --p stands for package


function p.return_args()
function p.print_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
if not first_arg then
args = args .. "|" .. key .. "=" .. value
args = args .. " | "
end
args = args .. key .. "=" .. value
first_arg = false
first_arg = false
end
end
     return "<br><code>{{" .. mw.getCurrentFrame():getParent():getTitle() .. ": " .. args .. "}}</code><br>"
     return "<br>'''Modul:Debug|print_args:''' <code>{{" .. mw.getCurrentFrame():getParent():getTitle() .. ": " .. args .. "}}</code><br>"
end
end


return p
return p

Version vom 16. Juni 2025, 12:56 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.print_args()
	local args = ""
	for key, value in pairs(mw.getCurrentFrame():getParent().args) do
		args = args .. "|" .. key .. "=" .. value
		first_arg = false
	end
    return "<br>'''Modul:Debug|print_args:''' <code>{{" .. mw.getCurrentFrame():getParent():getTitle() .. ": " .. args .. "}}</code><br>"
end

return p