Module:Administrators' noticeboard archives explained

local archiveList = require('Module:Archive list')

-- A table of the archives to display.local archives =

-- Gets wikitable rows filled with archive links, using-- .local function getLinks(funcArgs) if type(funcArgs) ~= 'table' then error('Invalid input to getLinks', 2) end funcArgs.sep = '\n| ' funcArgs.linesep = '\n|-\n| ' return mw.ustring.format('|-\n| %s', archiveList.main(funcArgs))end

-- Returns a Lua table with value being a list of archive links-- for one of the noticeboards listed in the archives table-- at the top of the module.local function getLinksTable(all) local t = for board, archive in pairs(archives) do local funcArgs = archive if not all then local archiveMax = archiveList.count(funcArgs) if type(archiveMax)

'number' and archiveMax >= 0 then funcArgs.max = math.floor(archiveMax) local start = funcArgs.max -19 if start < 1 then start = 1 end funcArgs.start = start end end t[board] = getLinks(funcArgs) end return tend

-- Build the wikitable using mw.ustring.format.local function buildWikitable(args) local t = getLinksTable(args.all) local frame = mw.getCurrentFrame

-- The following are defined here for convenience, as they recur frequently -- in the wikitable. local headerStyle = 'style="background-color: #ccf; font-size: 111%; line-height: 1.25em;" colspan="10"' local openSpan = '

' local closeSpan = '' local searchLink = "search" -- Community sanction archive links plus header. We define it here as it is optional. local csn = if args.csn

'yes' then csn = '\n|-\n! ' .. headerStyle .. ' | Community sanction archives ' .. openSpan .. "(search)" .. closeSpan .. '\n' .. t.csn end -- The inputbox plus header. We define it here as it is optional. local inputbox = if args.search

'yes' then inputbox = '\n|-\n! colspan="10" style="white-space: nowrap;" | ' .. frame:preprocess([==[ <inputbox> bgcolor=transparent type=fulltext prefix=Wikipedia:Administrators' noticeboard break=no width=32 searchbuttonlabel=Search placeholder=Search noticeboards archives </inputbox>]

])

end local bottom_list = require('Module:List').horizontal return mw.ustring.format([==[ <div style="float: right; clear: right; margin: 0 0 1em 1em; text-align: right"> {| class="noprint" style="background-color: #fdfdfd; clear: both; padding: 1px; box-sizing: border-box; border: 1px solid #a2a9b1; font-size:88%%; line-height:1.2em; margin:0; width:auto; text-align:center" |+ Noticeboard archives |- ! %s | [[Wikipedia:Administrators' noticeboard|Administrators']] %s(archives, %s)%s%s|-! %s | Incidents %s(archives, %s)%s%s|-! %s | Edit-warring/3RR %s(archives, %s)%s%s|-! %s | Arbitration enforcement %s(archives)%s%s%s|-! %s |Other links|-|colspan="10" style="text-align: center;"| %s%s|}

__NOINDEX__]

], headerStyle, openSpan, searchLink, closeSpan, t.an, headerStyle, openSpan, searchLink, closeSpan, t.ani, headerStyle, openSpan, searchLink, closeSpan, t['3rr'], headerStyle, openSpan, closeSpan, t.ae, csn, headerStyle, bottom_list, inputbox) end

function makeWrapper(all) return function(frame) -- If we are being called from #invoke, get the args from #invoke -- if they exist, or else get the arguments passed to the parent -- frame. Otherwise, assume the arguments are being passed directly -- in from another module or from the debug console. local origArgs if frame