跳至內容
切換側欄
搜尋
建立帳號
登入
個人工具
建立帳號
登入
用於已登出編輯者的頁面
了解更多
貢獻
討論
導覽
首頁
近期變更
隨機頁面
MediaWiki說明
工具
連結至此的頁面
相關變更
特殊頁面
頁面資訊
正在編輯「
模組:Namespace
」
模組
討論
English
閱讀
編輯原始碼
檢視歷史
更多
閱讀
編輯原始碼
檢視歷史
警告:
您尚未登入。 若您進行任何的編輯您的 IP 位址將會被公開。 若您
登入
或
建立帳號
,您的編輯將會以您的使用者名稱標示,並能擁有另外的益處。
防垃圾訊息檢查用。
請勿
填寫此欄位!
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) elseif 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
摘要:
請注意,所有於華麥百科所做的貢獻會依據CC BY-SA(創用CC 姓名標示─相同方式分享)授權條款發佈(詳情請見
說明:版權
)。若您不希望您的著作被任意修改與散佈,請勿在此發表文章。
您同時向我們保證在此的著作內容是您自行撰寫,或是取自不受版權保護的公開領域或自由資源。
請勿在未經授權的情況下發表文章!
取消
編輯說明
(在新視窗開啟)
此頁面使用了以下模板:
模組:Namespace/doc
(
編輯
)