Toggle menu
14
229
69
27.1K
Kenshi Wiki
Toggle preferences menu
Toggle personal menu
Not logged in
Your IP address will be publicly visible if you make any edits.
Revision as of 22:04, 19 February 2025 by Prd (talk | contribs) (Created page with "local p = {} local getArgs = require('Module:Arguments').getArgs --args: 1 - ustring pattern, 2 - value if present, 3 - value if absent, -- page - page to test if not this page function p._main(args) if not args["page"] then args.page = mw.title.getCurrentTitle().fullText end local page = mw.title.new(args.page) if not page then --bad title return args["3"] or "" end local content = page:getContent() if not content then --page does not exist retu...")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

This module implements {{If in page}}, please see its documentation for more information.

Usage

{{#invoke:If in page|main}}

See also


local p = {}
local getArgs = require('Module:Arguments').getArgs

--args: 1 - ustring pattern, 2 - value if present, 3 - value if absent, 
--      page - page to test if not this page

function p._main(args)
	if not args["page"] then
		args.page = mw.title.getCurrentTitle().fullText
	end
	local page = mw.title.new(args.page)
	if not page then
		--bad title
		return args["3"] or ""
	end
	local content = page:getContent()
	if not content then
		--page does not exist
		return args["3"] or ""
	end
	if mw.ustring.match(content, args["1"] or "") then
		if args["sub"] then
			--return value should have capture groups substed in
			local pattern = args["1"] or ""
			if mw.ustring.sub(pattern, 1, 1) ~= "^" then
				--pattern does not force it to be at start of page
				pattern = "^.-" .. pattern
			end
			if mw.ustring.sub(pattern, -1) ~= "$" then
				--pattern does not force it to be at end of page
				pattern = pattern .. ".*$"
			end
			--pattern will now match entire content, so running gsub will
			--return the string that has been passed in parameter 2 with things
			--like %1 substituted, NOTE: %0 does not work in this
			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._main(args)
end

return p