-- 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
-- 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
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