Jump to content

Module:ListLinks: Difference between revisions

From Drifters Almanac
mNo edit summary
mNo edit summary
Line 2: Line 2:


function p.fromDelimited(frame)
function p.fromDelimited(frame)
     local raw = frame.args[1] or "" -- ← CHANGED FROM getParent()
     local raw = frame.args[1] or ""
    mw.log("Raw input: " .. raw)
     local delimiter = frame.args.delimiter or "|"
 
     local delimiter = frame.args.delimiter or ","
     local list = mw.text.split(raw, delimiter)
     local list = mw.text.split(raw, delimiter)
     local output = {}
     local output = {}
Line 13: Line 11:
         item = mw.text.trim(item)
         item = mw.text.trim(item)
         if item ~= "" then
         if item ~= "" then
             table.insert(output, string.format("<li>Item: %s</li>", item))
            local parts = mw.text.split(item, "%|") -- split again for Page|Label inside each item
            local target = mw.text.trim(parts[1])
            local label = parts[2] and mw.text.trim(parts[2]) or target
             table.insert(output, string.format('<li>[[%s|%s]]</li>', target, label))
         end
         end
     end
     end

Revision as of 04:46, 23 April 2025

Documentation for this module may be created at Module:ListLinks/doc

local p = {}

function p.fromDelimited(frame)
    local raw = frame.args[1] or ""
    local delimiter = frame.args.delimiter or "|"
    local list = mw.text.split(raw, delimiter)
    local output = {}

    table.insert(output, '<ul style="margin-left: 1em;">')
    for _, item in ipairs(list) do
        item = mw.text.trim(item)
        if item ~= "" then
            local parts = mw.text.split(item, "%|") -- split again for Page|Label inside each item
            local target = mw.text.trim(parts[1])
            local label = parts[2] and mw.text.trim(parts[2]) or target
            table.insert(output, string.format('<li>[[%s|%s]]</li>', target, label))
        end
    end
    table.insert(output, '</ul>')

    return table.concat(output, "\n")
end

return p