Difference between revisions of "Module:Is infobox in lead/sandbox"

From blackwiki
Jump to navigation Jump to search
blackwiki>Trialpears
(Infobox mapframe doesn't count as another infobox)
 
blackwiki>Trialpears
(Also ignore embedded infoboxes)
Line 12: Line 12:
 
if (string.find(lead, searchString)) then
 
if (string.find(lead, searchString)) then
 
lead = string.gsub( lead, "{{%s-[Ii]nfobox%s-mapframe", "")
 
lead = string.gsub( lead, "{{%s-[Ii]nfobox%s-mapframe", "")
 +
lead = string.gsub( lead, "{{%s-[Ii]nfobo[^}]-%|%s-embed%s-=%s-yes", "")
 +
lead = string.gsub( lead, "{{%s-[Ii]nfobo[^}]-%|%s-child%s-=%s-yes", "")
 
local iter = string.gmatch(lead, "{{%s-[Ii]nfobox")
 
local iter = string.gmatch(lead, "{{%s-[Ii]nfobox")
 
iter()
 
iter()

Revision as of 22:32, 2 October 2019

Documentation for this module may be created at Module:Is infobox in lead/sandbox/doc

local p = {}

function p.main (frame)
	return p._main (frame.args[1])
end

function p._main (searchString)
	local content = mw.title.getCurrentTitle():getContent()
	local offset = string.find(content, "==", 1 , true)
	if offset then
		local lead = string.sub(content, 1, offset-1)
		if (string.find(lead, searchString)) then
			lead = string.gsub( lead, "{{%s-[Ii]nfobox%s-mapframe", "")
			lead = string.gsub( lead, "{{%s-[Ii]nfobo[^}]-%|%s-embed%s-=%s-yes", "")
			lead = string.gsub( lead, "{{%s-[Ii]nfobo[^}]-%|%s-child%s-=%s-yes", "")
			local iter = string.gmatch(lead, "{{%s-[Ii]nfobox")
			iter()
			if not iter() then --if able to find two infoboxes in the lead, then don't return true
				local iter2 = string.gmatch(content, searchString)
				iter2()
				if not iter2() then --if able to find two of the specific infobox in the article, then don't return true
					return true
				end
			end
		end
	end
end

return p