Latest revision |
Your text |
Line 6: |
Line 6: |
|
| |
|
| local cfg = require('Module:Namespace detect/config') | | local cfg = require('Module:Namespace detect/config') |
|
| |
| local function addKey(t, key, defaultKey)
| |
| if key ~= defaultKey then
| |
| t[#t + 1] = key
| |
| 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
| |
| cfg[defaultKey] = nil -- Free the cfg value as we don't need it any more.
| |
| end
| |
|
| |
|
| local function getParamMappings() | | local function getParamMappings() |
Line 58: |
Line 20: |
| --]] | | --]] |
| local mappings = {} | | local mappings = {} |
| local mainNsName = mw.site.subjectNamespaces[0].name | | mappings[mw.ustring.lower(mw.site.subjectNamespaces[0].name)] = {cfg.main} |
| mainNsName = mw.ustring.lower(mainNsName)
| | mappings[cfg.talk] = {cfg.talk} |
| mappings[mainNsName] = mw.clone(argKeys.main)
| |
| mappings['talk'] = mw.clone(argKeys.talk) | |
| for nsid, ns in pairs(mw.site.subjectNamespaces) do | | for nsid, ns in pairs(mw.site.subjectNamespaces) do |
| if nsid ~= 0 then -- Exclude main namespace. | | if nsid ~= 0 then -- Exclude main namespace. |
Line 78: |
Line 38: |
| end | | end |
|
| |
|
| return { | | return {cfg = cfg, mappings = getParamMappings()} |
| argKeys = argKeys,
| |
| cfg = cfg,
| |
| mappings = getParamMappings()
| |
| } | |