Module:Sprite: Difference between revisions

351 bytes added ,  10 March 2023
m
Scuffed module update
imported>Ttv pedro270707
mNo edit summary
imported>Ttv pedro270707
m (Scuffed module update)
Line 17: Line 17:
f = mw.getCurrentFrame()
f = mw.getCurrentFrame()
end
end
local url = args.url
local data = args.data and mw.loadData( 'Module:' .. args.data ) or {}
local settings = data.settings
local ids = data.ids
local default = {
local default = {
Line 26: Line 29:
align = 'text-top'
align = 'text-top'
}
}
local scale = args.scale or default.scale
local sheetsize = args.sheetsize or default.sheetsize
local defaultStyle = default
local size = args.size or default.size
if settings then
local pos = args.pos or default.pos
if not settings.stylesheet then
local align = args.align or default.align
-- Make a separate clone of the current default settings
defaultStyle = mw.clone( default )
end
for k, v in pairs( settings ) do
default[k] = v
end
end
local setting = function( arg )
return args[arg] or default[arg]
end
local scale = setting( 'scale' )
local sheetsize = setting( 'sheetsize' )
local size = setting( 'size' )
local pos = args.id and ids[args.id] or setting( 'pos' )
local align = setting( 'align' )
local spritePosition = p.getSpritePosition( pos, sheetsize, size )
local spritePosition = p.getSpritePosition( pos, sheetsize, size )
local image = setting( 'image' )
local fileUrl = f:expandTemplate{title = 'FileUrl', args = {[1] = url} }
local fileUrl = f:expandTemplate{title = 'FileUrl', args = {[1] = image} }
local styles = {
local styles = {
Line 41: Line 61:
"display: inline-block",
"display: inline-block",
"width: " .. size * scale .. "px",
"width: " .. size * scale .. "px",
"height: " .. size * scale .. "px",
"height: " .. size * scale .. "px"
-- "transform: scale(" .. scale .. ")"
}
}
Line 50: Line 69:
sprite:attr( 'data-bgimage', fileUrl )
sprite:attr( 'data-bgimage', fileUrl )
local root = mw.html.create( 'span' )
return tostring( sprite )
root:node( sprite )
return tostring( root )
end
end


return p
return p