模組:If in page

出自微國家百科
於 2024年6月15日 (六) 19:49 由 LarryChou留言 | 貢獻 所做的修訂 (建立內容為「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.…」的新頁面)
(差異) ←上個修訂 | 最新修訂 (差異) | 下個修訂→ (差異)

可在模組:If in page/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