Modul:Spielwiese
Hier können kurzzeitige Code-Tests oder sonstige Spielereien durchgeführt werden.
Zu weitergehenden und dauerhaften Tests siehe Hilfe:Lua #Erprobung.
local p = {}
function p.svg(frame)
local width = frame.args[1] or 100
local height = frame.args[2] or width
return '<svg height="' .. height .. '" width="' .. width .. '"><circle cx="' .. width / 2 .. '" cy="' .. height / 2 .. '" r="' .. (math.min(height, width) / 2 - 10) .. '" stroke="black" stroke-width="3" fill="red" /></svg>'
end
function p.ref(frame)
return "Hallo Welt" .. frame:extensionTag("ref", "{{Internetquelle|url=http://www.example.com/|titel=example|sprache=en|zugriff=2014-11-03}}")
end
function p.debug(frame)
local func = frame.args[1]
if func then
local newargs = {}
for key, val in pairs(frame.args) do
if type(key) == "number" then
if key > 1 then newargs[key - 1] = val end
else
newargs[key] = val
end
end
frame.args = newargs
local status, result = pcall(p[func], frame)
if status then return result else return '<span class="error">' .. result .. '</span>' end
else
return '<span class="error">invalid parameters</span>'
end
end
function p.dumpContext()
return mw.dumpObject(_G)
end
function p.byte(frame)
local position = tonumber(frame.args[2]) -- das zweite Argument gibt die Postion des gefragten Bytes im String an
if (not position) or position <1 then position =1 end -- Ist die Postition nicht oder ungültig angegeben wird 1 als Postition zurückgegeben
return mw.ustring.byte(frame.args[1], position ) -- Liefert den Bytecode des Strings an der Stelle 'possition'
end
function p.sort(frame)
local result = ''
mytable = {}
for name,value in pairs(frame.args) do table.insert(mytable, value) end
table.sort(mytable)
for name,value in pairs(mytable) do
result = result .. value .. '\n\n'
end
return result
end
return p