Module:Infobox: Difference between revisions

base infobox
 
padding 0.5em 1em
 
(32 intermediate revisions by the same user not shown)
Line 4: Line 4:
local args = frame:getParent().args
local args = frame:getParent().args
local root = mw.html.create('table')
local root = mw.html.create('table')
:addClass('infobox')
    :addClass('infobox')
:css('width', '250px')
    :css('border', '1px solid var(--vw-border)')
:css('border', '1px solid #ccc')
    :css('border-radius', '4px')
:css('font-size', '90%')
    :css('overflow', 'hidden')
:css('float', 'right')
    :css('font-size', '90%')
:css('margin', '0 0 1em 1em')
    :css('background', 'var(--vw-bg-subtle)')
:css('border-collapse', 'collapse')
    :css('padding-bottom', '4px')
:css('background', '#fff')
 
local light = (args['titlebg-light'] and args['titlebg-light'] ~= '') and args['titlebg-light'] or 'var(--vw-accent-subtle)'
-- Title
local dark  = (args['titlebg-dark']  and args['titlebg-dark']  ~= '') and args['titlebg-dark']  or 'var(--vw-accent-subtle)'
local titlebg = 'light-dark(' .. light .. ', ' .. dark .. ')'
if args.title and args.title ~= '' then
if args.title and args.title ~= '' then
root:tag('tr')
    root:tag('tr')
:tag('th')
        :tag('th')
:attr('colspan', '2')
            :attr('colspan', '2')
:css('text-align', 'center')
            :css('width', '100%')
:css('background', '#C2637A')
            :css('text-align', 'center')
:css('color', '#fff')
            :css('font-size', '125%')
:css('padding', '6px')
            :css('background', titlebg)
:wikitext(args.title)
            :css('padding', '0.5em 1em')
            :wikitext(args.title)
end
end
 
-- Image
-- Image
if args.image and args.image ~= '' then
if args.image and args.image ~= '' then
local caption = args.caption or ''
    local caption = args.caption or ''
root:tag('tr')
    local imgBottomPad = caption ~= '' and '6px 6px 2px 6px' or '6px'
:tag('td')
    root:tag('tr')
:attr('colspan', '2')
        :tag('td')
:css('text-align', 'center')
            :attr('colspan', '2')
:css('padding', '6px')
            :css('text-align', 'center')
:wikitext('[[File:' .. args.image .. '|200px]]')
            :css('padding', imgBottomPad)
if caption ~= '' then
            :wikitext('[[File:' .. args.image .. '|300px]]')
root:tag('tr')
    if caption ~= '' then
:tag('td')
        root:tag('tr')
:attr('colspan', '2')
            :tag('td')
:css('text-align', 'center')
                :attr('colspan', '2')
:css('font-size', '85%')
                :css('text-align', 'center')
:css('padding', '2px 6px')
                :css('padding', '0px 6px 4px 6px')
:wikitext(caption)
                :wikitext(caption)
end
    end
end
end


-- Data rows
-- Data rows
local i = 1
local i = 1
while args['label' .. i] or args['data' .. i] do
while args['label' .. i] or args['data' .. i] or args['header' .. i] do
local label = args['label' .. i]
local header = args['header' .. i]
local data = args['data' .. i]
local label = args['label' .. i]
if data and data ~= '' then
local data   = args['data' .. i]
 
if header and header ~= '' then
root:tag('tr')
:tag('th')
:attr('colspan', '2')
:css('width', '100%')
:css('text-align', 'center')
:css('background', 'var(--vw-bg-heading)')
:css('padding', '4px 6px')
:wikitext(header)
elseif data and data ~= '' then
local row = root:tag('tr')
local row = root:tag('tr')
if label and label ~= '' then
if label and label ~= '' then
row:tag('th')
row:tag('th')
:css('text-align', 'left')
:css('text-align', 'left')
:css('padding', '4px 6px')
:css('padding', '2px 6px 2px 6px')
:css('background', '#fdf5f5')
:css('background', 'var(--vw-bg-subtle)')
:css('width', '45%')
:css('width', '45%')
:wikitext(label)
:wikitext(label)
end
end
row:tag('td')
row:tag('td')
:css('padding', '4px 6px')
:css('padding', '2px 6px 2px 6px')
:attr('colspan', (label and label ~= '') and '1' or '2')
:attr('colspan', (label and label ~= '') and '1' or '2')
:wikitext(data)
:wikitext(data)
Line 67: Line 81:
i = i + 1
i = i + 1
end
end
return tostring(root)
return tostring(root)
end
end


return p
return p