No edit summary
No edit summary
 
(5 intermediate revisions by the same user not shown)
Line 3: Line 3:
function p.render(frame)
function p.render(frame)
     local args = frame:getParent().args
     local args = frame:getParent().args
     local size = args["size"] or "200px"
     local width = args["width"] or "200px"
    local output = ""
    local outer_div_style = string.format(' style="width:%s;"', size)
    output = output .. '<div class="image-sequence"' .. outer_div_style .. '>\n<div class="image-sequence-row">\n'


     local index = 1
     local center_class = false
     while true do
     if args["center"] then
        local paramName
         if tostring(args["center"]):lower() == "true" then
         if index == 1 then
             center_class = true
            paramName = "image"
        else
             paramName = "image" .. index
         end
         end
        args["center"] = nil
    end
    local classes = "image-sequence"
    if center_class then
        classes = classes .. " centered"
    end
    local outer_div_style = string.format(' style="width:%s;"', width)


        local imageName = args[paramName]
    local output = {}
        if not imageName then
            break
        end


        output = output .. string.format('[[File:%s|%s]]\n', imageName, size)
    table.insert(output, string.format('<div class="%s"%s>', classes, outer_div_style))
    table.insert(output, '<div class="image-sequence-group">')


         index = index + 1
    local images_param = args["images"]
    if images_param then
         for filename in string.gmatch(images_param, '([^;]+)') do
            filename = filename:gsub("^%s*(.-)%s*$", "%1") -- trim spaces
            table.insert(output, string.format('[[File:%s.png|%s]]', filename, width))
        end
     end
     end


     output = output .. '</div>\n</div>'
     table.insert(output, '</div></div>')


     return output
     return table.concat(output)
end
end


return p
return p

Latest revision as of 06:10, 27 November 2025

Documentation for this module may be created at Module:ImageSequence/doc

local p = {}

function p.render(frame)
    local args = frame:getParent().args
    local width = args["width"] or "200px"

    local center_class = false
    if args["center"] then
        if tostring(args["center"]):lower() == "true" then
            center_class = true
        end
        args["center"] = nil
    end

    local classes = "image-sequence"
    if center_class then
        classes = classes .. " centered"
    end

    local outer_div_style = string.format(' style="width:%s;"', width)

    local output = {}

    table.insert(output, string.format('<div class="%s"%s>', classes, outer_div_style))
    table.insert(output, '<div class="image-sequence-group">')

    local images_param = args["images"]
    if images_param then
        for filename in string.gmatch(images_param, '([^;]+)') do
            filename = filename:gsub("^%s*(.-)%s*$", "%1") -- trim spaces
            table.insert(output, string.format('[[File:%s.png|%s]]', filename, width))
        end
    end

    table.insert(output, '</div></div>')

    return table.concat(output)
end

return p