Importer, Bürokraten, Moderatoren (CommentStreams), Strukturierte-Diskussionen-Bots, Oberflächenadministratoren, Push-Abonnementverwalter, Oversighter, Administratoren, Kampagnenbearbeiter (Hochladeassistent)
855
Bearbeitungen
(add a getArgKeys function, so that we can have multiple keys for each argument (helpful for localisation) and so that we only have to create that table once per page) |
K (1 Version von wikivoyage:Modul:Namespace_detect/data importiert) |
||
| (14 dazwischenliegende Versionen von 6 Benutzern werden nicht angezeigt) | |||
| Zeile 13: | Zeile 13: | ||
end | end | ||
-- 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 defaultKeys = { | |||
'main', | |||
'talk', | |||
'other', | |||
'subjectns', | |||
'demospace', | |||
'demopage' | |||
} | } | ||
local argKeys = {} | |||
for i, defaultKey in ipairs(defaultKeys) do | |||
argKeys[defaultKey] = {defaultKey} | |||
end | |||
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 | ||
end | end | ||
cfg[defaultKey] = nil -- Free the cfg value as we don't need it any more. | |||
end | end | ||
| Zeile 53: | Zeile 57: | ||
-- } | -- } | ||
--]] | --]] | ||
local mappings = {} | local mappings = {} | ||
local mainNsName = mw.site.subjectNamespaces[0].name | |||
mappings[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 = mw.ustring.lower(ns.name) | ||
local canonicalName = | local canonicalName = mw.ustring.lower(ns.canonicalName) | ||
mappings[nsname] = {nsname} | mappings[nsname] = {nsname} | ||
if canonicalName ~= nsname then | if canonicalName ~= nsname then | ||
table.insert(mappings[nsname], 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 | ||
| Zeile 77: | Zeile 79: | ||
return { | return { | ||
argKeys = | argKeys = argKeys, | ||
cfg = cfg, | cfg = cfg, | ||
mappings = getParamMappings() | mappings = getParamMappings() | ||
} | } | ||