Keine Bearbeitungszusammenfassung |
Keine Bearbeitungszusammenfassung |
||
| Zeile 17: | Zeile 17: | ||
output = output .. '<div style="width:' .. columnWidth .. '%;">' -- Öffnen einer neuen Spalte | output = output .. '<div style="width:' .. columnWidth .. '%;">' -- Öffnen einer neuen Spalte | ||
end | end | ||
-- Entfernen des Sternchens (*) und Leerzeichen | -- Entfernen des Sternchens (*) und eventueller Leerzeichen am Anfang | ||
local itemText = string.gsub(item, "^%s*%*", "") | local itemText = string.gsub(item, "^%s*%*", "") | ||
output = output .. itemText .. '<br/>' | output = output .. '* ' .. itemText .. '<br/>' -- Fügen Sie das Sternchen wieder hinzu | ||
if i % (itemCount / columns) == 0 or i == itemCount then | if i % (itemCount / columns) == 0 or i == itemCount then | ||
output = output .. '</div>' -- Schließen der aktuellen Spalte | output = output .. '</div>' -- Schließen der aktuellen Spalte | ||
Version vom 23. September 2023, 13:16 Uhr
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 = 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 % (itemCount / columns) == 1 then
output = output .. '<div style="width:' .. columnWidth .. '%;">' -- Öffnen einer neuen Spalte
end
-- Entfernen des Sternchens (*) und eventueller Leerzeichen am Anfang
local itemText = string.gsub(item, "^%s*%*", "")
output = output .. '* ' .. itemText .. '<br/>' -- Fügen Sie das Sternchen wieder hinzu
if i % (itemCount / 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