Module:Icon/sandbox explained

-- This module implements .

require("strict")local yesNo = require("Module:Yesno")local getArgs = require("Module:Arguments").getArgslocal getPlain = nil

local p =

-- Determine whether we're being called from a sandboxlocal sandbox = mw.getCurrentFrame:getTitle:find('sandbox', 1, true) and '/sandbox' or

-- Implements -- 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('', iconData.image, iconData.tooltip and '|' .. iconData.tooltip or , iconData.link

false and '|link=' or , args.size or '16x16px', iconData.invert and or 'mw-no-invert', iconData.alt or )end

-- Implements, a superset of -- Returns an icon, plus a suitably formatted wikilinkfunction 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 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 = ''..display..'' end -- if display is link, just use standard wlink if link

display then return '

'..icon..' '..link..'' end return ''..icon..' '..display..''end

function p.main(frame) local args = getArgs(frame,) return p._main(args)end

function p.link(frame) local args = getArgs(frame,) return p._link(args)end

p[''] = function (frame) return p._main(frame.args) end

return p