Module:Namespace detect/data: Difference between revisions
avoid using local variables to save table lookups per Jackmcbarn's suggestion, and because this will be cached with mw.loadData so performance of this function is not such a worry
m>Mr. Stradivarius (give the argKeys table global scope so that getParamMappings can access it without having to process the cfg table again) |
m>Mr. Stradivarius (avoid using local variables to save table lookups per Jackmcbarn's suggestion, and because this will be cached with mw.loadData so performance of this function is not such a worry) |
||
Line 52: | Line 52: | ||
-- } | -- } | ||
--]] | --]] | ||
local mappings = {} | local mappings = {} | ||
local mainNsName = mw.site.subjectNamespaces[0].name | |||
mappings['talk'] = clone(argKeys.talk) | mainNsName = mw.ustring.lower(mainNsName) | ||
for nsid, ns in pairs(subjectNamespaces) do | mappings[mainNsName] = mw.clone(argKeys.main) | ||
mappings['talk'] = mw.clone(argKeys.talk) | |||
for nsid, ns in pairs(mw.site.subjectNamespaces) do | |||
if nsid ~= 0 then -- Exclude main namespace. | if nsid ~= 0 then -- Exclude main namespace. | ||
local nsname = | local nsname = ns.name | ||
local canonicalName = | local canonicalName = ns.canonicalName | ||
mappings[nsname] = {nsname} | mappings[nsname] = {mw.ustring.lower(nsname)} | ||
if canonicalName ~= nsname then | if canonicalName ~= nsname then | ||
table.insert(mappings[nsname], mw.ustring.lower(canonicalName)) | |||
end | end | ||
for _, alias in ipairs(ns.aliases) do | for _, alias in ipairs(ns.aliases) do | ||
table.insert(mappings[nsname], mw.ustring.lower(alias)) | |||
end | end | ||
end | end |