Module:Grid

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