Module:Flex columns
Jump to navigation
Jump to search
This documentation is transcluded from Module:Flex columns/doc. (Edit | history)
Note to editors: Please don't categorize this template by editing it directly. Instead, place the category in its documentation page, in its "includeonly" section.
Note to editors: Please don't categorize this template by editing it directly. Instead, place the category in its documentation page, in its "includeonly" section.
Usage
Implements {{Flex columns}}
local p = {}
local function setCleanArgs(argsTable)
local cleanArgs = {}
for key, val in pairs(argsTable) do
if type(val) == 'string' then
val = val:match('^%s*(.-)%s*$')
if val ~= '' then
cleanArgs[key] = val
end
else
cleanArgs[key] = val
end
end
return cleanArgs
end
p.main = function(frame)
local parent = frame.getParent(frame)
local output = p._main(parent.args)
return -- frame:extensionTag{
-- name='templatestyles', args = { src='Module:Flex columns/styles.css'}
-- } ..
frame:preprocess(output)
end
p._main = function(_args)
local args = setCleanArgs(_args)
local ii = 1
local container = mw.html.create('div')
:css('clear', 'both' )
:css('width', '100%' )
:css('display', 'flex' )
:css('flex-wrap', 'wrap' )
while args[ii] do
local column = container:tag('div')
:css('float', 'left' )
:css('width', '50%' )
:css('min-width', '360px')
:css('padding', '0 0.5em')
:css('box-sizing', 'border-box')
:css('flex', '1')
:css('display', 'flex')
:css('flex-direction', 'column')
:wikitext(args[ii])
if ii==1 then
column:css('padding-left',0)
end
if not(args[ii+1]) then
column:css('padding-right',0)
end
if args['flex'..ii] then
column:css('flex', args['flex'..ii])
end
ii = ii + 1
end
return tostring(container)
end
return p