查看“模块:Namespace pagename”的源代码
←
模块:Namespace pagename
跳到导航
跳到搜索
因为以下原因,您没有权限编辑本页:
您请求的操作仅限属于该用户组的用户执行:
用户
您可以查看和复制此页面的源代码。
local p = {} local yesno = require('Module:Yesno') local mError = require('Module:Error') local mNS = require('Module:Namespace') local data = mw.loadData('Module:Namespace_pagename/data') local lan = mNS._lan local function getNSbyID (key, lang) return mNS._NamespacesDisplay({lang, key}) end local function msg (group, key, lang) return lan(data[tostring(group)][tostring(key)] or {}, lang) end local function Error (msg, arg) return mError.error{'[[Module:Namespace_pagename]]錯誤:' + msg:gsub('$1', arg)} end local function inArray (str, arr) for i, v in ipairs(arr) do if str == v then return v end end return nil end local no_need_suffix = {-2, 0, 14, 100, 118, 119, 2300, 2600} local can_add_extend_suffix = {2, 10, 828} local function def_suffix (ns, lang) if ns == -1 then return lan({ ['en'] = ' page', ['zh-hans'] = '页面', ['zh-hant'] = '頁面' }, lang) elseif ns == 2 then return lan({ ['en'] = ' page', ['zh-hans'] = '页', ['zh-hant'] = '頁', ['zh-tw'] = '頁面' -- 使用者頁面 }, lang) elseif inArray(ns, {-2, 0, 6, 10, 14, 100, 102, 118, 828, 2300}) then return '' else return lan({ ['en'] = ' page', ['zh-hans'] = '页', ['zh-hant'] = '頁' }, lang) end end p._ispseudo = mNS._ispseudo p.ispseudo = mNS.ispseudo function p._main (args) local lang = args[1] local title local nsid local isCallFromNs = false local arg = args[2] if arg then if arg == '' then return getNSbyID(0, lang) elseif arg:match('([Pp]age):') then -- 兼容:早期版本 arg = arg:gsub('[Pp]age:', '') title = mw.title.new(arg) if not title then return Error(msg('Error', 'pg-error', lang), arg) end nsid = title.namespace elseif arg:match('([Nn]ame):') then -- 兼容:早期版本 title = nil arg = arg:gsub('([Nn]ame):', '') nsid_info = mw.site.namespaces[tonumber(arg)] or mw.site.namespaces[arg] if mw.text.split(arg, ':')[2] and not nsid_info and not p._ispseudo(arg) then return Error(msg('Error', 'ns-error', lang), arg) end nsid = nsid_info and nsid_info.id isCallFromNs = true else local arg_title = mw.title.new(arg) local arg_ns = mw.site.namespaces[tonumber(arg)] or mw.site.namespaces[arg] if not arg_title then -- args2 無法被mediawiki正確解析 return Error(msg('Error', 'pg-error', lang), arg) elseif arg_ns then -- args2 是{{ns:}}能解析的 title = nil nsid = arg_ns.id isCallFromNs = true else -- 其他正常標題,無效的命名空間也被當條目處理 title = arg_title nsid = arg_title.namespace end end else -- 以標題讀取 arg = mw.title.getCurrentTitle().fullText title = mw.title.getCurrentTitle() nsid = title.namespace end if p._ispseudo(arg) then --偽命名空間 return getNSbyID((nsid == 1 and 'Talk:' .. p._ispseudo(arg) or p._ispseudo(arg)), lang) end if title and title.isExternal then return msg('Type', 'External', lang) end local statue, wt = pcall(getNSbyID, nsid, lang) if not statue then return Error(msg('Error', 'ns-error', lang), 'namespace number = ' .. nsid) end if not isCallFromNs then if title then local content = title:getContent() or '' local contentModel = title.contentModel local titletext = title.fullText local subtext = title.subpageText if contentModel == 'css' or contentModel == 'sanitized-css' then return wt .. msg('Type', 'style', lang) elseif contentModel == 'javascript' then return wt .. msg('Type', 'script', lang) elseif contentModel == 'json' then return wt .. msg('Type', 'JSON', lang) elseif contentModel == 'json' then return wt .. msg('Type', 'JSON', lang) elseif title.isRedirect then return wt .. msg('Type', 'redirect', lang) end if not inArray(nsid, no_need_suffix) then return wt end if ( content:match('%{%{[Dd]ocumentation[_%s]subpage') or content:match('%{%{[Tt]emplate[_%s]doc[_%s]inline') or content:match('%{%{[Tt]emplate[_%s]doc[_%s]viewed[_%s]directly') or subtext:match('^[Dd]oc$') ) and inArray(nsid, can_add_extend_suffix) then return wt .. msg('Type', 'doc', lang) elseif content:match('%{%{[Ss]andbox') or content:match('%{%{[Tt]emplate[_%s]sandbox[_%s]notice') or content:match('%{%{請注意:請在這行文字底下進行您的測試,請不要刪除或變更這行文字以及這行文字以上的部份。') or content:match('%{%{请注意:请在这行文字底下进行您的测试,请不要删除或变更这行文字以及这行文字以上的部分。') or content:match('%{%{[Pp]D%-self%/沙盒%|') or nsid > 1 and titletext:gsub('^[A-z][a-z]+%:', '') == '沙盒' or titletext:match('^File%:沙盒%.[A-Za-z]+$') or titletext:match('^Template%:沙盒%/') or titletext:match('^Template%:X%d') or ( ( subtext:match('^[Ss]andbox$') or subtext == '沙盒' ) and inArray(nsid, can_add_extend_suffix) ) then return wt .. msg('Type', 'sandbox', lang) elseif ( content:match('%{%{[Tt]emplate[_%s]testcases[_%s]notice') or content:match('%{%{[Tt]est[_%s]cases[_%s]notice') or content:match('%{%{测试样例') or content:match('%{%{測試樣例') or subtext:match('^[Tt]estcases$') or subtext == '测试样例' or subtext == '測試樣例' ) and inArray(nsid, can_add_extend_suffix) then return wt .. msg('Type', 'testcases', lang) elseif ( titletext:match('%/[Tt]emp$') or titletext:match('%/[Tt]emporary$') ) and inArray(nsid, {2, 4, 10, 118, 828}) then return wt .. msg('Type', 'temp', lang) elseif nsid == 10 and ( subtext:match('^[Ii]ntro$') or subtext:match('^[Ii]ntroduction$') or subtext == '说明' or subtext == '說明' ) then return wt .. msg('Type', 'intro', lang) elseif titletext:match('^Template%:Editnotices%/') or titletext:match('^User%:[^/]+%/Editnotice$') or titletext:match('^User[_%s]talk%:[^/]+%/Editnotice$') then return msg('Type', 'editnotice', lang) elseif titletext:match('^User%:[^/]+%/Emailnotice$') then local user = titletext:gsub('^User%:([^/]+)%/Emailnotice$', '%1') return '[[User:' .. user .. '|' .. user .. ']]' .. lan({ ['en'] = "'s ", ['zh-hans'] = '的', ['zh-hant'] = '的' }, lang) .. msg('Type', 'mailnotice', lang) elseif titletext:match('{{捷徑重定向([^}]+)}}') or titletext:match('{{捷径重定向([^}]+)}}') or titletext:match('{{快捷重定向([^}]+)}}') or titletext:match('{{快捷方式重定向([^}]+)}}') or titletext:match('{{RTL([^}]+)%|捷徑') then return string.format(msg('Type', 'shortcut', lang), wt) end end wt = (wt .. (inArray(nsid, no_need_suffix) and def_suffix(nsid, lang) or '')):gsub('talk page', 'talkpage') end return wt end function p.main (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 }) return p._main(args) end return p
该页面使用的模板:
模块:Namespace pagename/doc
(
查看源代码
)
返回至“
模块:Namespace pagename
”。
导航菜单
个人工具
登录
名字空间
模块
讨论
变体
视图
阅读
查看源代码
查看历史
更多
搜索
导航
首页
最近更改
随机页面
MediaWiki帮助
检索
作品
人物
地点
文化
石心之壁
石心之壁
游戏资源
日历
工具
链入页面
相关更改
特殊页面
页面信息