Module:Higher education task force/data
Appearance
-- 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