Module:User:Mr. Stradivarius/String count

-- This module counts the number of times a string appears on a given page.

local p = {}

local function escapePattern(s)
	-- Escape punctuation in a string so it can be used in a Lua pattern.
	s = s:gsub('%p', '%%%0')
	return s
end

function p.count(frame)
	local text = mw.title.new(frame.args.page):getContent()
	local pattern = escapePattern(frame.args.search)
	local temp, count = mw.ustring.gsub(text, pattern, '')
	return count
end

return p