Module:Blocks

local p = {}

function p.main(frame) local parent = frame:getParent local pages = {} local index = 1

while parent.args['page' .. index] or parent.args['content' .. index] do       local pageName = parent.args['page' .. index] local content = parent.args['content' .. index] local sectionName = parent.args['section' .. index] local pageDiv = mw.html.create('div'):addClass('blocks-block')

if sectionName then local editLink if pageName then editLink = mw.uri.fullUrl(pageName, {action = 'edit'}) elseif content then editLink = mw.uri.fullUrl(mw.title.getCurrentTitle.prefixedText, {action = 'edit'}) end local encodedEditLink = mw.text.encode(tostring(editLink)) local editButton = mw.html.create('span') :addClass('mw-editsection plainlinks') :wikitext('[ [' .. encodedEditLink .. ' edit] ]')

local heading = mw.html.create('h2') :wikitext(sectionName) :node(editButton) local headingContainer = mw.html.create('div') :addClass('heading-container') :node(heading) pageDiv:node(headingContainer) end

if pageName then local transcludedContent = frame:expandTemplate{title = pageName} pageDiv:wikitext('\n' .. transcludedContent) elseif content then pageDiv:wikitext('\n' .. content) end

table.insert(pages, pageDiv) index = index + 1 end

if #pages == 0 then return '' end

local mainDiv = mw.html.create('div') for _, pageDiv in ipairs(pages) do       mainDiv:node(pageDiv) end

return tostring(mainDiv) end

return p