Module:BattleInfobox

From CinderCivs Wiki
Revision as of 19:25, 29 May 2024 by Nex23 (talk | contribs) (Created page with "-- Module:BattleInfobox local p = {} function p.infobox(frame) local args = frame:getParent().args -- Function to create table rows local function makeRow(label, content) if content and content ~= "" then return string.format("|-\n! style=\"background: #eaecf0; text-align: left; padding: 2px 5px;\" | %s\n| style=\"text-align: left; padding: 2px 5px;\" | %s\n", label, content) else return "" end end l...")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

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

-- Module:BattleInfobox

local p = {}

function p.infobox(frame)
    local args = frame:getParent().args

    -- Function to create table rows
    local function makeRow(label, content)
        if content and content ~= "" then
            return string.format("|-\n! style=\"background: #eaecf0; text-align: left; padding: 2px 5px;\" | %s\n| style=\"text-align: left; padding: 2px 5px;\" | %s\n", label, content)
        else
            return ""
        end
    end

    local result = {}
    table.insert(result, '<div style="float: right; clear: right; margin: 0 0 1em 1em; width: 300px; border: 1px solid #a2a9b1; background: #f8f9fa; padding: 5px; font-size: 90%;">')
    table.insert(result, '{| style="width: 100%; border-collapse: collapse; border-spacing: 0;"')

    table.insert(result, string.format('|-\n| colspan="2" style="background: #ccddee; text-align: center; font-size: 110%%; font-weight: bold;" | %s', args.name or ""))
    table.insert(result, string.format('|-\n| colspan="2" style="text-align: center;" | [[File:%s|250px|alt=%s]]', args.image or "", args.image_alt or ""))
    table.insert(result, string.format('|-\n| colspan="2" style="text-align: center;" | %s', args.image_caption or ""))

    table.insert(result, makeRow("Date", args.date))
    table.insert(result, makeRow("Location", args.location))
    table.insert(result, makeRow("Result", args.result))

    table.insert(result, "|-\n! style=\"background: #eaecf0; text-align: left; padding: 2px 5px;\" | Combatants\n| style=\"background: #eaecf0; text-align: left; padding: 2px 5px;\" | ")
    table.insert(result, "|-\n| style=\"background: #eaecf0; text-align: left; padding: 2px 5px;\" | " .. (args.combatant1 or "") .. "\n| style=\"background: #eaecf0; text-align: left; padding: 2px 5px;\" | " .. (args.combatant2 or ""))

    table.insert(result, "|-\n! style=\"background: #eaecf0; text-align: left; padding: 2px 5px;\" | Commanders\n| style=\"background: #eaecf0; text-align: left; padding: 2px 5px;\" | ")
    table.insert(result, "|-\n| style=\"background: #eaecf0; text-align: left; padding: 2px 5px;\" | " .. (args.commander1 or "") .. "\n| style=\"background: #eaecf0; text-align: left; padding: 2px 5px;\" | " .. (args.commander2 or ""))

    table.insert(result, "|-\n! style=\"background: #eaecf0; text-align: left; padding: 2px 5px;\" | Strength\n| style=\"background: #eaecf0; text-align: left; padding: 2px 5px;\" | ")
    table.insert(result, "|-\n| style=\"background: #eaecf0; text-align: left; padding: 2px 5px;\" | " .. (args.strength1 or "") .. "\n| style=\"background: #eaecf0; text-align: left; padding: 2px 5px;\" | " .. (args.strength2 or ""))

    table.insert(result, "|-\n! style=\"background: #eaecf0; text-align: left; padding: 2px 5px;\" | Casualties and losses\n| style=\"background: #eaecf0; text-align: left; padding: 2px 5px;\" | ")
    table.insert(result, "|-\n| style=\"background: #eaecf0; text-align: left; padding: 2px 5px;\" | " .. (args.casualties1 or "") .. "\n| style=\"background: #eaecf0; text-align: left; padding: 2px 5px;\" | " .. (args.casualties2 or ""))

    table.insert(result, "|}\n</div>")

    return table.concat(result)
end

return p