Modul:Smiles: razlika između inačica
Prijeđi na navigaciju
Prijeđi na pretraživanje
mNema sažetka uređivanja |
mNema sažetka uređivanja |
||
| Redak 2: | Redak 2: | ||
function p.render(frame) | function p.render(frame) | ||
-- | -- Provjeravamo oba izvora argumenata jer HeaderTabs zna promijeniti kontekst frejma | ||
local | local parentArgs = frame:getParent().args or {} | ||
local currentArgs = frame.args or {} | |||
local | |||
-- | -- Pokušaj dohvatiti SMILES iz bilo kojeg dostupnog parametra | ||
smiles = | 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 | if smiles == "" then | ||
return '<span class="error"> | return '<span class="error" style="color:orange; font-weight:bold;">[Smiles greška: Prazan unos unutar taba]</span>' | ||
end | end | ||
| Redak 19: | Redak 26: | ||
frame:callParserFunction('#tag', { 'script', '', module = 'ext.smiles' }) | frame:callParserFunction('#tag', { 'script', '', module = 'ext.smiles' }) | ||
-- Kreiramo | -- Kreiramo čisti HTML string | ||
local html = '<div class="mw-smiles" data-smiles="' .. mw.text.nowiki(smiles) .. '" data-size="' .. size .. '" data-theme="' .. theme .. '">' | 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 .. '<noscript>[[Datoteka:Smiles-fallback.png|200px|link=]]</noscript>' | ||
html = html .. '</div>' | html = html .. '</div>' | ||
-- Vraćamo HTML | -- Vraćamo HTML spreman za obradu | ||
return frame:preprocess(html) | return frame:preprocess(html) | ||
end | end | ||
return p | return p | ||
Inačica od 27. lipanj 2026. u 13:34
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