Difference between revisions of "Module:About other people"

From blackwiki
Jump to navigation Jump to search
blackwiki>Nihiltres
(A prototype…)
 
blackwiki>Nihiltres
(A link tweak and a string fix)
Line 10: Line 10:
 
return mHatnote.makeWikitextError(
 
return mHatnote.makeWikitextError(
 
'no page subject specified',
 
'no page subject specified',
'Template:About-otherpeople#Errors',
+
'Template:About-otherpeople',
 
args.category
 
args.category
 
)
 
)
Line 32: Line 32:
 
args[2]
 
args[2]
 
)
 
)
) or 'people with the same name'
+
) or 'other people with the same name'
 
}
 
}
 
return mAbout._about(returnArgs, options)
 
return mAbout._about(returnArgs, options)

Revision as of 22:03, 16 July 2016

Implements {{about other people}}.


local mAbout = require('Module:About')
local mHatnote = require('Module:Hatnote')
local mArguments = require('Module:Arguments')
local p = {}

function p.aboutOtherPeople (frame)
	local args = mArguments.getArgs(frame)
	--if not args[1], a different template would be better!
	if not args[1] then
		return mHatnote.makeWikitextError(
			'no page subject specified',
			'Template:About-otherpeople',
			args.category
		)
	end
	--get pages from arguments if applicable, with attempted default to args[2]
	local pages = {}
	for k, v in pairs(args) do
		if type(k) == 'number' and k > 2 then
			if pages[1] then table.insert(pages, 'and') end
			table.insert(pages, v)
		end
	end
	if #pages == 0 then pages = {args[2] and mHatnote.disambiguate(args[2])} end
	--translate args into args for _about(). [2] is nil to force otherText.
	local returnArgs = {args[1], nil, unpack(pages)}
	local options = {
		otherText = (args[2] and
			string.format(
					'other people %s %s',
					args.named or 'named',
					args[2]
				)
			) or 'other people with the same name'
	}
	return mAbout._about(returnArgs, options)
end

return p