Module:Icon
This module displays an icon depending on the code it is given. It implements Template:Icon.
This Lua module is used on approximately 313,000 pages. To avoid large-scale disruption and unnecessary server load, any changes to this module should first be tested in its /sandbox or /testcases subpages. The tested changes can then be added to this page in one single edit. Please consider discussing any changes on the talk page before implementing them. |
This module is subject to page protection. It is a highly visible module in use by a very large number of pages, or is substituted very frequently. Because vandalism or mistakes would affect many pages, and even trivial editing might cause substantial load on the servers, it is protected from editing. |
Usage
සංස්කරණයFrom wikitext
සංස්කරණයFrom wikitext this module should be used via Template:Icon. Please see the template page for documentation.
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.
-- This module implements [[Template:Icon]].
local data = mw.loadData('Module:Icon/data')
local p = {}
function p._main(args)
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|link=]]',
iconData.image,
iconData.tooltip and '|' .. iconData.tooltip or '',
args.size or '16x16px'
)
end
function p.main(frame)
local args = {}
for k, v in pairs(frame:getParent().args) do
args[k] = v
end
return p._main(args)
end
return p