Module:Protection banner/documentation explained

-- This module generates documentation for .

---------------------------------------------------------------------------------- Documentation class--------------------------------------------------------------------------------

local Documentation = Documentation.__index = Documentation

function Documentation:new(mainCfg, docCfg) return setmetatable(self)end

function Documentation:makeReasonTable -- Get the data from the cfg.banners table. local rowData = for action, reasonTables in pairs(self._mainCfg.banners) do for reason, t in pairs(reasonTables) do rowData[#rowData + 1] = end end

-- Sort the table into alphabetical order, first by action and then by -- reason. table.sort(rowData, function (t1, t2) if t1.action

t2.action then return t1.reason < t2.reason else return t1.action < t2.action end end) -- Assemble a wikitable of the data. local ret = ret[#ret + 1] = '

-' ret[#ret + 1] = string.format('%s', self._docCfg['documentation-blurb-noreasons'] ) else -- Header ret[#ret + 1] = '-' ret[#ret + 1] = string.format('! %s\n%s\n! %s', self._docCfg['documentation-heading-reason'], self._docCfg['documentation-heading-action'], self._docCfg['documentation-heading-description'] ) -- Rows for _, t in ipairs(rowData) do ret[#ret + 1] = '-' ret[#ret + 1] = string.format('%s\n%s\n%s', t.reason, t.action, t.description or ) end end ret[#ret + 1] = '
' return table.concat(ret, '\n')end

---------------------------------------------------------------------------------- Exports--------------------------------------------------------------------------------

local p =

function p.reasonTable local mainCfg = require('Module:Protection banner/config') local docCfg = require('Module:Protection banner/documentation/config') local documentationObj = Documentation:new(mainCfg, docCfg) return documentationObj:makeReasonTableend

return p