Module:Gallery items: Difference between revisions
Appearance
Content deleted Content added
Replace a decimal entity reference Tags: Mobile edit Mobile web edit Advanced mobile edit |
fix for blank items |
||
Line 9: | Line 9: | ||
local items = {} |
local items = {} |
||
local itemnums = {} |
|||
for k, v in pairs(args) do |
for k, v in pairs(args) do |
||
if k ~= nil and tonumber(k) and math.fmod(k,2) == 1 then |
if k ~= nil and tonumber(k) and math.fmod(k,2) == 1 then |
||
local i = math.floor(k/2) + 1 |
local i = math.floor(k/2) + 1 |
||
table.insert( itemnums, i ) |
|||
local item = mw.html.create('li') |
local item = mw.html.create('li') |
||
:addClass('gallerybox') |
:addClass('gallerybox') |
||
Line 31: | Line 33: | ||
end |
end |
||
end |
end |
||
-- remove blanks |
|||
table.sort(itemnums) |
|||
local sorteditems = {} |
|||
for k = 1, #itemnums do |
|||
sorteditems[k] = items[itemnums[k]] |
|||
end |
|||
local root = mw.html.create('ul') |
local root = mw.html.create('ul') |
||
:addClass('gallery mw-gallery-nolines gallery-items') |
:addClass('gallery mw-gallery-nolines gallery-items') |
||
:addClass(args.class) |
:addClass(args.class) |
||
:cssText(args.style) |
:cssText(args.style) |
||
:wikitext(table.concat( |
:wikitext(table.concat(sorteditems)) |
||
return frame:extensionTag {name = 'templatestyles', args = {src = 'Gallery items/styles.css'}} .. frame:extensionTag{ name = 'gallery', args = {mode = 'nolines'}} .. tostring(root) |
return frame:extensionTag {name = 'templatestyles', args = {src = 'Gallery items/styles.css'}} .. frame:extensionTag{ name = 'gallery', args = {mode = 'nolines'}} .. tostring(root) |
Latest revision as of 19:30, 11 June 2021
Implements {{gallery items}}
-- this module implements [[template:gallery items]]
local p = {}
function p.main(frame)
local getArgs = require('Module:Arguments').getArgs
local args = getArgs(frame)
local width = args.width or '150'
local items = {}
local itemnums = {}
for k, v in pairs(args) do
if k ~= nil and tonumber(k) and math.fmod(k,2) == 1 then
local i = math.floor(k/2) + 1
table.insert( itemnums, i )
local item = mw.html.create('li')
:addClass('gallerybox')
:css('width', (args['width' .. k] or width)+5 .. 'px')
local itemdiv = item:tag('div'):css('width', (args['width' .. k] or width)+5 .. 'px')
itemdiv:tag('div')
:addClass('thumb')
:css('width', (args['width' .. k] or width) .. 'px')
:css('text-align', args['itemalign'])
:wikitext('<div style="margin:0px auto">' .. args[k] .. '</div>')
if args[tonumber(k)+1] then
itemdiv
:tag('div')
:addClass('gallerytext')
:css('text-align', args['captionalign'])
:wikitext('<p>' .. args[tonumber(k)+1] .. '</p>')
end
items[i] = tostring(item) .. ' '
end
end
-- remove blanks
table.sort(itemnums)
local sorteditems = {}
for k = 1, #itemnums do
sorteditems[k] = items[itemnums[k]]
end
local root = mw.html.create('ul')
:addClass('gallery mw-gallery-nolines gallery-items')
:addClass(args.class)
:cssText(args.style)
:wikitext(table.concat(sorteditems))
return frame:extensionTag {name = 'templatestyles', args = {src = 'Gallery items/styles.css'}} .. frame:extensionTag{ name = 'gallery', args = {mode = 'nolines'}} .. tostring(root)
end
return p