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

Module:CatType

From Teriock
Revision as of 13:21, 12 January 2025 by Gpe (talk | contribs)

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

local p = {}

function p.generateCategories(frame)
    local baseCategory = frame.args[1] or ""

    if baseCategory == "" then
        return "Error: No base category provided."
    end

    -- Determine the type based on the base category name
    local type = baseCategory:match("spells") or baseCategory:match("skills")
    if not type then
        return "Error: Unable to determine type ('spells' or 'skills') from category name."
    end

    -- Determine the parent category by replacing the detected type with "abilities"
    local parentCategory = baseCategory:gsub(type, "abilities")

    -- Attempt to retrieve the content of the parent category
    local parentPage = mw.title.new(parentCategory)
    if not parentPage then
        return "Error: Unable to access the parent category page object: " .. parentCategory
    end

    local parentContent = parentPage:getContent()
    if not parentContent then
        return "Error: Unable to retrieve the content of the parent category: " .. parentCategory
    end

    -- Replace every instance of "abilities]]" with the detected type (e.g., "spells]]" or "skills]]")
    local updatedContent = parentContent:gsub("abilities%]%]", type .. "]]")

    -- Return the updated content
    return updatedContent
end

return p