Zum Inhalt springen

Modul:Namespace detect/data: Unterschied zwischen den Versionen

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
(give the argKeys table global scope so that getParamMappings can access it without having to process the cfg table again)
(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)
Zeile 52: Zeile 52:
-- }
-- }
--]]
--]]
local ustringLower = mw.ustring.lower
local tinsert = table.insert
local clone = mw.clone
local subjectNamespaces = mw.site.subjectNamespaces
local mappings = {}
local mappings = {}
mappings[ustringLower(subjectNamespaces[0].name)] = clone(argKeys.main)
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 = ustringLower(ns.name)
local nsname = ns.name
local canonicalName = ustringLower(ns.canonicalName)
local canonicalName = ns.canonicalName
mappings[nsname] = {nsname}
mappings[nsname] = {mw.ustring.lower(nsname)}
if canonicalName ~= nsname then
if canonicalName ~= nsname then
tinsert(mappings[nsname], canonicalName)
table.insert(mappings[nsname], mw.ustring.lower(canonicalName))
end
end
for _, alias in ipairs(ns.aliases) do
for _, alias in ipairs(ns.aliases) do
tinsert(mappings[nsname], ustringLower(alias))
table.insert(mappings[nsname], mw.ustring.lower(alias))
end
end
end
end
Anonymer Benutzer