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