Modul:Smiles

Izvor: Hrvatska internetska enciklopedija
Inačica 787335 od 27. lipanj 2026. u 13:34 koju je unio WikiSysop (razgovor | doprinosi)
Prijeđi na navigaciju Prijeđi na pretraživanje
Dokumentacija modula


local p = {}

function p.render(frame)
    -- Provjeravamo oba izvora argumenata jer HeaderTabs zna promijeniti kontekst frejma
    local parentArgs = frame:getParent().args or {}
    local currentArgs = frame.args or {}

    -- Pokušaj dohvatiti SMILES iz bilo kojeg dostupnog parametra
    local smiles = parentArgs[1] or parentArgs.smiles or currentArgs[1] or currentArgs.smiles or ""
    local size = parentArgs.size or currentArgs.size or "260"
    local theme = parentArgs.theme or currentArgs.theme or "light"

    -- Čišćenje SMILES stringa od razmaka, novih redova i nevidljivih znakova
    if type(smiles) == "string" then
        smiles = string.gsub(smiles, "^%s*(.-)%s*$", "%1") -- trim razmaka s početka i kraja
    else
        smiles = ""
    end

    -- Ako je nakon čišćenja prazno, ispiši precizniju poruku za debugiranje
    if smiles == "" then
        return '<span class="error" style="color:orange; font-weight:bold;">[Smiles greška: Prazan unos unutar taba]</span>'
    end

    -- Prisilno učitavanje ResourceLoader modula na stranici
    frame:callParserFunction('#tag', { 'script', '', module = 'ext.smiles' })

    -- Kreiramo čisti HTML string
    local html = '<div class="mw-smiles" data-smiles="' .. mw.text.nowiki(smiles) .. '" data-size="' .. size .. '" data-theme="' .. theme .. '">'
    html = html .. '<noscript>[[Datoteka:Smiles-fallback.png|200px|link=]]</noscript>'
    html = html .. '</div>'

    -- Vraćamo HTML spreman za obradu
    return frame:preprocess(html)
end

return p