Difference between revisions of "Module:About other people"
Jump to navigation
Jump to search
blackwiki>Nihiltres (A link tweak and a string fix) |
m (7 revisions imported) |
||
| (5 intermediate revisions by 3 users not shown) | |||
| Line 3: | Line 3: | ||
local mArguments = require('Module:Arguments') | local mArguments = require('Module:Arguments') | ||
local p = {} | 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) | function p.aboutOtherPeople (frame) | ||
| Line 9: | Line 18: | ||
if not args[1] then | if not args[1] then | ||
return mHatnote.makeWikitextError( | return mHatnote.makeWikitextError( | ||
| − | + | s.emptySubject, | |
| − | + | s.templateName, | |
args.category | args.category | ||
) | ) | ||
| Line 18: | Line 27: | ||
for k, v in pairs(args) do | for k, v in pairs(args) do | ||
if type(k) == 'number' and k > 2 then | if type(k) == 'number' and k > 2 then | ||
| − | if pages[1] then table.insert(pages, | + | if pages[1] then table.insert(pages, s.andKeyword) end |
table.insert(pages, v) | table.insert(pages, v) | ||
end | end | ||
| Line 24: | Line 33: | ||
if #pages == 0 then pages = {args[2] and mHatnote.disambiguate(args[2])} 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. | --translate args into args for _about(). [2] is nil to force otherText. | ||
| − | local returnArgs = {args[1], nil, unpack(pages)} | + | local returnArgs = {text = args.text, args[1], nil, unpack(pages)} |
local options = { | local options = { | ||
otherText = (args[2] and | otherText = (args[2] and | ||
string.format( | string.format( | ||
| − | + | s.otherPeopleNamedForm, | |
| − | args.named or | + | args.named or s.named, |
args[2] | args[2] | ||
) | ) | ||
| − | ) or | + | ) or s.otherPeopleSame |
} | } | ||
return mAbout._about(returnArgs, options) | return mAbout._about(returnArgs, options) | ||
Latest revision as of 12:23, 25 September 2020
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 = {text = args.text, args[1], nil, unpack(pages)}
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