Module:Portal image banner/sandbox explained

local p = local randomModule = require('Module:Random')

p.main = function(frame) local parent = frame.getParent(frame) local parentArgs = parent.args local args = cleanupArgs(parentArgs) local output = p._main(args) return frame:preprocess(output)end

function cleanupArgs(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 cleanArgsend

p._main = function(args) if not args[1] then return error(linked and 'No page specified' or 'No page specified', 0) end local lines=makeGalleryLinesTable(args) return makeOutput(lines, args.overflow, args.maxheight, args.mode, args.croptop)end

function makeGalleryLine(file, caption, link, height) local title = mw.title.new(file, "File") local linktext = (link and 'link=' .. link or ) local imageSize = 'x' .. (height or '200px') return '' .. title.prefixedText ..(caption and''..caption or ).. imageSize .. linktext ..'' .. (caption and '\n

' .. caption ..'

' or '\n') end

function makeGalleryLineSlideshow(file, caption) local title = mw.title.new(file, "File") local captiontext= ' 

'..(caption or )..'' return title.prefixedText .. '' .. captiontext end

function makeGalleryLinesTable(args) local galleryLinesTable = local i = 1 while args[i] do if not args.mode then table.insert(galleryLinesTable, makeGalleryLine(args[i], args[i+1], args.link, args.height)) else if args.mode

'slideshow' then table.insert(galleryLinesTable, makeGalleryLineSlideshow(args[i], args[i+1], args.link)) else error('Mode not supported') end end i = i + 2 end return galleryLinesTable endfunction makeOutput(imageLines, overflow, maxHeight, mode, croptop) local randomiseArgs = local randomisedLines = randomModule.main('array', randomiseArgs) local output, galleryContent if not mode then galleryContent = table.concat(randomisedLines, '\n',1,1) seperate=mw.text.split(galleryContent,'\n') output = '

'..seperate[1]..'

'..seperate[2] else if mode

'slideshow' then galleryContent = table.concat(randomisedLines, '\n') output='

'..''..'

' else error('Mode not supported') end end return output endreturn p