Jump to content

Module:Higher education task force/data

Permanently protected module
From Wikipedia, the free encyclopedia
This is an old revision of this page, as edited by Pharos (talk | contribs) at 20:20, 26 March 2025. The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.
-- This module stores icon data for [[Module:Higher education task force]].
--------------------------------------------------------------------------------
-- Higher education task force data
--------------------------------------------------------------------------------
local function validateTaskForceData(data)
    local requiredFields = {"image", "name", "nested", "category", "link"}
    for code, taskForce in pairs(data) do
        for _, field in ipairs(requiredFields) do
            if not taskForce[field] then
                error(string.format("Missing required field '%s' for task force '%s'", field, code))
            end
        end
    end
end

local data = {
    student = {
        image = "Nuvola apps edu languages.svg",
        name = "Student Affairs task force",
        nested = "Student Affairs",
        category = "Student Affairs task force articles",
        link = "Wikipedia:WikiProject Higher education/Student Affairs",
        aliases = {"student-affairs", "studentaffairs"}
    },
    cuny = {
        image = "City University of New York wordmark.svg",
        name = "WikiProject City University of New York",
        nested = "City University of New York",
        category = "WikiProject CUNY articles",
        link = "Wikipedia:WikiProject City University of New York",
        aliases = {"city-university", "nyc-university"}
    },
    uva = {
        image = "University of Virginia text logo.svg",
        name = "WikiProject University of Virginia",
        nested = "University of Virginia",
        category = "WikiProject University of Virginia articles",
        link = "Wikipedia:WikiProject University of Virginia",
        aliases = {"virginia", "u-va"}
    }
}

-- Validate data before processing
validateTaskForceData(data)

--------------------------------------------------------------------------------
-- End Higher education task force data
--------------------------------------------------------------------------------
-- Make aliases work the same as normal keys, and remove the "aliases" subtables.
local ret = {}
for code, hetfData in pairs(data) do
    hetfData.canonicalCode = code
    if hetfData.aliases then
        for _, alias in ipairs(hetfData.aliases) do
            ret[alias:lower()] = hetfData  -- Case-insensitive alias lookup
        end
        hetfData.aliases = nil
    end
    ret[code] = hetfData
end

-- Optional: Add a function to get all available task force codes
function ret.getAvailableCodes()
    local codes = {}
    for code, _ in pairs(data) do
        table.insert(codes, code)
    end
    return codes
end

return ret