Die Seite wurde neu angelegt: „local M = {} local function build_property_row(name, value) local row = mw.html.create("div") row:addClass("properties__row") local dt = mw.html.create("dt") dt:addClass("properties__name") dt:wikitext(name) row:node(dt) local dd = mw.html.create("dd") dd:addClass("properties__value") dd:wikitext(value) row:node(dd) return row end local function parse_property_definition(def) local segments = mw.text.split(def, "::") return { name =…“
 
Keine Bearbeitungszusammenfassung
 
(3 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 2: Zeile 2:


local function build_property_row(name, value)
local function build_property_row(name, value)
local row = mw.html.create("div")
local row = mw.html.create()
row:addClass("properties__row")
 
local dt = mw.html.create("dt")
local dt = mw.html.create("dt")
dt:addClass("properties__name")
dt:addClass("properties__name")
Zeile 21: Zeile 20:
local segments = mw.text.split(def, "::")
local segments = mw.text.split(def, "::")
return {
return {
name = segments[0] or "",
name = segments[1] or "",
value = segments[1] or ""
value = segments[2] or ""
}
}
end
end
Zeile 30: Zeile 29:
dl:addClass("properties")
dl:addClass("properties")
for arg in args do
for _, arg in ipairs(args) do
local def = parse_property_definition(arg)
local def = parse_property_definition(arg)
dl:node(build_property_row(def.name, def.value))
dl:node(build_property_row(def.name, def.value))
Zeile 43: Zeile 42:
return tostring(build(args))
return tostring(build(args))
end
end
return M

Aktuelle Version vom 13. Januar 2025, 11:25 Uhr

Die Dokumentation für dieses Modul kann unter Modul:Properties/Doku erstellt werden

local M = {}

local function build_property_row(name, value)
	local row = mw.html.create()

	local dt = mw.html.create("dt")
	dt:addClass("properties__name")
	dt:wikitext(name)
	row:node(dt)
	
	local dd = mw.html.create("dd")
	dd:addClass("properties__value")
	dd:wikitext(value)
	row:node(dd)
	
	return row
end

local function parse_property_definition(def)
	local segments = mw.text.split(def, "::")
	return {
		name = segments[1] or "",
		value = segments[2] or ""
	}
end

local function build(args)
	local dl = mw.html.create("dl")
	dl:addClass("properties")
	
	for _, arg in ipairs(args) do
		local def = parse_property_definition(arg)
		dl:node(build_property_row(def.name, def.value))
	end
	
	return dl
end

function M.render(frame)
	local parentFrame = frame:getParent() or {}
	local args = parentFrame.args or {}
	return tostring(build(args))
end

return M