模組:If in page
注意事項
此Template已評為通行版。
此模組的內容已臻穩定,可正常使用於各處而不會出現錯誤。您現在可在分类和其他維基百科資源中提及此模組來幫助新使用者學習。
為了降低伺服器負載和錯誤輸出,修改此模組前應先進行沙盒測試,而不是重複的試錯性編輯。
此模組的內容已臻穩定,可正常使用於各處而不會出現錯誤。您現在可在分类和其他維基百科資源中提及此模組來幫助新使用者學習。
為了降低伺服器負載和錯誤輸出,修改此模組前應先進行沙盒測試,而不是重複的試錯性編輯。
簡介
此模板可用來偵測和匹配頁面中是否有指定的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