×
Create a new article
Write your page title here:
We currently have 3,602 articles on DC Multiverse Wiki. Type your article name above or create one of the articles listed here!



    DC Multiverse Wiki

    Module:Namespace detect/data: Difference between revisions

    Content added Content deleted
    imported>MusikAnimal
    m (1 revision imported)
    m (1 revision imported)
    Line 1: Line 1:
    -- This Module is used for making templates based in the Lua language.
    --------------------------------------------------------------------------------
    -- See more details about Lua in [[Help:Lua]].
    -- Namespace detect data --
    -- The Fandom Developer's Wiki hosts Global Lua Modules that can be imported and locally overridden.
    -- This module holds data for [[Module:Namespace detect]] to be loaded per --
    -- The next line imports from the [[w:c:dev:Global Lua Modules]].
    -- page, rather than per #invoke, for performance reasons. --
    local nsData = require('Dev:Namespace_detect/data')
    --------------------------------------------------------------------------------
    -- See more details about this module at [[w:c:dev:Global_Lua_Modules/Namespace_detect]]
    -- The imported Module is overwritten locally to include default configuration.
    -- For a more flexible experience, delete the page import
    -- and paste (and modify as you like) its contents into this page
    -- https://dev.fandom.com/wiki/Module:Namespace_detect/data


    -- The last line produces the output for the template
    local cfg = require('Module:Namespace detect/config')
    return nsData

    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()
    --[[
    -- 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 = {}
    local mainNsName = mw.site.subjectNamespaces[0].name
    mainNsName = mw.ustring.lower(mainNsName)
    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.
    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 {
    argKeys = argKeys,
    cfg = cfg,
    mappings = getParamMappings()
    }

    Revision as of 22:50, 26 June 2020


    -- This Module is used for making templates based in the Lua language.
    -- See more details about Lua in [[Help:Lua]].
    -- The Fandom Developer's Wiki hosts Global Lua Modules that can be imported and locally overridden.
    -- The next line imports from the [[w:c:dev:Global Lua Modules]].
    local nsData = require('Dev:Namespace_detect/data')
    -- See more details about this module at [[w:c:dev:Global_Lua_Modules/Namespace_detect]]
     
    -- The imported Module is overwritten locally to include default configuration.
    -- For a more flexible experience, delete the page import 
    -- and paste (and modify as you like) its contents into this page
    -- https://dev.fandom.com/wiki/Module:Namespace_detect/data
    
    -- The last line produces the output for the template
    return nsData
    
    Cookies help us deliver our services. By using our services, you agree to our use of cookies.

    Recent changes

  • IC228 • 4 days ago
  • IC228 • 4 days ago
  • IC228 • 5 days ago
  • IC228 • 5 days ago
  • Welcome to the DC Multiverse Wiki


    Cookies help us deliver our services. By using our services, you agree to our use of cookies.