查看“模块:Ns”的源代码
←
模块:Ns
跳转至:
导航
、
搜索
因为以下原因,您没有权限编辑本页:
您所请求的操作仅限于该用户组的用户使用:
用户
您可以查看与复制此页面的源代码。
local module = {} --判断两个名字空间名称是否相等。 --规则: -- 1.下划线与空白字符相等。 -- 2.首尾的空白字符忽略。 -- 3.大小写不敏感。 function ns_eq(ns1, ns2) ns1 = mw.ustring.gsub(ns1 or "", "[%s_]+", " ") ns1 = mw.text.trim(ns1) ns2 = mw.ustring.gsub(ns2 or "", "[%s_]+", " ") ns2 = mw.text.trim(ns2) if ns1 == ns2 then return true elseif mw.ustring.len(ns1) ~= mw.ustring.len(ns2) then return false else return mw.ustring.lower(ns1) == mw.ustring.lower(ns2) end end function ns_find(page) local ns = mw.ustring.match(page, "^[^:]*") for _, entry in ipairs(module.getmap()) do if ns_eq(ns, entry[1]) then return ns end for _, alias in ipairs(entry[2]) do if ns_eq(ns, alias) then return ns, entry end end end return nil end function module.search(frame) local args = require("Module:Arguments").getArgs(frame) local ns = ns_find(args[1] or "") return ns end function module.normalize(frame) local args = require("Module:Arguments").getArgs(frame) local _, entry = ns_find(args[1] or "") return entry[3] end function module.getmap(frame) local key = { } local map = { } for _, item in pairs(mw.site.namespaces) do table.insert(key, item.id) end table.sort(key) for _, index in ipairs(key) do local item = mw.site.namespaces[index] local aliases = item.aliases table.insert(aliases, 1, item.canonicalName) table.insert(map, { item.id, aliases, item.name }) end --如果frame为nil,即从模块外部(模板)调用本函数,则创建一个能在外部使用的序列化数据。 --如果frame不为nil,即从模块内部或其他模块调用本函数,则返回映射表。 if frame == nil then return map else local var_array = require("Module:Var-array") var_array.new("ns.map", map) end end return module
该页面使用的模板:
模块:Ns/doc
(
查看源代码
)
返回至
模块:Ns
。
导航菜单
个人工具
登录
名字空间
模块
讨论
变种
视图
阅读
查看源代码
查看历史
更多
搜索
导航
首页
随机页面
最近更改
最新文件
常用
上传多个文件
工具
链入页面
相关更改
特殊页面
页面信息