Modul:Icon
TemplateStyles' src
attribute must not be empty.
Modul panèka kaèngkobhi. Modul nèka mèlaghis kantara sè èyangghuy kelabân andhân kaca, otabâ segghut èsubstitusi'aghi. Lakaran vandalisme otabâ kaklèrowan abhâdhi pangaro dâ' andhân kaca, tor beccè'an kèni' kèngèng maparèng tompoan rajâ dâ' server, modul nèka èsabhi, èlinḍhungè otabâ è'èngkobhi sabâgiyân ḍâri sabhârâng pameccè'an. |
TemplateStyles' src
attribute must not be empty.
This Lua module is used on many pages and changes may be widely noticed. Test changes in the module's /sandbox or /testcases subpages, or in your own module sandbox. 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
[beccè' sombher]From wikitext
[beccè' sombher]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
[beccè' sombher]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
[beccè' sombher]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]].
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