Toggle menu
Toggle personal menu
Not logged in
Your IP address will be publicly visible if you make any edits.

Module:Gnoblin: Difference between revisions

From Deepest Lore
No edit summary
No edit summary
 
(8 intermediate revisions by the same user not shown)
Line 3: Line 3:
function p.processTitle(frame)
function p.processTitle(frame)
     local input = frame.args[1] or ""
     local input = frame.args[1] or ""
    -- Check if input already looks like a {{Title}} template
     if mw.ustring.match(input, "^%s*%{%{%s*[Tt]itle%s*[|}]") then
     if mw.ustring.match(input, "^%s*%{%{%s*[Tt]itle%s*[|}]") then
         return input
         return input
     end
     end
  -- Otherwise, expand the template properly
     return frame:expandTemplate{
     return frame:expandTemplate{
         title = "Title",
         title = "Title",
Line 17: Line 13:


function p.stripHouse(frame)
function p.stripHouse(frame)
     local name = mw.title.getCurrentTitle().text
     local name = frame.args[1]
    if not name or name == "" then
        name = mw.title.getCurrentTitle().text
    end
 
     local prefixes = { "House", "Clan", "Family", "Dynasty" }
     local prefixes = { "House", "Clan", "Family", "Dynasty" }


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


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


return p
return p

Latest revision as of 21:52, 30 March 2026

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.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