Module:Sprite: Difference between revisions
Add Sprite module for stack-aware sprite rendering (via create-page on MediaWiki MCP Server) |
Add optional class parameter for pageimage support (via update-page on MediaWiki MCP Server) |
||
| Line 17: | Line 17: | ||
local name = frame.args[1] | local name = frame.args[1] | ||
local size = frame.args[2] or frame.args.size or '32' | local size = frame.args[2] or frame.args.size or '32' | ||
local class = frame.args.class or '' | |||
if not name then return '' end | if not name then return '' end | ||
local suffix = p.getHighestStack(frame) | local suffix = p.getHighestStack(frame) | ||
local filename = name .. suffix .. '.png' | local filename = name .. suffix .. '.png' | ||
local classAttr = '' | |||
if class ~= '' then | |||
classAttr = '|class=' .. class | |||
end | |||
return string.format( | return string.format( | ||
'<span class="pixel-sprite">[[File:%s|%spx|link=|alt=%s]]</span>', | '<span class="pixel-sprite">[[File:%s|%spx|link=|alt=%s%s]]</span>', | ||
filename, size, name | filename, size, name, classAttr | ||
) | ) | ||
end | end | ||
return p | return p | ||
Revision as of 06:58, 22 January 2026
Documentation for this module may be created at Module:Sprite/doc
local p = {}
function p.getHighestStack(frame)
local name = frame.args[1]
if not name then return '' end
for i = 20, 1, -1 do
local file = mw.title.new('File:' .. name .. i .. '.png')
if file and file.exists then
return tostring(i)
end
end
return ''
end
function p.render(frame)
local name = frame.args[1]
local size = frame.args[2] or frame.args.size or '32'
local class = frame.args.class or ''
if not name then return '' end
local suffix = p.getHighestStack(frame)
local filename = name .. suffix .. '.png'
local classAttr = ''
if class ~= '' then
classAttr = '|class=' .. class
end
return string.format(
'<span class="pixel-sprite">[[File:%s|%spx|link=|alt=%s%s]]</span>',
filename, size, name, classAttr
)
end
return p