Modul:Namespace detect/data: Unterschied zwischen den Versionen
Modul:Namespace detect/data (Quelltext anzeigen)
Version vom 24. März 2014, 12:37 Uhr
, vor 11 JahrenUndid revision 601018314 by Mr. Stradivarius (talk) looks like that broke something
(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) |
(Undid revision 601018314 by Mr. Stradivarius (talk) looks like that broke something) |
||
| 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) | |||
mappings['talk'] = clone(argKeys.talk) | |||
for nsid, ns in pairs(subjectNamespaces) do | |||
mappings['talk'] = | |||
for nsid, ns in pairs( | |||
if nsid ~= 0 then -- Exclude main namespace. | if nsid ~= 0 then -- Exclude main namespace. | ||
local nsname = ns.name | local nsname = ustringLower(ns.name) | ||
local canonicalName = ns.canonicalName | local canonicalName = ustringLower(ns.canonicalName) | ||
mappings[nsname] = { | mappings[nsname] = {nsname} | ||
if canonicalName ~= nsname then | if canonicalName ~= nsname then | ||
tinsert(mappings[nsname], canonicalName) | |||
end | end | ||
for _, alias in ipairs(ns.aliases) do | for _, alias in ipairs(ns.aliases) do | ||
tinsert(mappings[nsname], ustringLower(alias)) | |||
end | end | ||
end | end | ||