Module:Namespace detect/data
From Zoophilia Wiki
Jump to navigationJump to search
This module is subject to page protection. It is a highly visible module in use by a very large number of pages, or is substituted very frequently. Because vandalism or mistakes would affect many pages, and even trivial editing might cause substantial load on the servers, it is protected from editing. |
This module is used in system messages. Changes to it can cause immediate changes to the Wikipedia user interface. To avoid large-scale disruption, any changes should first be tested in this module's /sandbox or /testcases subpage, or in your own user space. The tested changes can then be added in one single edit to this module. Please discuss any changes on the talk page before implementing them. |
Lua error in Module:Category_handler/shared at line 35: attempt to index local 'mappings' (a nil value).
This Lua module is used on approximately 13,500,000 pages, or roughly 200833% of all pages. To avoid major disruption and server load, any changes should be tested in the module's /sandbox or /testcases subpages, or in your own module sandbox. The tested changes can be added to this page in a single edit. Consider discussing changes on the talk page before implementing them. |
This is a data page for Module:Namespace detect. It is loaded by the main module using mw.loadData, which means it is only processed once per page rather than once per #invoke.
----------------------------------------------------------------------------------------------------
-- Configuration data --
-- Language-specific parameter names can be set here. --
----------------------------------------------------------------------------------------------------
local cfg = {}
-- This parameter displays content for the main namespace:
cfg.main = 'main'
-- This parameter displays in talk namespaces:
cfg.talk = 'talk'
-- This parameter displays content for "other" namespaces (namespaces for which
-- parameters have not been specified, or for when cfg.demospace is set to cfg.other):
cfg.other = 'other'
-- This parameter makes talk pages behave as though they are the corresponding subject namespace.
-- Note that this parameter is used with [[Module:Yesno]]. Edit that module to change
-- the default values of "yes", "no", etc.
cfg.subjectns = 'subjectns'
-- This parameter sets a demonstration namespace:
cfg.demospace = 'demospace'
-- This parameter sets a specific page to compare:
cfg.page = 'page'
-- The header for the namespace column in the wikitable containing the list of possible subject-space parameters.
cfg.wikitableNamespaceHeader = 'Namespace'
-- The header for the wikitable containing the list of possible subject-space parameters.
cfg.wikitableAliasesHeader = 'Aliases'
----------------------------------------------------------------------------------------------------
-- End configuration data --
----------------------------------------------------------------------------------------------------
local function getParamMappings()
--[[ Returns a table of how parameter names map to namespace names. The keys are the actual namespace
names, in lower case, and the values are the possible parameter names for that namespace, also in
lower case. The table entries are structured like this:
{
[''] = {'main'},
['wikipedia'] = {'wikipedia', 'project', 'wp'},
...
}
]]
local mappings = {}
mappings[mw.ustring.lower(mw.site.namespaces[0].name)] = {cfg.main}
mappings[cfg.talk] = {cfg.talk}
for nsid, ns in pairs(mw.site.subjectNamespaces) do
if nsid ~= 0 then -- Exclude main namespace.
local nsname = mw.ustring.lower(ns.name)
local canonicalName = mw.ustring.lower(ns.canonicalName)
mappings[nsname] = {nsname}
if canonicalName ~= nsname then
table.insert(mappings[nsname], canonicalName)
end
for _, alias in ipairs(ns.aliases) do
table.insert(mappings[nsname], mw.ustring.lower(alias))
end
end
end
return mappings
end
return cfg, getParamMappings()