Cblair91@legacy41667588 (talk | contribs) (Idiot proof, that way lowercase gets parsed to uppercase) |
Cblair91@legacy41667588 (talk | contribs) (or case, for null checks >.<) |
||
Line 28: | Line 28: | ||
local mods = require( [[Module:Mods]] ) |
local mods = require( [[Module:Mods]] ) |
||
− | local mod = mods.getData(string.upper(args.mod)) or { abbr="", mod="", name="", localised="" } |
+ | local mod = mods.getData(string.upper(args.mod or '')) or { abbr="", mod="", name="", localised="" } |
local link = args.link or '' |
local link = args.link or '' |
Revision as of 16:44, 13 July 2015
Documentation for this module may be created at Module:Grid/doc
local p = {}
p.cell = function( f )
local args = f.args or f
if f == mw.getCurrentFrame() and args[1] == nil then
args = f:getParent().args
else
f = mw.getCurrentFrame()
end
args = require( [[Module:ProcessArgs]] ).norm( args )
local item = args[1]
local body = mw.html.create( 'span' ):addClass( 'grid' ):css{ ['vertical-align'] = args.align }
if args['no-bg'] then
body:addClass( 'grid-plain' )
end
if args.class then
body:addClass( args.class )
end
if args.style then
body:cssText( args.style )
end
if not item then
body:tag( 'br' )
return tostring( body )
end
local mods = require( [[Module:Mods]] )
local mod = mods.getData(string.upper(args.mod or '')) or { abbr="", mod="", name="", localised="" }
local link = args.link or ''
if link:lower() == 'none' or link:lower() == 'false' then
link = nil
else
if link == '' then
link = item
if mod.link and ( args.dis or '' ) == '' then
link = link .. ' (' .. mod.link .. ')'
end
end
body:wikitext( '[[', link, require( [[Module:Language]] ).link(), '|' )
end
local icon = body:tag( 'span' )
local title = args.title or args.tooltiptext
if not title then
title = item
elseif title:lower() == 'none' then
title = ''
elseif title:match( '&' ) then
body:attr( 'data-minetip-title', title )
title = title:gsub( '&[0-9a-fk-or]', '' )
if title == '' then
title = item
end
end
( link and icon or body ):attr{ title = title }
body:attr{ ['data-minetip-text'] = args.desc }
icon:wikitext( f:callParserFunction( '#icon', { item = item, mod = mod.abbr } ) )
local num = tonumber( args[2] or 1 )
if num and num > 1 and num < 1000 then
local number = icon:tag( 'span' ):addClass( 'grid-number' ):wikitext( num )
if args.numstyle then
number:cssText( args.numstyle )
end
end
if link then
body:wikitext( ']]' )
end
return tostring( body )
end
return p