localp={}-- display a gallery of cladograms using floating div elementsfunctionp.gallery(frame)localparams=mw.getCurrentFrame():getParent().argslocalouterBorders=falseifparams['caption']orparams['footer']thenouterBorders=trueend-- the gallery containerlocalgallery=mw.html.create('div'):addClass('clade-gallery'):css('float',params['align'])-- main caption for gallery if there is oneifparams['main-caption']thengallery:tag('div'):wikitext(params['main-caption']):addClass('main-caption')end-- a gallery of floating divs with contentlocalshading=''ifparams['shading']thenshading='wikitable'end-- class for shadinglocalvertical=''-- defaults to horizontalifparams['vertical']thenvertical='vertical'end-- class for vertical displaylocalstyleAll=params['style']or''-- style for all elementslocalmainBorders=''localelementBorders=''ifnotparams['main-borders']orparams['main-borders']=="no"thenmainBorders='no-border'endifparams['borders']=="no"thenelementBorders='no-border'end-- the gallery contentslocalcontent=gallery:tag('div'):addClass('main-content'):addClass(mainBorders)--:css('height',params['height']) locali=0whilei<15doi=i+1localcaption=params['caption'..i]--or ''localheader=params['header'..i]--or ''localfooter=params['footer'..i]--or ''localstyle=params['style'..i]orstyleAlllocalheaderstyle=params['headerstyle'..i]orparams['headerstyle']localwidth=params['width'..i]orparams['width']-- for each gallery element containing a cladogramifparams['cladogram'..i]thenlocalcladogramTable=content:tag('table'):addClass(elementBorders):addClass(shading):addClass('gallery-element'):addClass(vertical):css('width',width):css('height',params['height']):cssText(style)ifcaptionthencladogramTable:tag('caption'):wikitext(caption):addClass('caption')endifheaderthenlocalrow=cladogramTable:tag('tr'):addClass('header')row:tag('th'):wikitext(header):cssText(headerstyle)end-- if params['cladogram'..i] already checkedlocalrow=cladogramTable:tag('tr')row:tag('td'):wikitext("\n"..params['cladogram'..i]):addClass('cladogram')--:css("padding", "20px")-- :css('width',params['cladogram-width']) --:css('height',params['cladogram-height']) :css('height',params['height'])iffooterthenlocalrow=cladogramTable:tag('tr')row:tag('td'):wikitext(footer):addClass('footer'):addClass(shading)end--[[DIV VERSION - different browsers behave differently -- the div containing each element in the gallery local div = content:tag('div'):addClass('gallery-element'):addClass(direction) :css('width',params['width']) :css('height',params['height']) -- the caption, header, content and footer for each element if caption then div:tag('div'):wikitext(caption):addClass('caption'):addClass(shading) end if header then div:tag('div'):wikitext(header):addClass('header'):addClass(shading) end div:tag('div'):wikitext(params['cladogram'..i]):addClass('cladogram'):addClass(shading) :css('width',params['cladogram-width']) :css('height',params['cladogram-height']) if footer then div:tag('div'):wikitext(footer):addClass('footer'):addClass(shading) end END DIV VERSION--]]else--break -- either break or comment out to allow gaps in sequenceendend-- main footerifparams['main-footer']thengallery:tag('div'):wikitext(params['main-footer']):addClass('main-footer'):addClass(noborder)end-- TemplateStyles filelocalsrc="Template:Clade gallery/styles.css"returnp.templateStyle(frame,src)..tostring(gallery)endfunctionp.templateStyle(frame,src)returnframe:extensionTag('templatestyles','',{src=src});end-- this must be at endreturnp