Editing Module:Lua banner

Jump to navigation Jump to search
Warning: You are not logged in. Your IP address will be publicly visible if you make any edits. If you log in or create an account, your edits will be attributed to your username, along with other benefits.

The edit can be undone. Please check the comparison below to verify that this is what you want to do, and then publish the changes below to finish undoing the edit.

Latest revision Your text
Line 5: Line 5:
local mTableTools = require('Module:TableTools')
local mTableTools = require('Module:TableTools')
local mMessageBox = require('Module:Message box')
local mMessageBox = require('Module:Message box')
local TNT = require('Module:TNT')


local p = {}
local p = {}
local function format(msg)
return TNT.format('I18n/Lua banner', msg)
end
local function getConfig()
return mw.loadData('Module:Lua banner/config')
end


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


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


function p.renderBox(modules, cfg)
function p.renderBox(modules)
local boxArgs = {}
local boxArgs = {}
if #modules < 1 then
if #modules < 1 then
cfg = cfg or getConfig()
boxArgs.text = '<strong class="error">Error: no modules specified</strong>'
if cfg['allow_wishes'] then
boxArgs.text = format('wishtext')
else
boxArgs.text = string.format('<strong class="error">%s</strong>', format('error_emptylist'))
end
else
else
local moduleLinks = {}
local moduleList = mList.makeList('bulleted', modules)
for i, module in ipairs(modules) do
boxArgs.text = 'Uses [[Wikipedia:Lua|Lua]]:\n' .. moduleList
moduleLinks[i] = string.format('[[:%s]]', module)
end
local moduleList = mList.makeList('bulleted', moduleLinks)
boxArgs.text = format('header') .. '\n' .. moduleList
end
end
boxArgs.type = 'notice'
boxArgs.type = 'notice'
boxArgs.small = true
boxArgs.small = true
boxArgs.image = string.format(
boxArgs.image = '[[File:Lua-logo-nolabel.svg|30px|alt=Lua logo|link=Wikipedia:Lua]]'
'[[File:Lua-logo-nolabel.svg|30px|alt=%s|link=%s]]',
format('logo_alt'),
format('logo_link')
)
return mMessageBox.main('mbox', boxArgs)
return mMessageBox.main('mbox', boxArgs)
end
end


function p.renderTrackingCategories(args, modules, titleObj, cfg)
function p.renderTrackingCategories(args, modules, titleObj)
if yesno(args.nocat) then
if yesno(args.nocat) then
return ''
return ''
end
end
cfg = cfg or getConfig()
local cats = {}
local cats = {}
-- Error category
-- Error category
if #modules < 1 and not cfg['allow_wishes'] and cfg['error_category'] then
if #modules < 1 then
cats[#cats + 1] = cfg['error_category']
cats[#cats + 1] = 'Lua templates with errors'
end
end
-- Lua templates category
-- Lua templates category
titleObj = titleObj or mw.title.getCurrentTitle()
local titleObj = titleObj or mw.title.getCurrentTitle()
local subpageBlacklist = {
doc = true,
sandbox = true,
sandbox2 = true,
testcases = true
}
if titleObj.namespace == 10  
if titleObj.namespace == 10  
and not cfg['subpage_blacklist'][titleObj.subpageText]
and not subpageBlacklist[titleObj.subpageText]
then
then
local category = args.category
local category = args.category
if not category then
if not category then
local pagename = modules[1] and mw.title.new(modules[1])
local categories = {
category = pagename and cfg['module_categories'][pagename.text]
['Module:String'] = 'Lua String-based templates',
if not category then
['Module:Math'] = 'Templates based on the Math Lua module',
if cfg['allow_wishes'] and #modules < 1 then
['Module:BaseConvert'] = 'Templates based on the BaseConvert Lua module',
category = cfg['wish_category']
['Module:Citation'] = 'Lua-based citation templates'
else
}
category = cfg['default_category']
categories['Module:Citation/CS1'] = categories['Module:Citation']
end
category = modules[1] and categories[modules[1]]
end
category = category or 'Lua-based templates'
end
if category then
cats[#cats + 1] = category
end
end
cats[#cats + 1] = category
end
end
Please note that all contributions to Meta Wiki may be edited, altered, or removed by other contributors. If you do not want your writing to be edited mercilessly, then do not submit it here.
You are also promising us that you wrote this yourself, or copied it from a public domain or similar free resource (see Meta Wiki:Copyrights for details). Do not submit copyrighted work without permission!
Cancel Editing help (opens in new window)

Template used on this page: