Module:Icon
- Afrikaans
- العربية
- অসমীয়া
- Asturianu
- Azərbaycanca
- تۆرکجه
- Basa Bali
- বাংলা
- 閩南語 / Bân-lâm-gú
- Беларуская
- भोजपुरी
- Bikol Central
- Bosanski
- Буряад
- Català
- Cebuano
- Corsu
- Cymraeg
- فارسی
- Føroyskt
- Gaeilge
- ગુજરાતી
- गोंयची कोंकणी / Gõychi Konknni
- 한국어
- हिन्दी
- Bahasa Indonesia
- Íslenska
- ಕನ್ನಡ
- Kernowek
- Kurdî
- ລາວ
- Lietuvių
- Magyar
- Македонски
- മലയാളം
- مصرى
- ဘာသာမန်
- Монгол
- မြန်မာဘာသာ
- नेपाली
- 日本語
- ਪੰਜਾਬੀ
- Polski
- Português
- Qaraqalpaqsha
- Română
- Scots
- සිංහල
- Simple English
- سنڌي
- Slovenščina
- کوردی
- Српски / srpski
- Svenska
- தமிழ்
- ไทย
- ತುಳು
- Українська
- اردو
- Tiếng Việt
- 吴语
- 中文
- Kadazandusun
- ᥖᥭᥰ ᥖᥬᥲ ᥑᥨᥒᥰ
To avoid major disruption and server load, any changes should be tested in the module's /sandbox or /testcases subpages, or in your own module sandbox. The tested changes can be added to this page in a single edit. Consider discussing changes on the talk page before implementing them.
This module displays an icon depending on the code it is given. It implements Template:Icon.
Usage
From wikitext
From wikitext this module should be used via Template:Icon in most cases. Please see the template page for documentation. In cases where lots of icons cause the page to exceed the post-expand include size limit, {{#invoke:Icon||icon name}}
may be used instead of {{Icon|icon name}}
.
From Lua
To use this module from another Lua module, first load it:
local mIcon = require('Module:Icon')
Then you can make icons with the _main function.
mIcon._main(args)
The args variable is a table of arguments. This corresponds to the parameters accepted by Template:Icon - please see the template page for parameter documentation.
Data
The icon data is stored at Module:Icon/data. See the instructions there for how to add and remove icons.
Editors can experiment in this module's sandbox (edit | diff) and testcases (edit | run) pages.
Subpages of this module.
-- This module implements [[Template:Icon]]. require("strict") local yesNo = require("Module:Yesno") local getArgs = require("Module:Arguments").getArgs local getPlain = nil local p = {} -- Determine whether we're being called from a sandbox local sandbox = mw.getCurrentFrame():getTitle():find('sandbox', 1, true) and '/sandbox' or '' -- Implements [[Template:Icon]] -- Returns the icon image corresponding to a string (like 'B') function p._main(args, data) local data_module = 'Module:Icon/data'..sandbox data = data or mw.loadData(data_module) local code = args.class or args[1] local iconData if code then code = code:match('^%s*(.-)%s*$'):lower() -- trim whitespace and put in lower case iconData = data[code] end if not iconData then iconData = data._DEFAULT end return string.format( '[[File:%s%s%s|%s|class=noviewer|alt=%s]]', iconData.image, iconData.tooltip and '|' .. iconData.tooltip or '', iconData.link == false and '|link=' or '', args.size or '16x16px', iconData.alt or '' ) end -- Implements [[Template:Icon link]], a superset of [[Template:Icon]] -- Returns an icon, plus a suitably formatted wikilink function p._link(args, data) args.size = args.size or args.iconsize local icon = p._main(args, data) -- If no link given in args[2], default back to [[Template:Icon]] if not args[2] then return icon end -- Strip wiki markup out of link getPlain = getPlain or require("Module:Text").Text().getPlain local link = getPlain(args[2]) local display = args[3] or args[2] -- italicize display string, if requested if yesNo(args.i) or yesNo(args.italic) or yesNo(args.italics) then display = '<i>'..display..'</i>' end -- if display is link, just use standard wlink if link == display then return '<span class="nowrap">'..icon..' </span>[['..link..']]' end return '<span class="nowrap">'..icon..' </span>[['..link..'|'..display..']]' end function p.main(frame) local args = getArgs(frame,{parentFirst=true}) return p._main(args) end function p.link(frame) local args = getArgs(frame,{parentFirst=true}) return p._link(args) end p[''] = function (frame) return p._main(frame.args) end return p