HerrHulaHoop (talk | contribs) m (test7) Tag: Reverted |
HerrHulaHoop (talk | contribs) m (test8) Tag: Reverted |
||
Line 59: | Line 59: | ||
-- Process the arguments | -- Process the arguments | ||
for k, v in pairs(args) do | for k, v in pairs(args) do | ||
-- Check if the argument | -- Check if the argument follows the REGION|LABEL format | ||
local region, label = v:match('^%s*([A-Z][A-Z][A-Z]?)%s* | local region, label = v:match('^%s*([A-Z][A-Z][A-Z]?)%s*|%s*(.-)%s*$') | ||
if region and label then | if region and label then | ||
local localLabel = getLocalLabel(region) | local localLabel = getLocalLabel(region) | ||
Line 78: | Line 78: | ||
local out = list.makeList(listformat, items) | local out = list.makeList(listformat, items) | ||
-- Preview message and category | |||
local parameterMsg = require('Module:If preview')._warning({ | |||
'Unknown parameter "_VALUE_".' | |||
}) .. "[[Category:Pages using vgregion with named parameters|_VALUE_]]" | |||
-- Check for invalid parameters | |||
for k, v in pairs(args) do | |||
if (type(k) ~= 'number' and knownargs[k] ~= true) then | |||
local msg = parameterMsg:gsub('_VALUE_', k) | |||
out = out .. msg | |||
end | |||
end | |||
return out | return out |
Revision as of 18:34, 17 March 2024
Documentation for this module may be created at Module:Test/doc
require('strict') local getArgs = require('Module:Arguments').getArgs local list = require('Module:List') local p = {} local knownargs = { ['format'] = true, ['class'] = true, ['style'] = true, ['list_style'] = true, ['item_style'] = true, ['item1_style'] = true, ['indent'] = true } local labels = { ['NA'] = "[[:Category:North America (Release region)|NA]]", ['EU'] = "[[:Category:Europe (Release region)|EU]]", ['AU'] = "[[:Category:Australia (Release region)|AU]]", ['PAL'] = "[[:Category:Europe (Release region)|PAL]]", ['JP'] = "[[:Category:Japan (Release region)|JP]]", ['WW'] = "<abbr title=\"Worldwide\">WW</abbr>" } local function getLocalLabel(alias) local label = labels[string.upper(alias)] return label end local function splitLabel(s) local islist = true local res = {} for k,v in ipairs(mw.text.split(s or '', '%s*/%s*')) do local v1 = v:match('^%s*([A-Z][A-Z][A-Z]?)%s*$') if v1 then table.insert(res,v1) else local v2 = v:match('^%s*(%[%[[^%[%]|]*|[A-Z][A-Z][A-Z]?%]%])%s*$') if v2 then table.insert(res,v2) else islist = false end end end return islist and res or {s} end function p.main(frame) local args = getArgs(frame) local listformat = args['format'] if (listformat == nil or listformat == "") then listformat = "unbulleted" end local items = {} -- Process the arguments for k, v in pairs(args) do -- Check if the argument follows the REGION|LABEL format local region, label = v:match('^%s*([A-Z][A-Z][A-Z]?)%s*|%s*(.-)%s*$') if region and label then local localLabel = getLocalLabel(region) if localLabel then label = localLabel .. '|' .. label end table.insert(items, "<span style=\"font-size:97%;\">[[" .. label .. "]]:</span> " .. k) end end -- Add known parameters of Module:List to the table for k, v in pairs(args) do if (knownargs[k] == true) then items[k] = v end end local out = list.makeList(listformat, items) -- Preview message and category local parameterMsg = require('Module:If preview')._warning({ 'Unknown parameter "_VALUE_".' }) .. "[[Category:Pages using vgregion with named parameters|_VALUE_]]" -- Check for invalid parameters for k, v in pairs(args) do if (type(k) ~= 'number' and knownargs[k] ~= true) then local msg = parameterMsg:gsub('_VALUE_', k) out = out .. msg end end return out end return p