Modul:ListDivider: Unterschied zwischen den Versionen

Aus Steel Beasts Wiki
Keine Bearbeitungszusammenfassung
Keine Bearbeitungszusammenfassung
 
Zeile 1: Zeile 1:
local p = {}
local p = {}


function p.splitIntoColumns(frame)
function p.wrapList(frame)
     local content = frame.args[1] -- Der Inhalt der Aufzählung
     local content = frame.args[1] -- Der Inhalt der Liste
     local threshold = tonumber(frame.args[2]) or 9 -- Schwellenwert für die Anzahl der Elemente, ab dem in Spalten aufgeteilt wird
     local threshold = tonumber(frame.args[2]) or 9 -- Schwellenwert für die Anzahl der Elemente, ab dem der <div>-Container hinzugefügt wird


     local items = mw.text.split(content, "\n") -- Trennen der Aufzählungselemente nach Zeilenumbrüchen
     local items = mw.text.split(content, "\n") -- Trennen der Listenelemente nach Zeilenumbrüchen
     local itemCount = #items
     local itemCount = #items


     if itemCount >= threshold then
     if itemCount >= threshold then
         local columns = 3 -- Anzahl der Spalten (hier: 3 Spalten)
         return '<div style="columns: 3;">' .. content .. '</div>' -- Hinzufügen des <div>-Containers
        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
     else
         return content -- Wenn die Anzahl der Elemente unter dem Schwellenwert liegt, wird der Inhalt unverändert zurückgegeben
         return content -- Wenn die Anzahl der Elemente unter dem Schwellenwert liegt, wird der Inhalt unverändert zurückgegeben

Aktuelle Version vom 23. September 2023, 13:18 Uhr

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

local p = {}

function p.wrapList(frame)
    local content = frame.args[1] -- Der Inhalt der Liste
    local threshold = tonumber(frame.args[2]) or 9 -- Schwellenwert für die Anzahl der Elemente, ab dem der <div>-Container hinzugefügt wird

    local items = mw.text.split(content, "\n") -- Trennen der Listenelemente nach Zeilenumbrüchen
    local itemCount = #items

    if itemCount >= threshold then
        return '<div style="columns: 3;">' .. content .. '</div>' -- Hinzufügen des <div>-Containers
    else
        return content -- Wenn die Anzahl der Elemente unter dem Schwellenwert liegt, wird der Inhalt unverändert zurückgegeben
    end
end

return p