Modul:Namespace detect: Unterschied zwischen den Versionen

add support for canonical namespace names
(new function for creating a table of possible input parameters, a couple of portability fixes)
(add support for canonical namespace names)
Zeile 112: Zeile 112:
     for nsid, ns in pairs( mw.site.namespaces ) do
     for nsid, ns in pairs( mw.site.namespaces ) do
         local nsname = mw.ustring.lower( ns.name )
         local nsname = mw.ustring.lower( ns.name )
        local canonicalName = mw.ustring.lower( ns.canonicalName )
         -- Check the namespace, and ignore main namespace values.
         -- Check the namespace, and ignore main namespace values.
         if nsid ~= 0 and nsname == namespace then
         if nsid ~= 0 and nsname == namespace then
            -- Check local namespace name.
             if args[nsname] then
             if args[nsname] then
                 return args[nsname]
                 return args[nsname]
            elseif args[canonicalName] then
                return args[canonicalName]
             else
             else
                 -- Check alias names.
                 -- Check alias names.
Zeile 179: Zeile 183:
             local name = '<code>' .. mw.ustring.lower( ns.name ) .. '</code>'
             local name = '<code>' .. mw.ustring.lower( ns.name ) .. '</code>'
             local aliases = {}
             local aliases = {}
            if ns.canonicalName ~= ns.name then
                table.insert( aliases, '<code>' .. mw.ustring.lower( ns.canonicalName ) .. '</code>' )
            end
             for _, v in ipairs( ns.aliases ) do
             for _, v in ipairs( ns.aliases ) do
                 table.insert( aliases, '<code>' .. mw.ustring.lower(v) .. '</code>' )
                 table.insert( aliases, '<code>' .. mw.ustring.lower(v) .. '</code>' )