Module:FlexGallery: Difference between revisions
Appearance
mNo edit summary |
mNo edit summary |
||
| Line 32: | Line 32: | ||
for i, images in pairs(images) do | for i, images in pairs(images) do | ||
local caption = thumbnails[i] or "" | local caption = thumbnails[i] or "" | ||
local line = string.format("[[%s|thumb|none|% | local line = string.format("[[%s|thumb|none|%s|%s]]", | ||
image, width, caption) | image, width, caption) | ||
ul:tag("li") | ul:tag("li") | ||
Revision as of 04:23, 21 August 2025
Documentation for this module may be created at Module:FlexGallery/doc
local p = {}
local gallery
-- frame.args
p.gallery = function(frame)
local mwText = mw.text
local width = mwText.trim(tostring(frame.args[1] or ""))
if not mw.ustring.match(width, "^%d+px$") then
width = "120px"
end
local images = {}
local thumbnails = {}
for k, v in pairs(frame.args) do
v = mwText.trim(tostring(v or ""))
if k ~= 1 then
if (k % 2) == 0 then
local image = mw.ustring.match(v, "^File:[%w%s%-%._()%',]+$") or ""
table.insert(images, image)
else
table.insert(thumbnails, tostring(v))
end
end
end
local gallery = mw.html.create("div")
local ul = gallery:tag("ul")
for i, images in pairs(images) do
local caption = thumbnails[i] or ""
local line = string.format("[[%s|thumb|none|%s|%s]]",
image, width, caption)
ul:tag("li")
:css("display", "inline-block")
:css("vertical-align", "top")
:wikitext(frame:preprocess(line))
end
return gallery
end
return p