Izvor: Hrvatska internetska enciklopedija
Prijeđi na navigaciju
Prijeđi na pretraživanje
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