Die Dokumentation für dieses Modul kann unter Modul:ListDivider/Doku erstellt werden
local p = {}
function p.splitIntoColumns(frame)
local content = frame.args[1] -- Der Inhalt der Aufzählung
local threshold = tonumber(frame.args[2]) or 9 -- Schwellenwert für die Anzahl der Elemente, ab dem in Spalten aufgeteilt wird
local items = mw.text.split(content, "\n") -- Trennen der Aufzählungselemente nach Zeilenumbrüchen
local itemCount = #items
if itemCount >= threshold then
local columns = math.ceil(itemCount / 3) -- Anzahl der Spalten (hier: 3 Spalten)
local columnWidth = 100 / columns -- Breite jeder Spalte in Prozent
local output = '<div style="columns:' .. columns .. ';">'
for i, item in ipairs(items) do
if i % columns == 1 then
output = output .. '<div style="width:' .. columnWidth .. '%;">' -- Öffnen einer neuen Spalte
end
output = output .. '* ' .. item .. '<br/>'
if i % columns == 0 or i == itemCount then
output = output .. '</div>' -- Schließen der aktuellen Spalte
end
end
output = output .. '</div>'
return output
else
return content -- Wenn die Anzahl der Elemente unter dem Schwellenwert liegt, wird der Inhalt unverändert zurückgegeben
end
end
return p