查看“Module:Redirect”的源代码
←
Module:Redirect
跳转到导航
跳转到搜索
因为以下原因,您没有权限编辑该页面:
您请求的操作仅限属于该用户组的用户执行:
用户
您必须确认您的电子邮件地址才能编辑页面。请通过
参数设置
设置并确认您的电子邮件地址。
您可以查看和复制此页面的源代码。
-- This module provides functions for getting the target of a redirect page. local p = {} -- Gets a mw.title object, using pcall to avoid generating script errors if we -- are over the expensive function count limit (among other possible causes). local function getTitle(...) local success, titleObj = pcall(mw.title.new, ...) if success then return titleObj else return nil end end -- Gets the name of a page that a redirect leads to, or nil if it isn't a -- redirect. function p.getTargetFromText(text, contentModel) contentModel = contentModel or 'wikitext' if contentModel == 'wikitext' then return string.match( text, "^%s*#重定向%s*:?%s*%[%[([^%[%]|]-)%]%]" ) or string.match( text, "^%s*#重定向%s*:?%s*%[%[([^%[%]|]-)|[^%[%]]-%]%]" ) or string.match( text, "^%s*#[Rr][Ee][Dd][Ii][Rr][Ee][Cc][Tt]%s*:?%s*%[%[([^%[%]|]-)%]%]" ) or string.match( text, "^%s*#[Rr][Ee][Dd][Ii][Rr][Ee][Cc][Tt]%s*:?%s*%[%[([^%[%]|]-)|[^%[%]]-%]%]" ) elseif contentModel == 'Scribunto' then return string.match( text, "^%s*return%s+require%s*%[%[([^%[%]|]-)%]%]" -- T120794 ) or string.match( text, "^%s*return%s+require%s*%(%s*['\"]([^%[%]|]-)['\"]%s*%)" ) end return nil end -- Gets the target of a redirect. If the page specified is not a redirect, -- returns nil. function p.getTarget(page, fulltext) -- Get the title object. Both page names and title objects are allowed -- as input. local titleObj if type(page) == 'string' or type(page) == 'number' then titleObj = getTitle(page) elseif type(page) == 'table' and type(page.getContent) == 'function' then titleObj = page else error(string.format( "错误参数 #1,调用 'getTarget'" .. " (需要字符串,数字,或标题对象;得到%s)", type(page) ), 2) end if not titleObj or not titleObj.isRedirect then return nil end -- Find the target by using string matching on the page content. local target = p.getTargetFromText(titleObj:getContent() or "", titleObj.contentModel) --優先使用原本的判斷方式,如果判斷不出來,再直接用redirectTarget or titleObj.redirectTarget if target then local targetTitle = getTitle(target) if targetTitle then if fulltext then return targetTitle.fullText else return targetTitle.prefixedText end else return nil end else -- The page is a redirect, but matching failed. This indicates a bug in -- the redirect matching pattern, so throw an error. error(string.format( '无法处理页面"%s"上的重定向', fulltext and titleObj.fullText or titleObj.prefixedText )) end end --[[ -- Given a single page name determines what page it redirects to and returns the -- target page name, or the passed page name when not a redirect. The passed -- page name can be given as plain text or as a page link. -- -- Returns page name as plain text, or when the bracket parameter is given, as a -- page link. Returns an error message when page does not exist or the redirect -- target cannot be determined for some reason. --]] function p.luaMain(rname, bracket, fulltext) if type(rname) ~= "string" or not rname:find("%S") then return nil end bracket = bracket and "[[%s]]" or "%s" rname = rname:match("%[%[(.+)%]%]") or rname local target = p.getTarget(rname, fulltext) local ret = target or rname ret = getTitle(ret) if ret then if fulltext then ret = ret.fullText else ret = ret.prefixedText end return bracket:format(ret) else return nil end end -- Provides access to the luaMain function from wikitext. function p.main(frame) local args = require('Module:Arguments').getArgs(frame, {frameOnly = true}) return p.luaMain(args[1], args.bracket, args.fulltext) or '' end -- Returns true if the specified page is a redirect, and false otherwise. function p.luaIsRedirect(page) local titleObj = getTitle(page) if not titleObj then return false end if titleObj.isRedirect then return true else return false end end -- Provides access to the luaIsRedirect function from wikitext, returning 'yes' -- if the specified page is a redirect, and the blank string otherwise. function p.isRedirect(frame) local args = require('Module:Arguments').getArgs(frame, {frameOnly = true}) if p.luaIsRedirect(args[1]) then return 'yes' else return '' end end return p
该页面使用的模板:
Module:Redirect/doc
(
查看源代码
)
返回
Module:Redirect
。
导航菜单
个人工具
中文
创建账号
登录
命名空间
模块
讨论
English
查看
阅读
查看源代码
查看历史
更多
搜索
导航
首页
最近更改
最新文件
随机页面
官方Discord
浏览NeuroWiki
人物列表
直播记录
梗列表
事件列表
物品列表
场景列表
辟谣专区
帮助
帮助
沙盒
NeuroWiki政策文件
编辑规范
怎么正确编辑&更新?
工具
链入页面
相关更改
上传文件
特殊页面
页面信息