Module:Flag: Difference between revisions
Jump to navigation
Jump to search
(Add flag team) |
m (1 revision imported) |
||
(No difference)
|
Latest revision as of 19:46, 6 November 2024
Documentation for this module may be created at Module:Flag/doc
local margs = require('Module:Arguments') local function _main(frame, name, mode) local categories = { ['Flag icon'] = '[[Category:Flag icons missing country data templates]]', ['Flag decoration'] = '[[Category:Flag decoration missing country data templates]]', } local yesno = require('Module:Yesno') --Get input arguments local args = margs.getArgs(frame, { frameOnly = ((frame.args.frameonly or '') ~= ''), valueFunc = function(key,value) if value then value = mw.text.trim(value) --Change empty string to nil for all args except 'image' and 'border' if key=="image" or key=="border" or value~="" then return value end end return nil end } ) local preftext, sufftext = "", "" if name == 'Flag+link' then args.pref = args[1] elseif name == 'Flag athlete' then args.preftext = args[1] args[2] = args.code or args[2] or "" args.variant = args.variant or args[3] elseif name == 'Flag medalist' then preftext = (args[1] or "") .. "<br/>" args[2] = args.code or args[2] or "" args.variant = args.variant or args[3] elseif name == 'Flag link' then args.suff = args[2] args[2] = args[1] or "" args.variant = args.variant or args[3] else sports = {fb = 'fb', ['fb-rt'] = 'fb', fbicon = 'fb', ru = 'ru'} if sports[name] then args.avar = sports[name] if name == 'fb' and yesno(args.align) == true then args.align='c' end elseif name == "Flag team" and (args.code or args[1]) then sufftext = ' <span style="font-size:90%;">('..(args.code or args[1])..')</span>' end args.variant = args.variant or args[2] args[2] = args[1] or "" end args[1] = mode .. (args.opts or '') args.missingcategory = categories[name] args.noredlink = args.noredlink or 'notext' if args.placeholder and yesno(args.placeholder) ~= true then args[1] = args[1] .. 'o' end if mw.title.getCurrentTitle().namespace == 0 then local unknown = '[[Category:Pages using ' .. mw.ustring.lower(name) .. ' template with unknown parameters|_VALUE_' .. frame:getParent():getTitle() .. ']]' else local unknown = '' end check = '' if name == 'Flag icon' then local opts = { unknown=unknown, preview='Page using [[Template:' .. name .. ']] with unknown parameter "_VALUE_"', ignoreblank='y', '1','2','variant','image','size','sz','border','align','al','width', 'w','alt','ilink','noredlink','missingcategory','name','clink','link', 'pref','suff','plink','the','section','altvar','avar','age','nalign', 'nal','text','nodata','opts','placeholder','getParent','frameonly' } check = require('Module:Check for unknown parameters')._check(opts,args) end return preftext .. require('Module:Flagg').luaMain(frame,args) .. sufftext .. check end local p = { [''] = function (frame) return _main(frame, 'Flag', 'unc' ) end, decoration = function (frame) return _main(frame, 'Flag decoration', 'uxx' ) end, icon = function (frame) return _main(frame, 'Flag icon', 'cxxl' ) end, link = function (frame) return _main(frame, 'Flag link', 'unpe' ) end, ['+link'] = function (frame) return _main(frame, 'Flag+link', 'unpefo') end, country = function (frame) return _main(frame, 'Flag country', 'unce' ) end, team = function (frame) return _main(frame, 'Flag team', 'unce' ) end, athlete = function (frame) return _main(frame, 'Flag athlete', 'unape' ) end, medalist = function (frame) return _main(frame, 'Flag medalist', 'unce' ) end, fb = function (frame) return _main(frame, 'fb', 'unpe' ) end, ['fb-rt'] = function (frame) return _main(frame, 'fb-rt', 'unpre' ) end, fbicon = function (frame) return _main(frame, 'fbicon', 'pxxl' ) end, ru = function (frame) return _main(frame, 'ru', 'unpe' ) end, IOC = function (frame) return require('Module:Country_alias').flagIOC(frame:newChild{ title = 'Template:Flag IOC' }) end, IOC2 = function (frame) return require('Module:Country_alias').flagXYZ(frame:newChild{ title = 'Template:Flag IOC 2', args = {name = margs.getArgs(frame).name or '', type = 'name'} }) end, IOCathlete = function (frame) return require('Module:Country_alias').flagXYZ(frame:newChild{ title = 'Template:Flag IOC athlete', args = {type = 'athlete-O'} }) end, } p['deco'] = p.decoration p['IOC 2'] = p.IOC2 p['IOC athlete'] = p.IOCathlete return p