Toggle menu
Toggle preferences menu
Toggle personal menu
Not logged in
Your IP address will be publicly visible if you make any edits.
Revision as of 20:49, 29 August 2026 by Arvid Varg (talk | contribs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

Module functions=

edit
edit

House Dewülf House Dewülf Category:House

Templates using the module

edit

Titles

edit

! colspan="2" class="infobox-subheader" | Not on a character |-



! colspan="2" class="infobox-subheader" | |-

Gnoblin
Using the template
Gnoblin
Simple name only



local p = {}

function p.gallery(frame)
    local text = frame.args[1] or ""
    local entries = {}

    for entry in mw.text.gsplit(text, ";") do
        entry = mw.text.trim(entry)

        if entry ~= "" then
            local separator = string.find(entry, "::", 1, true)

            local file
            local description

            if separator then
                file = mw.text.trim(string.sub(entry, 1, separator - 1))
                description = mw.text.trim(string.sub(entry, separator + 2))
            else
                file = entry
                description = ""
            end

            if file ~= "" then
                local galleryEntry = "File:" .. file

                if description ~= "" then
                    galleryEntry = galleryEntry .. "|" .. description
                end

                table.insert(entries, galleryEntry)
            end
        end
    end

    if #entries == 0 then
        return ""
    end

    return '<div class="character-gallery">' ..
        frame:extensionTag{
            name = "gallery",
            content = table.concat(entries, "\n")
        } ..
        '</div>'
end

function p.processTitle(frame)
    local input = frame.args[1] or ""
    if mw.ustring.match(input, "^%s*%{%{%s*[Tt]itle%s*[|}]") then
        return input
    end
    return frame:expandTemplate{
        title = "Title",
        args = { name = input }
    }
end

function p.stripHouse(frame)
    local name = frame.args[1]
    if not name or name == "" then
        name = mw.title.getCurrentTitle().text
    end

    local prefixes = { "House", "Clan", "Family", "Dynasty" }

    for _, prefix in ipairs(prefixes) do
        local pattern = "^[" .. mw.ustring.sub(prefix,1,1):lower() .. mw.ustring.sub(prefix,1,1):upper() .. "]" ..
                        mw.ustring.sub(prefix,2):lower() .. "%s+"
        name = mw.ustring.gsub(name, pattern, "")
    end

    return name
end

function p.unlink(frame)
    local text = frame.args[1] or ""
    text = mw.ustring.gsub(text, "[%[%]]", "")
    return text
end

return p
Contents