Module:TabbedCard
Appearance
This documentation is transcluded from Module:TabbedCard/doc.
Renders a card with a Tabber within. Implements Template:TabbedCard.
require( 'strict' )
local MAX_WIKITEXT_TABS = 20
local tabber = mw.ext.tabber
local p = {}
--- Process the wikitext args
---
--- @param args table
--- @return table
local function processArgs( args )
local data = {
noPadding = args.noPadding,
tabber = {}
}
for i = 1, MAX_WIKITEXT_TABS do
local label = args[ 'label' .. i ]
local content = args[ 'content' .. i ]
if label and content then
table.insert( data.tabber, {
label = label,
content = content
} )
end
end
return data
end
--- Wikitext entry point for the module
---
--- @param frame mw.frame
--- @return string
function p.main( frame )
local getArgs = require( 'Module:Arguments' ).getArgs
return p._main( processArgs( getArgs( frame ) ) )
end
--- Lua entry point for the module
---
--- @param data table
--- @return string
function p._main( data )
local root = mw.html.create( 'div' )
root
:addClass( 't-tabbedCard' )
:wikitext( tabber.render( data.tabber ) )
if data.noPadding then
root:addClass( 't-tabbedCard--noPadding' )
end
return mw.getCurrentFrame():extensionTag {
name = 'templatestyles', args = { src = 'Module:TabbedCard/styles.css' }
} .. tostring( root )
end
return p