Module:Lua banner

Democratising Wireless Innovation
Jump to navigation Jump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

-- This module implements the

template.

local yesno = require('Module:Yesno') local mList = require('Module:List') local mTableTools = require('Module:TableTools') local mMessageBox = require('Module:Message box')

local p = {}

function p.main(frame) local origArgs = frame:getParent().args local args = {} for k, v in pairs(origArgs) do v = v:match('^%s*(.-)%s*$') if v ~= then args[k] = v end end return p._main(args) end

function p._main(args) local modules = mTableTools.compressSparseArray(args) local box = p.renderBox(modules) local trackingCategories = p.renderTrackingCategories(args, modules) return box .. trackingCategories end

function p.renderBox(modules) local boxArgs = {} if #modules < 1 then boxArgs.text = 'Error: no modules specified' else local moduleLinks = {} for i, module in ipairs(modules) do moduleLinks[i] = string.format('%s', module) end local moduleList = mList.makeList('bulleted', moduleLinks) boxArgs.text = 'Uses Lua:\n' .. moduleList end boxArgs.type = 'notice' boxArgs.small = true boxArgs.image = 'Lua logo' return mMessageBox.main('mbox', boxArgs) end

function p.renderTrackingCategories(args, modules, titleObj) if yesno(args.nocat) then return end

local cats = {}

-- Error category if #modules < 1 then cats[#cats + 1] = 'Lua templates with errors' end

-- Lua templates category titleObj = titleObj or mw.title.getCurrentTitle() local subpageBlacklist = { doc = true, sandbox = true, sandbox2 = true, testcases = true } if titleObj.namespace == 10 and not subpageBlacklist[titleObj.subpageText] then local category = args.category if not category then local categories = { ['Module:String'] = 'Lua String-based templates', ['Module:Math'] = 'Templates based on the Math Lua module', ['Module:BaseConvert'] = 'Templates based on the BaseConvert Lua module', ['Module:Citation'] = 'Lua-based citation templates' } categories['Module:Citation/CS1'] = categories['Module:Citation'] category = modules[1] and categories[modules[1]] category = category or 'Lua-based templates' end cats[#cats + 1] = category end

for i, cat in ipairs(cats) do cats[i] = string.format(, cat) end return table.concat(cats) end

return p