Module:Military navigation and Module:Military navigation/sandbox: Difference between pages
(Difference between pages)
imported>Ahecht give frame priority over parent to avoid script errors |
imported>Izno sync |
||
| Line 7: | Line 7: | ||
return (not s) or s == '' | return (not s) or s == '' | ||
end | end | ||
local function | local function isnotblank(s) | ||
return | return s and s ~= '' | ||
end | end | ||
| Line 14: | Line 14: | ||
local args = { } | local args = { } | ||
local pargs = frame:getParent().args | local pargs = frame:getParent().args | ||
local sargs = {} | local sargs = {} | ||
local tcats = '' | local tcats = '' | ||
-- process bodystyle and titlestyle | -- process bodystyle and titlestyle | ||
if (pargs['style'] or '') == 'wide' then | |||
args['titlestyle'] = Styles['nav_box_wide_header'] | args['titlestyle'] = Styles['nav_box_wide_header'] | ||
args['bodystyle'] = Styles['nav_box_wide'] | args['bodystyle'] = Styles['nav_box_wide'] | ||
else | else | ||
args['titlestyle'] = Styles['nav_box_header'] | args['titlestyle'] = Styles['nav_box_header'] | ||
if (pargs['border'] or '') == 'child' or | |||
(pargs['border'] or '') == 'subgroup' then | |||
args['bodystyle'] = Styles['nav_box_child'] | args['bodystyle'] = Styles['nav_box_child'] | ||
tcats = tcats .. '[[Category:Pages using military navigation subgroups without wide style]]' | tcats = tcats .. '[[Category:Pages using military navigation subgroups without wide style]]' | ||
| Line 37: | Line 35: | ||
-- process groupstyle, abovestyle, belowstyle | -- process groupstyle, abovestyle, belowstyle | ||
args['groupstyle'] = Styles['nav_box_label'] .. ( | args['groupstyle'] = Styles['nav_box_label'] .. (pargs['groupstyle'] or '') | ||
sargs['groupstyle'] = 1 | sargs['groupstyle'] = 1 | ||
args['abovestyle'] = Styles['nav_box_label'] .. ( | args['abovestyle'] = Styles['nav_box_label'] .. (pargs['abovestyle'] or '') | ||
sargs['abovestyle'] = 1 | sargs['abovestyle'] = 1 | ||
args['belowstyle'] = Styles['nav_box_label'] .. ( | args['belowstyle'] = Styles['nav_box_label'] .. (pargs['belowstyle'] or '') | ||
sargs['belowstyle'] = 1 | sargs['belowstyle'] = 1 | ||
-- process oddstyle, evenstyle | -- process oddstyle, evenstyle | ||
args['oddstyle'] = | args['oddstyle'] = isnotblank(pargs['odd_color']) | ||
and ('background:' .. pargs['odd_color']) or nil | |||
sargs['oddstyle'] = 1 | sargs['oddstyle'] = 1 | ||
args['evenstyle'] = isnotblank(pargs['even_color']) | |||
and ('background:' .. pargs['even_color']) or nil | |||
sargs['evenstyle'] = 1 | sargs['evenstyle'] = 1 | ||
-- process name and rawname | -- process name and rawname | ||
args['name'] = | args['name'] = (isnotblank(pargs['name']) and pargs['name']) or pargs['rawname'] | ||
if isblank(args['name']) then args['navbar'] = 'plain' end | if isblank(args['name']) then args['navbar'] = 'plain' end | ||
sargs['name'] = 1 | sargs['name'] = 1 | ||
sargs['rawname'] = 1 | sargs['rawname'] = 1 | ||
-- copy the remaining | -- copy the remaining args | ||
for k, v in pairs(pargs) do | for k, v in pairs(pargs) do | ||
if v and v ~= '' and sargs[k] == nil then | if v and v ~= '' and sargs[k] == nil then | ||
args[k] = v | args[k] = v | ||
| Line 66: | Line 61: | ||
end | end | ||
-- add allow wrap | -- add allow wrap | ||
if args['title'] and style ~= 'wide' then | if args['title'] and (pargs['style'] or '') ~= 'wide' then | ||
if not mw.ustring.match(args['title'], '<span class="wrap">') then | if not mw.ustring.match(args['title'], '<span class="wrap">') then | ||
-- probably a more efficient way to match 15 or more characters | -- probably a more efficient way to match 15 or more characters | ||
| Line 81: | Line 76: | ||
-- add navbox-vertical for non-wide format | -- add navbox-vertical for non-wide format | ||
if style ~= 'wide' then | if (pargs['style'] or '') ~= 'wide' then | ||
args['bodyclass'] = 'navbox-vertical' .. (args['bodyclass'] and (' ' .. args['bodyclass']) or '') | args['bodyclass'] = 'navbox-vertical' .. (args['bodyclass'] and (' ' .. args['bodyclass']) or '') | ||
end | end | ||