Module:ItemEffect: Difference between revisions

From He is Coming Official Wiki
Benjiminio (talk | contribs)
mNo edit summary
Benjiminio (talk | contribs)
mNo edit summary
 
(2 intermediate revisions by the same user not shown)
Line 1: Line 1:
-- Module:ItemEffect
local p = {}
local p = {}


-- Require the ColorText module
-- Require the ColorText module using full path
local colorModule = require("Module:ColorText")
local color = require("Module:He_is_Coming/ColorText")


-- Main function: fetch effect content and color keywords
-- Fetch the 'effect' parameter from the item's infobox template
function p.main(frame)
function p.main(frame)
     local itemName = frame.args[1] or ""
     local itemName = frame.args[1] or ""
     if itemName == "" then return "" end
     if itemName == "" then
 
        return "Error: no item specified"
    -- Normalize item name: replace spaces with underscores
     end
    local normalizedName = itemName:gsub(" ", "_")
 
     -- Construct the full page path
    local pageName = "He_is_Coming/" .. normalizedName .. "/effect"
    local effectTitle = mw.title.new(pageName)


     -- Check if the page exists
     -- Attempt to get the content of the item's template
     if not effectTitle or not effectTitle.exists then
    local templateName = "Template:" .. itemName
         return "Effect page not found: " .. pageName
    local templateFrame = mw.getContentFrame(templateName)
     if not templateFrame then
         return "Error: item page or template not found"
     end
     end


     -- Get page content
     -- Get the 'effect' parameter
     local effectContent = effectTitle:getContent() or ""
     local effectText = templateFrame:getParameter("effect") or ""
     if effectContent == "" then
     if effectText == "" then
         return "(No effect text)"
         return "Effect not found on item page"
     end
     end


     -- Color each keyword using ColorText
     -- Pass effect text to ColorText module for keyword highlighting
     -- Only color words that exist in ColorText's table
     -- ColorText expects a table with args[1] containing the text
    effectContent = effectContent:gsub("%w+", function(word)
    return color.main({ args = { effectText } })
        local lower = word:lower()
        if colorModule.colors and colorModule.colors[lower] then
            return colorModule.main({ args = { word } })
        else
            return word
        end
    end)
 
    return effectContent
end
end


return p
return p

Latest revision as of 11:41, 14 November 2025

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

local p = {}

-- Require the ColorText module using full path
local color = require("Module:He_is_Coming/ColorText")

-- Fetch the 'effect' parameter from the item's infobox template
function p.main(frame)
    local itemName = frame.args[1] or ""
    if itemName == "" then
        return "Error: no item specified"
    end

    -- Attempt to get the content of the item's template
    local templateName = "Template:" .. itemName
    local templateFrame = mw.getContentFrame(templateName)
    if not templateFrame then
        return "Error: item page or template not found"
    end

    -- Get the 'effect' parameter
    local effectText = templateFrame:getParameter("effect") or ""
    if effectText == "" then
        return "Effect not found on item page"
    end

    -- Pass effect text to ColorText module for keyword highlighting
    -- ColorText expects a table with args[1] containing the text
    return color.main({ args = { effectText } })
end

return p