Deze module is nog in ontwikkeling (versie 0.0) en wordt getest.
De Module:Layout is bedoeld om snel, consistent en uitgebreid een pagina op te maken.
Er is een op de module afgestemde handleiding over deze onderwijswiki beschikbaar.
-- This view returns a Table of Contentslocaltoc={};-- For now only a floating TOC is returnedfunctiontoc.main(call)localresponse="";response=toc.float();returnresponse;endfunctiontoc.float()localtoc=mw.html.create('div');toc:addClass('toc');toc:css('float','left');toc:wikitext('__TOC__');returntostring(toc);endfunctiontoc.none()localtoc=mw.html.create('div');toc:wikitext('__NOTOC__');returntostring(toc);endfunctiontoc.box(elements,max_elements_title_lines,max_subelements)localtoc_box_wrapper=mw.html.create('div');toc_box_wrapper:css({['margin']='0 auto',['text-align']='center'})localtoc_box=mw.html.create('div');toc_box:css({['display']='flex',['flex-wrap']='wrap',['justify-content']='center',['align-items']='flex-start',['gap']='20px',})ifelementsthenlocalall_elements_content=""fori,elementinipairs(elements)doall_elements_content=all_elements_content..toc.element(element.number,element.text,element.caption,element.subelements,element.button,max_elements_title_lines,max_subelements)endtoc_box:wikitext(all_elements_content)endtoc_box_wrapper:node(toc_box);returntostring(toc_box_wrapper);endfunctiontoc.element(number,text,caption,subelements,button,max_title_lines,max_subelements)localdiv=mw.html.create('div'):css('font',"13px 'Lucida Sans', 'trebuchet MS', Arial, Helvetica"):css('background','#fff'):css('border','2px solid #ddd'):css('color','#333'):css('padding','20px'):css('width','180px'):css('float','left'):css('position','relative'):css('margin','5px 5px'):css('box-shadow','0 2px 2px -1px rgba(0,0,0,.3)')localcalculated_height=max_title_lines*20localdivTitle=mw.html.create('div'):css('position','relative'):css('font-size','20px'):css('font-weight','normal'):css('text-transform','uppercase'):css('padding','40px'):css('margin','-20px -20px 20px -20px'):css('border-bottom','8px solid'):css('background-color','#eee'):css('color','black'):css('background-image','linear-gradient(#fff, #eee)'):css('border-bottom-color',mw.ustring.format('{{#IfEq: {{IsEven|%s}} | true | #040034 | #0B0080 }}',number)):css('white-space','normal'):css('overflow','hidden'):css('text-overflow','ellipsis'):css('overflow-wrap','break-word'):css('height',tostring(calculated_height)..'px'):css('display','flex'):css('align-items','center'):css('justify-content','center'):wikitext(text)div:node(divTitle)div:tag('div'):css('font-size','13px'):css('margin-bottom','20px'):css('text-transform','uppercase'):css('color','#999'):wikitext(caption)div:tag('div'):css('font-size','45px'):wikitext(number)localcalculated_height=math.min(max_subelements*38,400)localsubelements_div=mw.html.create('div'):css('display','block'):css('height',tostring(calculated_height)..'px'):css('overflow-y','hidden'):css('margin-top','30px'):css('margin-bottom','30px')localul=mw.html.create('ul'):css('margin','20px 0'):css('padding','0'):css('list-style','none'):css('height','100%')ifsubelementsthenfori,subelementinipairs(subelements)dolocalli_output=subelement~='-'andmw.ustring.format('<b>%d.</b> %s',i,subelement)or' ';ifi>10thenli_output="↓↓↓"endlocalli=mw.html.create('li'):css('padding','10px 0'):wikitext(li_output)ul:node(li)endend-- Voeg de ul toe aan de divsubelements_div:node(ul)div:node(subelements_div)div:tag('div'):css('position','relative'):css('padding','10px 20px'):css('color','#fff'):css('font','bold 14px Arial, Helvetica'):css('text-transform','uppercase'):css('text-decoration','none'):css('display','inline-block'):css('background-color','#e7e5ff'):css('color','black'):css('border-radius','3px'):css('text-shadow','0 -1px 0 rgba(0,0,0,.15)'):css('opacity','.9'):wikitext(button)returntostring(div)endreturntoc;