Difference between revisions of "Module:Military navigation"
Jump to navigation
Jump to search
blackwiki>Frietjes |
blackwiki>Frietjes (skip args) |
||
| Line 14: | Line 14: | ||
local args = { } | local args = { } | ||
local pargs = frame:getParent().args | local pargs = frame:getParent().args | ||
| + | local sargs = {} | ||
-- process bodystyle and titlestyle | -- process bodystyle and titlestyle | ||
| Line 27: | Line 28: | ||
end | end | ||
end | end | ||
| − | + | sargs['titlestyle'] = 1 | |
| − | + | sargs['bodystyle'] = 1 | |
-- process groupstyle, abovestyle, belowstyle | -- process groupstyle, abovestyle, belowstyle | ||
args['groupstyle'] = Styles['nav_box_label'] .. (pargs['groupstyle'] or '') | args['groupstyle'] = Styles['nav_box_label'] .. (pargs['groupstyle'] or '') | ||
| − | + | sargs['groupstyle'] = 1 | |
args['abovestyle'] = Styles['nav_box_label'] .. (pargs['abovestyle'] or '') | args['abovestyle'] = Styles['nav_box_label'] .. (pargs['abovestyle'] or '') | ||
| − | + | sargs['abovestyle'] = 1 | |
args['belowstyle'] = Styles['nav_box_label'] .. (pargs['belowstyle'] or '') | args['belowstyle'] = Styles['nav_box_label'] .. (pargs['belowstyle'] or '') | ||
| − | + | sargs['belowstyle'] = 1 | |
-- process oddstyle, evenstyle | -- process oddstyle, evenstyle | ||
args['oddstyle'] = isnotblank(pargs['odd_color']) | args['oddstyle'] = isnotblank(pargs['odd_color']) | ||
and ('background:' .. pargs['odd_color']) or nil | and ('background:' .. pargs['odd_color']) or nil | ||
| + | sargs['oddstyle'] = 1 | ||
| + | sargs['evenstyle'] = 1 | ||
args['evenstyle'] = isnotblank(pargs['even_color']) | args['evenstyle'] = isnotblank(pargs['even_color']) | ||
and ('background:' .. pargs['even_color']) or nil | and ('background:' .. pargs['even_color']) or nil | ||
| − | |||
| − | |||
-- process name and rawname | -- process name and rawname | ||
args['name'] = (isnotblank(pargs['name']) and pargs['name']) or pargs['rawname'] | 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['rawname'] = 1 | |
-- copy the remaining args | -- copy the remaining args | ||
for k, v in pairs(pargs) do | for k, v in pairs(pargs) do | ||
| − | if v and v ~= '' then | + | if v and v ~= '' and sargs[k] == nil then |
args[k] = v | args[k] = v | ||
end | end | ||
Revision as of 22:24, 5 May 2017
| 40x40px | This module is subject to page protection. It is a highly visible module in use by a very large number of pages, or is substituted very frequently. Because vandalism or mistakes would affect many pages, and even trivial editing might cause substantial load on the servers, it is protected from editing. |
{{Wikipedia:WikiProject Military history/Military navigation}}
local p = { }
local Navbox = require('Module:Navbox')
local Styles = require('Module:WPMILHIST Infobox style')
local function isblank(s)
return (not s) or s == ''
end
local function isnotblank(s)
return s and s ~= ''
end
function p.main(frame)
local args = { }
local pargs = frame:getParent().args
local sargs = {}
-- process bodystyle and titlestyle
if (pargs['style'] or '') == 'wide' then
args['titlestyle'] = Styles['nav_box_wide_header']
args['bodystyle'] = Styles['nav_box_wide']
else
args['titlestyle'] = Styles['nav_box_header']
if (pargs['border'] or '') == 'child' then
args['bodystyle'] = Styles['nav_box_child']
else
args['bodystyle'] = Styles['nav_box']
end
end
sargs['titlestyle'] = 1
sargs['bodystyle'] = 1
-- process groupstyle, abovestyle, belowstyle
args['groupstyle'] = Styles['nav_box_label'] .. (pargs['groupstyle'] or '')
sargs['groupstyle'] = 1
args['abovestyle'] = Styles['nav_box_label'] .. (pargs['abovestyle'] or '')
sargs['abovestyle'] = 1
args['belowstyle'] = Styles['nav_box_label'] .. (pargs['belowstyle'] or '')
sargs['belowstyle'] = 1
-- process oddstyle, evenstyle
args['oddstyle'] = isnotblank(pargs['odd_color'])
and ('background:' .. pargs['odd_color']) or nil
sargs['oddstyle'] = 1
sargs['evenstyle'] = 1
args['evenstyle'] = isnotblank(pargs['even_color'])
and ('background:' .. pargs['even_color']) or nil
-- process name and rawname
args['name'] = (isnotblank(pargs['name']) and pargs['name']) or pargs['rawname']
if isblank(args['name']) then args['navbar'] = 'plain' end
sargs['name'] = 1
sargs['rawname'] = 1
-- copy the remaining args
for k, v in pairs(pargs) do
if v and v ~= '' and sargs[k] == nil then
args[k] = v
end
end
-- add allow wrap
if args['title'] and (pargs['style'] or '') ~= 'wide' then
if not mw.ustring.match(args['title'], '<span class="wrap">') then
local p = '[^%[%]<>|][^%[%]<>|][^%[%]<>|][^%[%]<>|][^%[%]<>|]'
local p = p .. p .. p
args['title'] = mw.ustring.gsub(args['title'],
'%[%[(' .. p .. '[^%[%]<>|]*)%]%]',
'[[%1|<span class="wrap">%1</span>]]')
args['title'] = mw.ustring.gsub(args['title'],
'%[%[([^%[%]<>|]*)|(' .. p .. '[^%[%]<>|]*)%]%]',
'[[%1|<span class="wrap">%2</span>]]')
end
end
return Navbox._navbox(args)
end
return p