Module:Is article

Template:Lua Module:Is article is used to determine if a given page is an article, a redirect, a disambiguation page, does not exist or a bad title.

Usage

Return values

Results and return values
Result Return value
Article article
Redirect redirect
Disambiguation page dab
Page does not exist empty
bad title badtitle

Parameter list

Parameter Explanation
1 Positional or numbered parameter; The page name title.



local p = {}

local disambiguationTemplates = {
	"[Dd]isambiguation",
	"[Dd]isambig",
	"[Dd]isamb",
	"[Dd]ab",
	"[Ss]urname"
	}

function p.main(frame)
	local getArgs = require('Module:Arguments').getArgs
	local args = getArgs(frame)
	title = args[1]
	page = mw.title.new(title, 0)
	
	if (not page) then
		return "badtitle"
	end

	if (not page.exists) then
		return "empty"
	end

	if (page.isRedirect) then
		return "redirect"
	end

	local content = page:getContent()
	if (content) then
		for i, name in ipairs(disambiguationTemplates) do
			if (content:match('{{%s?' .. name .. '%s?}}')) then
				return "dab"
			end
		end
	end

	return "article"
end

return p