Module:ColorText: Difference between revisions

From He is Coming Official Wiki
Benjiminio (talk | contribs)
mNo edit summary
Benjiminio (talk | contribs)
mNo edit summary
Line 1: Line 1:
-- Module:ColorText
-- Module:ColorText
-- Returns inline colored spans for keywords, links if page exists
-- Returns inline colored spans for keywords
 
local p = {}
local p = {}


Line 20: Line 19:
}
}


-- Main function
function p.main(frame)
function p.main(frame)
     local keyword = frame.args[1] or ""
     local keyword = frame.args[1] or ""
     local color = colors[keyword:lower()] or "#888888" -- default gray
     local color = colors[keyword:lower()] or "#888888" -- default gray
    return string.format('<span style="color:%s !important;">%s</span>', color, keyword)
end


    local text = keyword
-- Make the module callable without specifying "main"
     local title = mw.title.new(keyword)
return setmetatable(p, {
    if title and title.exists then
     __call = function(_, frame)
         text = string.format('[[%s]]', keyword)
         return p.main(frame)
     end
     end
 
})
    return string.format('<span style="color:%s !important;">%s</span>', color, text)
end
 
return p

Revision as of 12:25, 7 November 2025

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

-- Module:ColorText
-- Returns inline colored spans for keywords
local p = {}

-- Keyword-to-color mapping
local colors = {
    attack = "#e74444",
    armor = "#4179ab",
    health = "#93c13e",
    speed = "#ffd569",
    acid = "#ccf61f",
    freeze = "#62abd4",
    poison = "#bbc44e",
    purity = "#62abd4",
    regeneration = "#9b4c51",
    riptide = "#5880cc",
    stun = "#ffd569",
    thorns = "#8a961f"
}

-- Main function
function p.main(frame)
    local keyword = frame.args[1] or ""
    local color = colors[keyword:lower()] or "#888888" -- default gray
    return string.format('<span style="color:%s !important;">%s</span>', color, keyword)
end

-- Make the module callable without specifying "main"
return setmetatable(p, {
    __call = function(_, frame)
        return p.main(frame)
    end
})