Sari la conținut

Modul:Infocasetă: Diferență între versiuni

De la Enciclopedia Trimeria
mFără descriere a modificării
mFără descriere a modificării
Linia 34: Linia 34:
                 :css("text-align", "center")
                 :css("text-align", "center")
                 :css("padding", "8px")
                 :css("padding", "8px")
                :css("max-width", "304px")
                :css("overflow", "hidden")


         td:wikitext(
         td:wikitext(
             string.format(
             string.format(
                 '<div style="max-width:100%%; width:260px; margin:0 auto; overflow:hidden;">' ..
                 '<div style="width: 260px; max-width: 100%%; margin: 0 auto; display: block;">' ..
                 '<img src="%s" style="width:100%% !important; height:auto !important; max-width:260px !important; display:block; margin:0 auto; border-radius:4px;">' ..
                 '<img src="%s" style="width: 100%% !important; max-width: 260px !important; height: auto !important; display: inline-block; vertical-align: middle; border-radius: 4px;">' ..
                 '</div>',
                 '</div>',
                 image
                 image
Linia 54: Linia 52:
         end
         end
     end
     end


     local function addRow(label, value)
     local function addRow(label, value)

Versiunea de la data 7 iunie 2026 16:01

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

local p = {}

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

    local title = args.title or mw.title.getCurrentTitle().text
    local image = args.image or ""
    local caption = args.caption or ""

    local root = mw.html.create("table")
        :addClass("infocaseta")
        :css("width", "320px")
        :css("float", "right")
        :css("margin", "0 0 1em 1em")
        :css("border", "1px solid #5b8a3c")
        :css("background", "#f8fff5")
        :css("border-collapse", "collapse")
        :css("font-size", "88%")

    root:tag("tr")
        :tag("th")
        :attr("colspan", "2")
        :css("background", "#6aa84f")
        :css("color", "white")
        :css("font-size", "120%")
        :css("padding", "8px")
        :css("text-align", "center")
        :wikitext(title)

    if image ~= "" then
        local td = root:tag("tr")
            :tag("td")
                :attr("colspan", "2")
                :css("text-align", "center")
                :css("padding", "8px")

        td:wikitext(
            string.format(
                '<div style="width: 260px; max-width: 100%%; margin: 0 auto; display: block;">' ..
                '<img src="%s" style="width: 100%% !important; max-width: 260px !important; height: auto !important; display: inline-block; vertical-align: middle; border-radius: 4px;">' ..
                '</div>',
                image
            )
        )

        if caption ~= "" then
            td:tag("div")
                :css("font-size", "90%")
                :css("color", "#666")
                :css("margin-top", "4px")
                :wikitext(caption)
        end
    end


    local function addRow(label, value)
        if value and value ~= "" and value ~= "nil" then
            local tr = root:tag("tr")
            tr:tag("th")
                :css("text-align", "left")
                :css("padding", "5px")
                :css("width", "40%")
                :css("font-weight", "bold")
                :wikitext(label)

            tr:tag("td")
                :css("padding", "5px")
                :wikitext(value)
        end
    end

    if args.rows and args.rows ~= "" then
        for linie in string.gmatch(args.rows, "[^\r\n]+") do
            local eticheta, valoare = string.match(linie, "^%s*(.-)%s*//%s*(.-)%s*$")
            if eticheta and valoare then
                addRow(eticheta, valoare)
            end
        end
    end

    return tostring(root)
end

return p