Modul:Properties

Version vom 13. Januar 2025, 11:11 Uhr von Niko Roether (Diskussion | Beiträge) (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 =…“)
(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)

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("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 = segments[0] or "",
		value = segments[1] or ""
	}
end

local function build(args)
	local dl = mw.html.create("dl")
	dl:addClass("properties")
	
	for arg in 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