Home  

Random  

Nearby  



Log in  



Settings  



Donate  



About Wikipedia  

Disclaimers  



Wikipedia





Module:Flag





Module  

Talk  



Language  

Watch  

View source  





Lua-native alternative to popular flag templates. Can be used to reduce post-expand include size of pages with lots of templates, since it avoids calling multilevel templates.

Usage

Generic flag templates

Sports flag templates

Examples

Template Module
Code Output PEIS Code Output PEIS
{{flag|CHN}}  CHN 443b {{#invoke:flag||CHN}}  CHN 128b
{{flag country|CHN}}  China 577b {{#invoke:flag|country|CHN}}  China 128b
{{flag decoration|CHN}}/{{flag deco|CHN}} 452b {{#invoke:flag|decoration|CHN}}/{{#invoke:flag|deco|CHN}} 107b
{{flag icon|CHN}} China 548b {{#invoke:flag|icon|CHN}} China 117b
{{flag link|CHN|at the 2004 Summer Olympics}}  China 497b {{#invoke:flag|link|CHN|at the 2004 Summer Olympics}}  China 198b
{{flag+link|History of|CHN}}  China 663b {{#invoke:flag|+link|History of|CHN}}  China 139b
{{flag athlete|Andy Murray|GBR}}  Andy Murray (GBR) 617b {{#invoke:flag|athlete|Andy Murray|GBR}}  Andy Murray (GBR) 210b
{{flag medalist|Andy Murray|GBR}} Andy Murray
 Great Britain
469b {{#invoke:flag|medalist|Andy Murray|GBR}} Andy Murray
 Great Britain
129b
{{flag IOC|CAN|1924 Winter|1}}  Canada (1) 326b {{#invoke:flag|IOC|CAN|1924 Winter|1}}  Canada (1) 163b
{{flag IOC 2|HKG|1954 Asian Games|1}}  Hong Kong (1) 368b {{#invoke:flag|IOC 2|HKG|1954 Asian Games|1}}  Hong Kong (1) 184b
{{flag IOC athlete|Mark Spitz|USA|1972 Summer}}  Mark Spitz (USA) 346b {{#invoke:flag|IOC athlete|Mark Spitz|USA|1972 Summer}}  Mark Spitz (USA) 178b
{{fb|CHN}}  China 560b {{#invoke:flag|fb|CHN}}  China 151b
{{fb-rt|CHN}} China  482b {{#invoke:flag|fb-rt|CHN}} China  151b
{{fbicon|CHN}} China 444b {{#invoke:flag|fbicon|CHN}} China national football team 163b
{{ru|CHN}}  China 646b {{#invoke:flag|ru|CHN}}  China 210b

Caveats

When used inside a template, parameters from that template are passed to the module. This can be useful in some situations, but can lead to conflicts (for example, if the parent template has a parameter |country= that is unrelated to the flag it is supposed to display). To prevent this behavior, add the |frameonly= parameter to the module call, e.g. {{#invoke:flag|deco|CHN|frameonly=true}}.

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 = ""
 
 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
  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) .. 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,
 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

Retrieved from "https://en.wikipedia.org/w/index.php?title=Module:Flag&oldid=1235533539"
 



Last edited on 19 July 2024, at 19:41  


Languages

 


Afrikaans
Авар

Chavacano de Zamboanga
Corsu
Cymraeg
فارسی
Hausa
ि
Kapampangan

Ikinyarwanda
Ladino
Magyar
ि
Монгол



ି
Oʻzbekcha / ўзбекча

پښتو
Tok Pisin
Setswana

Simple English
سنڌي
کوردی
ி
Tiếng Vit
Winaray

 

Wikipedia


This page was last edited on 19 July 2024, at 19:41 (UTC).

Content is available under CC BY-SA 4.0 unless otherwise noted.



Privacy policy

About Wikipedia

Disclaimers

Contact Wikipedia

Code of Conduct

Developers

Statistics

Cookie statement

Terms of Use

Desktop