Module:About other people
Jump to navigation
Jump to search
Implements {{about other people}}.
local mAbout = require('Module:About')
local mHatnote = require('Module:Hatnote')
local mArguments = require('Module:Arguments')
local p = {}
local s = { --strings
emptySubject = 'no page subject specified',
templateName = 'Template:About other people',
andKeyword = 'and',
otherPeopleNamedForm = 'other people %s %s',
named = 'named',
otherPeopleSame = 'other people with the same name',
}
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(
s.emptySubject,
s.templateName,
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, s.andKeyword) 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), text = args.text}
local options = {
otherText = (args[2] and
string.format(
s.otherPeopleNamedForm,
args.named or s.named,
args[2]
)
) or s.otherPeopleSame
}
return mAbout._about(returnArgs, options)
end
return p