Module:Sprite: Difference between revisions

No edit summary
No edit summary
Line 10: Line 10:
local sheetWidth = ( args.sheetsize or 256 ) * scale
local sheetWidth = ( args.sheetsize or 256 ) * scale
local size = ( args.size or 16 ) * scale
local size = ( args.size or 16 ) * scale
local pos = math.abs( args.pos or sheetWidth ) - 1
local defaultPos = args.defaultpos or 1
local pos = math.abs( args.pos or defaultPos ) - 1
local link = args.link or ''
local link = args.link or ''
local align = args.align or 'text-top'
local align = args.align or 'text-top'
Line 30: Line 31:
table.insert( styles, 'background-image:{{FileUrl|' .. ( image or name .. 'Sprite.png' ) .. '}}' )
table.insert( styles, 'background-image:{{FileUrl|' .. ( image or name .. 'Sprite.png' ) .. '}}' )
end
end
if left > 0 or top > 0 then
table.insert( styles, 'background-position:-' .. left .. 'px -' .. top .. 'px' )
table.insert( styles, 'background-position:-' .. left .. 'px -' .. top .. 'px' )
end
if scale ~= 1 then
if scale ~= 1 then
table.insert( styles, 'background-size:' .. sheetWidth .. 'px auto' )
table.insert( styles, 'background-size:' .. sheetWidth .. 'px auto' )
end
end
if size ~= 16 then
if size ~= 16 then
table.insert( styles, 'height:' .. size .. 'px;width:' .. size .. 'px' )
table.insert( styles, 'height:' .. size .. 'px;width:' .. size .. 'px' )
end
end
if align ~= 'text-top' then
if align ~= 'text-top' then
table.insert( styles, 'vertical-align:' .. align )
table.insert( styles, 'vertical-align:' .. align )
end
end
if css ~= '' then
if css ~= '' then
table.insert( styles, css )
table.insert( styles, css )
Line 138: Line 136:
local list = {}
local list = {}
local listHead = '<ul style="border:1px solid #AAA;border-width:1px 0 0 1px;line-height:19px;list-style:none;margin:0;-moz-column-width:250px;-moz-column-gap:0">'
local listHead = '<ul class="spritedoc-multicolumn">'
local listFoot = '</ul>'
local listFoot = '</ul>'
local lastSection = ''
local lastSection = ''
Line 156: Line 154:
table.insert( list, listHead )
table.insert( list, listHead )
end
end
table.insert( list, '<li style="border:1px solid #AAA;background-color:#F9F9F9;padding:0 0.5em;border-top-width:0;margin:0 0 0 -1px"><table><tr><td>' )
table.insert( list, '<li><table><tr><td data-id="' .. id .. '">' )
if type( name ) == 'table' then
if type( name ) == 'table' then
for i, name2 in ipairs( name ) do
for i, name2 in ipairs( name ) do
if i == 1 then
if i == 1 then
args[1] = name2
args[1] = name2
table.insert( list, p.sprite( args ) .. '</td><td><code>' .. name2 .. '</code>' )
table.insert( list, p.sprite( args ) .. '</td><td><div class="sprite-name"><code>' .. name2 .. '</code></div>' )
else
else
table.insert( list, '<br><code style="display:inline-block;margin-top:8px">' .. name2 .. '</code>' )
table.insert( list, '<div class="sprite-name"><code>' .. name2 .. '</code></div>' )
end
end
end
end
else
else
args[1] = name
args[1] = name
table.insert( list, p.sprite( args ) .. '</td><td><code>' .. name .. '</code>' )
table.insert( list, p.sprite( args ) .. '</td><td><div class="sprite-name"><code>' .. name .. '</code></div>' )
end
end
table.insert( list, '</td></tr></table></li>' )
table.insert( list, '</td></tr></table></li>' )
Line 177: Line 175:
end
end
return table.concat( list )
return f:preprocess( '{{#widget:stylesheet|page=Sprite doc}}' ) .. '<div id="sprite-doc" data-details=\'{"name":"' .. args.name .. '","size":' .. ( args.size or 16 ) .. '}\'>' .. table.concat( list ) .. '</div>'
end
end
return p
return p