Modul:Homokozó/84.3.90.28/CitPer

Homokozó/84.3.90.28/CitPer[mi ez?] • [dokumentáció: mutat, szerkeszt] • [tesztek: sikeres: 0, sikertelen: 0, kihagyva: 1 (részletek)]

local args = {}
local lang = mw.getContentLanguage()

local function _main()
    local s = ''
    
    if args.aut or args['szerző'] then
        s = s .. (args.aut or args['szerző'])
        if args.aut2 or args['szerző2'] then
            s = s .. ' – ' .. (args.aut2 or args['szerző2'])
            if args.aut3 or args['szerző3'] then
                s = s .. ' – ' .. (args.aut3 or args['szerző3'])
            end
        end
        s = s .. ': '
    end
    
    if args.tit or args['cím'] then
        s = s .. lang:ucfirst(args.tit or args['cím'])
        if args.subtit or args['alcím'] then s = s .. ': ' .. lang:ucfirst(args.subtit or args['alcím']) end
        if not args.p then s = s .. '.' end
    end
    
    if args.per or args.periodika then s = s .. " ''" .. (args.per or args.periodika) .. ",''" end
    
    if args.tom or args['évfolyam'] then s = s .. ' ' .. require('Modul:Roman').main{args.tom or args['évfolyam']} .. '. évf.' end
    
    local d = ''
    if args.ann or args['év'] then
        d = d .. (args.ann or args['év']) .. '.'
        if args.lun or args['hónap'] then
            d = d .. ' ' .. mw.getCurrentFrame():expandTemplate{title = 'Rövid hónapnév', args = {args.lun or args['hónap']}}
            if args.die or args.nap then
                d = d .. ' ' .. (args.die or args.nap) .. '.'
            end
            d = '(' .. d .. ')'
        end
    end
    if args.fasc or args['szám'] then
        if (args.ann or args['év']) and (args.lun or args['hónap']) then
            d = (args.fasc or args['szám']) .. '. sz. ' .. d
        else
            d = d .. (d ~= '' and ' ') .. (args.fasc or args['szám']) .. '. sz.'
        end
    end
    s = s .. (d ~= '' and ' ' or '') .. d
    
    if args.pag or args.oldal then s = s .. ' ' .. (args.pag or args.oldal) .. '. o.' end
    
    if args.misc or args['egyéb'] then s = s .. '  ' .. (args.misc or args['egyéb']) end
    
    if args.url then s = s .. ' [' .. args.url .. ' Online hozzáférés]' end
    
    s = ' → ' .. s
    for k, v in pairs(args) do s = k .. '=' .. v .. ', ' .. s end
    return s
end

local p = {}

function p.main(frame)
    if frame == mw.getCurrentFrame() then
        for k, v in pairs(frame:getParent().args) do
            if v ~= '' then args[k] = v end
        end
    else
        args = frame
    end
    
    return _main()
end

return p