end
local function getArgKeys() -- Returns Get a table of parameters to query for each default parameter name. -- This allows wikis to customise parameter names in the cfg table while -- ensuring that default parameter names will always work. The cfg table -- values can be added as a string, or as an array of strings. local argKeys = { main = {'main'}, talk = {'talk'}, other = {'other'}, subjectns = {'subjectns'}, demospace = {'demospace'}, page = {'page'} } for defaultKey, t in pairs(argKeys) do local cfgValue = cfg[defaultKey] local cfgValueType = type(cfgValue) if cfgValueType == 'string' then addKey(t, cfgValue, defaultKey) elseif cfgValueType == 'table' then for i, key in ipairs(cfgValue) do addKey(t, key, defaultKey) end
end
cfg[defaultKey] = nil -- Free the cfg value as we don't need it any more.
end
return argKeyscfg[defaultKey] = nil -- Free the cfg value as we don't need it any more.
end
local ustringLower = mw.ustring.lower
local tinsert = table.insert
local clone = mw.clone
local subjectNamespaces = mw.site.subjectNamespaces
local talk = cfg.talk
local mappings = {}
mappings[ustringLower(subjectNamespaces[0].name)] = {cfgclone(argKeys.main}) mappings['talk'] = {clone(argKeys.talk})
for nsid, ns in pairs(subjectNamespaces) do
if nsid ~= 0 then -- Exclude main namespace.
return {
argKeys = getArgKeys()argKeys,
cfg = cfg,
mappings = getParamMappings()
}