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:43, 29 August 2026 by Arvid Varg (talk | contribs)

Module functions=

House Dewülf House Dewülf Category:House

Templates using the module

Titles

! 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.text 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 = entry
            local description = ""

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

            if file ~= "" then
                local item = '<div class="gallery-item">'
                item = item .. '[[File:' .. file .. '|frameless|class=gallery-image]]'

                if description ~= "" then
                    item = item .. '<div class="gallery-caption">' .. description .. '</div>'
                end

                item = item .. '</div>'

                table.insert(entries, item)
            end
        end
    end

    if #entries == 0 then
        return ""
    end

    local output = '<div class="character-gallery">'
        .. table.concat(entries, "\n")
        .. '</div>'

    return frame:preprocess(output)
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