Toggle menu
45
232
3
1.3K
EmrysSMP Wiki
Toggle preferences menu
Toggle personal menu
Not logged in
Your IP address will be publicly visible if you make any edits.

Module:Remove Duplicate Links

From EmrysSMP Wiki
Revision as of 11:06, 10 November 2023 by starcit>Astrid
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

local p = {}

--- Remove duplicate links and return the singular ones
function p.main(frame)
    local input = frame.args[1] or ""

    local links = {}
    input:gsub("%[%[([^%]]*)%]%]", function(link)
        link = "[[" .. link .. "]]" -- :gsub removes the double brackets
        table.insert(links, link)
    end)

    local duplicateTracker = {}
    for _, link in pairs(links) do
        if not duplicateTracker[link] then
            duplicateTracker[link] = 0
        end
        duplicateTracker[link] = duplicateTracker[link] + 1
    end

    local output = ""
    for link, duplicates in pairs(duplicateTracker) do
        if duplicates == 1 then
            output = output .. link
        end
    end

    return output
end

return p