Jump to content

Module:Is infobox in lead: Difference between revisions

From Wikipedia, the free encyclopedia
Content deleted Content added
m Protected "Module:Is infobox in lead": High-risk Lua module ([Edit=Require template editor access] (indefinite) [Move=Require template editor access] (indefinite))
fix the case of two of an infobox in the same article
Line 9: Line 9:
local offset = string.find(content, "==", 1 , true)
local offset = string.find(content, "==", 1 , true)
if offset then
if offset then
lead = string.sub(content, 1, offset-1)
local lead = string.sub(content, 1, offset-1)
if (string.find(lead, searchString)) then
if (string.find(lead, searchString)) then
iter = string.gmatch(lead, "[Ii]nfobox")
local iter = string.gmatch(lead, "[Ii]nfobox")
iter()
iter()
if not iter() then --if able to find two infoboxes, then don't return true
if not iter() then --if able to find two infoboxes in the lead, then don't return true
local iter2 = string.gmatch(content, searchString) --if able to find two of the specific infobox in the article, then return true
return "true"
iter2()
if not iter2() then
return true
end
end
end
end
end

Revision as of 12:00, 3 March 2019

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
			local iter = string.gmatch(lead, "[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) --if able to find two of the specific infobox in the article, then return true
				iter2()
				if not iter2() then
					return true
				end
			end
		end
	end
end

return p