模块:If in page
外观
注意事项
此模板已评为通行版。
此模块的内容已臻稳定,可正常使用于各处而不会出现错误。您现在可在分类和其他维基百科资源中提及此模块来帮助新用户学习。
为了降低服务器负载和错误输出,修改此模块前应先进行沙盒测试,而不是重复的试错性编辑。
此模块的内容已臻稳定,可正常使用于各处而不会出现错误。您现在可在分类和其他维基百科资源中提及此模块来帮助新用户学习。
为了降低服务器负载和错误输出,修改此模块前应先进行沙盒测试,而不是重复的试错性编辑。
简介
此模板可用来侦测和匹配页面中是否有指定的mw.ustring模型,并输出为自定义结果。
参数及使用方法
{{If in page|模型|存在時的輸出值|不存在時的返回值|page=|subst=}}
{{#invoke:If in page|main|模型|存在時的輸出值|不存在時地返回值|page=|subst=}}
示例
- 侦测和匹配当前页面中是否存在模型,并输出自定义结果:
{{If in page|模型|存在時輸出的結果|不存在時輸出的結果}}
- 侦测和匹配指定页面中是否存在模型,并输出自定义结果:
{{If in page|模型|存在時輸出的結果|不存在時輸出的結果|page=頁面}}
参数资料
无描述。
参数 | 描述 | 类型 | 状态 | |
---|---|---|---|---|
模型 | 1 | 一个能被mw.ustring.match有效侦测和匹配的模型。 | 内容 | 必需 |
存在值 | 2 | 可在页面中侦测到模型的输出值。 | 内容 | 推荐 |
不在值 | 3 | 无法在页面中侦测到模型的输出值。 | 内容 | 推荐 |
页面 | page | 在指定页面上侦测模型,而非在当前的页面。 | 页面名称 | 推荐 |
替换 | subst | If set, then value if present will have %n replaced with capture groups, see doc | 布尔 | 可选 |
local p = {}
local getArgs = require('Module:Arguments').getArgs
function p.match(args)
if not args["page"] then
args.page = mw.title.getCurrentTitle().fullText
end
local page = mw.title.new(args.page)
if not page then
return args["3"] or ""
end
local content = page:getContent()
if not content then
return args["3"] or ""
end
if mw.ustring.match(content, args["1"] or "") then
if args["subst"] then
local pattern = args["1"] or ""
if mw.ustring.sub(pattern, 1, 1) ~= "^" then
pattern = "^.-" .. pattern
end
if mw.ustring.sub(pattern, -1) ~= "$" then
pattern = pattern .. ".*$"
end
local out = mw.ustring.gsub(content, pattern, args["2"] or "")
return out
else
return args["2"] or ""
end
else
return args["3"] or ""
end
end
function p.main(frame)
local args = getArgs(frame)
return p.match(args)
end
return p