Documentația acestui modul poate fi creată la Modul:Infocasetă/doc

local p = {}

function p.infobox(frame)
    local args = frame.args
    local parentArgs = frame:getParent().args
    
    local html = mw.html.create('table')
    html:addClass('infobox')
        :css('float', 'right')
        :css('width', args.width or '300px')
        :css('border', '1px solid #a2a9b1')
        :css('background-color', '#f8f9fa')
        :css('padding', '5px')
        :css('font-size', '88%')
        :css('margin', '0 0 1em 1em')
        :css('border-collapse', 'collapse')

    -- Titlu / Nume
    local titlu = parentArgs['nume'] or mw.title.getCurrentTitle().text
    html:tag('tr')
        :tag('th')
            :attr('colspan', '2')
            :css('text-align', 'center')
            :css('font-size', '125%')
            :css('font-weight', 'bold')
            :css('background-color', '#def')
            :css('padding', '5px')
            :css('color', '#000') -- Asigură text negru lizibil pe fundal deschis
            :wikitext(titlu)

    -- Rânduri (Forțăm interpretarea ca wikitext/HTML prin preprocess)
    if args['rows'] and args['rows'] ~= '' then
        -- Aici se întâmplă magia: frame:preprocess transformă textul brut în HTML curat
        local randuriParsate = frame:preprocess(args['rows'])
        html:wikitext(randuriParsate)
    end

    -- Footer (Notițe)
    if args['footer'] and args['footer'] ~= '' then
        html:tag('tr')
            :tag('td')
                :attr('colspan', '2')
                :css('font-size', '90%')
                :css('border-top', '1px solid #a2a9b1')
                :css('padding', '5px')
                :wikitext(frame:preprocess(args['footer']))
    end

    return tostring(html)
end

return p