Module:Person

require('strict')

local getArgs = require('Module:Arguments').getArgs local yesno = require('Module:Yesno') local error_message = require('Module:Error')['error'] local portal_header = require('Module:Portal header')._portal_header

local authorModule = require('Module:Author') local author_dates = authorModule._dates local get_author_image = authorModule._get_image local construct_defaultsort = authorModule._construct_defaultsort

local p = {}

function p._person(args) local name = args.title if not name then if args.firstname and args.lastname then if yesno(args.invert_names) then name = args.lastname .. ' ' .. args.firstname else name = args.firstname .. ' ' .. args.lastname end else name = args.firstname or args.lastname or error_message({'Module:Person error: name needed'}) end end args.image_caption = name args.template_ns = 'Portal' args.nocat = false local image = get_author_image(args) local dates = author_dates(args) if dates then args.title = name .. tostring(mw.html.create('span'):css({['font-weight'] = 'normal'}):wikitext(dates)) else args.title = name end args.class = args.class or 'C'	args.subclass1 = args.subclass1 or 'T'	args.parent = 'People' args.notes = args.notes or args.description args.nocat = true local header = portal_header(args) local defaultsort = construct_defaultsort(args) local cats = {} if args.shortcut then table.insert(cats, '') end if not yesno(args.reviewed) then table.insert(cats, '') end return header .. image .. defaultsort .. table.concat(cats) end

function p.person(frame) return p._person(getArgs(frame)) end

return p