Kirby Wiki
Register
Advertisement

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

-- <nowiki>
-- Lua module that changes file links in infoboxes
-- to proper infobox gallery items
local p = {}

local REGEX = '%s-%[+[^:]+:([^|%]]*)[^%]]-%]+%s-'
local URL_REGEX = '^https?://(.*)'

local function replacer(captures)
    local s = ''
    if p.count > 0 then
        s = ' (' .. p.count .. ')\n'
    end
    s = s .. captures .. '|' .. p.caption
    p.count = p.count + 1
    return s
end

local function replacer2(capture)
    p.num = p.num - 1
    if p.num ~= 0 then
        return ''
    else
        return capture
    end
end

function p.strip(frame)
    local file = mw.text.trim(frame.args[1] or '')
    p.caption = frame.args[2] or ''
    p.count = 0
    local newfile = file:gsub(REGEX, replacer)
    if p.count > 1 then
        -- add last number
        newfile = newfile .. ' (' .. p.count .. ')'
    end
    return newfile
end

function p.imagenum(frame)
    local file = mw.text.trim(frame.args[1] or '')
    p.num = tonumber(frame.args[2] or '1')
    local newfile, count = file:gsub(REGEX, replacer2)
    if p.num > 1 and count == 0 then
        return ''
    end
    return newfile
end

function p.urlimage(frame)
    local image = frame.args[1]
    if image then
        -- Make image HTTPS
        local result, count = mw.text.trim(image):gsub(URL_REGEX, 'https://%1')
        if count == 0 then
            return ''
        else
            return result
        end
    else
        return ''
    end
end

return p
Advertisement