有兽档案馆
搜索
切换搜索
切换菜单
切换个人菜单
查看“Module:Namespace”的源代码
来自有兽档案馆
阅读
查看源代码
查看历史
模块
讨论
更多操作
←
Module:Namespace
因为以下原因,您没有权限编辑该页面:
您所请求的操作,仅限具有
注册用户
、
自动确认用户
、
管理员
、
界面管理员
、
优质编辑者
、
确认用户
、
巡查员
、
档案理事员
等
权限
的
用户
执行。
若您尚未登录有兽档案馆账号,请您
登录
有兽档案馆账号后操作。
您尚未完成电子邮件确认,因此操作受限,请尽快
完成电子邮件确认
。
若您无法完成前述手续,请通过适当渠道请求管理员或档案理事员协助。
您可以查看和复制此页面的源代码。
若您无权编辑本页面,您可以
提出编辑请求
,提请有权限者代为编辑。
local p = {} local data = mw.loadData('Module:Namespace/data') local mLan = require('Module:Lan2') local function Error (msg) return mError.error{'[[Module:Namespace]]錯誤:' + msg} end local function ifempty (ret, val) return ret ~= '' and ret or val end function p._lan (args, lang) return mLan.main(args, ifempty(lang and lang:lower(), mw.getCurrentFrame():callParserFunction{ name = 'int', args = {'Lang'} }), { ['def'] = {'en'} }) end function p.isNamespace (id) id = tostring(id) return mw.site.namespaces[tonumber(id) or id:lower()] and mw.site.namespaces[tonumber(id) or id:lower()].id -- or p._ispseudoNS(id) or nil end function p.namespace (frame) local args if frame == mw.getCurrentFrame() then -- We're being called via #invoke. The args are passed through to the module -- from the template page, so use the args that were passed into the template. if not getArgs then getArgs = require('Module:Arguments').getArgs end args = getArgs(frame, {parentFirst=true}) else -- We're being called from another module or from the debug console, so assume -- the args are passed in directly. args = frame if type(args) ~= type({}) then args = {frame} end end id = tostring(args.namespace or args[1]) return (--[[p._ispseudo() or]] mw.title.getCurrentTitle().namespace) == p.isNamespace(id) and (args['then'] or args[2]) or (args['else'] or args[3]) end local MsgCallFunc = { ['NamespacesDisplay'] = (function (nsid) return data.Namespace[tostring(nsid)] end), ['NamespacesConversionDisplay'] = (function (nsid) return data.Namespace[tostring(nsid) .. '-display'] or data.Namespace[tostring(nsid)] end), } for key, func in pairs(MsgCallFunc) do p['_' .. key] = function (lang, ns) if type(lang) == 'table' then ns = lang[2] lang = lang[1] end -- local PNS local lang = lang local nsid if ns then if ns == '' then nsid = -3 else local nsid_info = mw.site.namespaces[tonumber(ns)] or mw.site.namespaces[ns] if not nsid_info then -- PNS = p._ispseudo(ns) -- if PNS then -- if ns:match('^[Tt][Aa][Ll][Kk]:') then -- nsid = 'Talk:' .. PNS -- else -- nsid = PNS -- end -- else nsid = -3 -- end else nsid = nsid_info.id end end else -- PNS = p._ispseudo() -- if PNS then -- nsid = (mw.title.getCurrentTitle().namespace == 1 and 'Talk:' or '') .. PNS -- else nsid = mw.title.getCurrentTitle().namespace -- end end --if type(nsid) == 'string' then -- return p._lan(data['PseudoNamespace'][nsid], lang) --[[ else]]if nsid < -2 then error('Input namespace error.') end return p._lan(MsgCallFunc[key](nsid), lang) end p[key] = function (frame) local args = require('Module:Arguments').getArgs(frame, { valueFunc = function (key, value) if key == 2 then return type(value) == 'string' and mw.text.trim(value) or value elseif value then value = mw.text.trim(value) if value ~= '' then return value end end return nil end }) local statue, wt = pcall(p['_' .. key], args) if statue then return wt end return tostring(mw.html.create('span'):attr('style', 'color:red;'):wikitext( p._lan ({ ['zh'] = 'Input namespace error', ['zh-hans'] = '输入名字空间错误', ['zh-hant'] = '輸入命名空間錯誤' }, lang) ):done()) end end local function inArray (str, arr) for i, v in ipairs(arr) do if str == v then return v end end return nil end --function p._ispseudo (title) -- local success, titleObj = pcall(mw.title.new, title) -- if not success or not titleObj then -- if title == '' then -- return nil -- elseif not title then -- titleObj = mw.title.getCurrentTitle() -- elseif type(title) == 'table' and tostring(title) ~= 'table' then -- for arg title is mw.title obj -- local titleText = title.fullText -- if not titleText then -- return nil -- end -- success, titleObj = pcall(mw.title.new, title) -- if not success or not titleObj or titleObj ~= title then -- return nil -- end -- else -- return nil -- end -- end -- title = titleObj.fullText:gsub('^Talk:', '') -- local split = mw.text.split(title, ':') -- if inArray(split[1], data['PseudoNamespace']['list']) then -- return split[1] -- end -- return nil --end -- function p.ispseudo (frame) -- local arg = require('Module:Arguments').getArgs(frame)['1'] -- return p._ispseudo(arg) or '' --end --function p._ispseudoNS (ns) -- if not ns or ns == '' then -- return nil -- end -- local success, titleObj = pcall(mw.title.new, ns .. ':$1') -- if not success or not titleObj then -- return nil -- end -- ns = titleObj.fullText:gsub('^Talk:', ''):gsub(':%$1$', '') -- if inArray(ns, data['PseudoNamespace']['list']) then -- return ns -- end -- return nil --end -- p._PNSArray = data['PseudoNamespace']['list'] return p
该页面使用的模板:
Module:Arguments
(
查看源代码
)
Module:Documentation
(
查看源代码
)
Module:Fullurl
(
查看源代码
)
Module:Lan2
(
查看源代码
)
Module:Namespace
(
查看源代码
)
Module:Namespace/data
(
查看源代码
)
Module:Namespace/doc
(
查看源代码
)
Module:No globals
(
查看源代码
)
Module:Page name
(
查看源代码
)
Module:Yesno
(
查看源代码
)
返回
Module:Namespace
。