Documentation for this module may be created at Module:SiteList/doc

local p = {}

local function buildRow(site, id, sceneid, alias, notes)
    local siteInfo = mw.loadData('Module:SiteDictionary')[site:lower()]
    local link = 'N/A'
    if siteInfo then
        if sceneid then
            link = string.format(siteInfo.sceneFormat, sceneid)
        elseif id then
            link = string.format(siteInfo.idFormat, id)
        else
            link = siteInfo.defaultLink
        end
    end
    return string.format('|\n| style="text-align:center;vertical-align:middle;" | %s\n| style="text-align:center;vertical-align:middle;" | %s\n| style="text-align:center;vertical-align:middle;" | %s\n| style="text-align:center;vertical-align:middle;" | %s\n|-', site, link, alias or 'N/A', notes or 'N/A')
end

function p.siteList(frame)
    local args = frame:getParent().args
    local site = args[1]
    local id = args.id
    local sceneid = args.sceneid
    local alias = args.alias
    local notes = args.notes
    return buildRow(site, id, sceneid, alias, notes)
end

return p