Module:Navbox/sandbox: Difference between revisions

Content deleted Content added
string methods to object versions
Tag: Reverted
we can probably simplify this since the only valid css to send to navbar is the color?
Tag: Reverted
Line 81:
end
 
-- removeextract unwantedcolor from css
local function sanitizeCSSextractcolor(str)
return mw.ustring.match(';' .. str .. ';', '.*;%s*([Cc][Oo][Ll][Oo][Rr]%s*:%s*.-)%s*;') or ''
local disallowed_css = {
'border', -- border
'border%-.+', -- border subproperties
'background', -- background
'background%-.+', -- background subproperties
'box%-shadow', -- box-shadow
'padding', -- padding
'padding%-.+', -- padding subproperties
}
local split_rules = mw.text.split(str, ';')
local properties_and_values = {}
for k, v in ipairs(split_rules) do
split_rules[k] = mw.text.trim(v)
properties_and_values[k] = mw.text.split(v, ':')
end
for k, t in ipairs(properties_and_values) do
for _, v in ipairs(disallowed_css) do
if mw.text.trim(t[1]):lower():match(v) then
table.remove(split_rules, k)
break -- because we are done with the kth table
end
end
end
 
return table.concat(split_rules, ';')
end
 
Line 116 ⟶ 91:
[cfg.navbar.name] = args[cfg.arg.name],
[cfg.navbar.mini] = 1,
[cfg.navbar.fontstyle] = sanitizeCSSextractcolor(
(args[cfg.arg.basestyle] or '') .. ';' .. (args[cfg.arg.titlestyle] or '')
)