Toggle search
Search
Toggle menu
Notifications
Toggle personal menu
Editing
Module:Gallery
From The Wandering Inn Wiki
Views
Read
Edit source
View history
associated-pages
Module
Discussion
More actions
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
-- This module implements {{gallery}} local p = {} local templatestyles = 'Template:Gallery/styles.css' local yesno = require('Module:Yesno') local function trim(s) return mw.ustring.gsub(mw.ustring.gsub(s, '%s', ' '), '^%s*(.-)%s*$', '%1') end local tracking, preview local function checkarg(k,v) if k and type(k) == 'string' then if k == 'align' or k == 'state' or k == 'style' or k == 'title' or k == 'width' or k == 'height' or k == 'lines' or k == 'whitebg' or k == 'mode' or k == 'footer' or k == 'perrow' or k == 'noborder' or k:match('^alt%d+$') or k:match('^%d+$') then -- valid elseif k == 'captionstyle' then if not v:match('^text%-align%s*:%s*center[;%s]*$') then table.insert(tracking, '[[Category:Pages using gallery with the captionstyle parameter]]') end else -- invalid local vlen = mw.ustring.len(k) k = mw.ustring.sub(k, 1, (vlen < 25) and vlen or 25) k = mw.ustring.gsub(k, '[^%w\-_ ]', '?') table.insert(tracking, '[[Category:Pages using gallery with unknown parameters|' .. k .. ']]') table.insert(preview, '"' .. k .. '"') end end end function p.gallery(frame) -- If called via #invoke, use the args passed into the invoking template. -- Otherwise, for testing purposes, assume args are being passed directly in. local origArgs = (type(frame.getParent) == 'function') and frame:getParent().args or frame -- ParserFunctions considers the empty string to be false, so to preserve the previous -- behavior of {{gallery}}, change any empty arguments to nil, so Lua will consider -- them false too. local args = {} tracking, preview = {}, {} for k, v in pairs(origArgs) do if v ~= '' then args[k] = v checkarg(k,v) end end if (args.mode or '') == 'packed' and (args.align or '') == '' then args.align = 'center' end local tbl = mw.html.create('div') tbl:addClass('mod-gallery') if args.state then tbl :addClass('mod-gallery-collapsible') :addClass('collapsible') :addClass(args.state) end if args.style then tbl:cssText(args.style) else tbl:addClass('mod-gallery-default') end if args.align then tbl:addClass('mod-gallery-' .. args.align:lower()) end if args.title then tbl:tag('div') :addClass('title') :tag('div') :wikitext(args.title) end local gargs = {} gargs['class'] = 'nochecker' .. (args.noborder and '' or ' bordered-images') gargs['widths'] = tonumber(args.width) or 180 gargs['heights'] = tonumber(args.height) or 180 gargs['style'] = args.captionstyle gargs['perrow'] = args.perrow gargs['mode'] = args.mode if yesno(args.whitebg or 'yes') then gargs['class'] = gargs['class'] .. ' whitebg' end local gallery = {} local imageCount = math.ceil(#args / 2) for i = 1, imageCount do local img = trim(args[i*2 - 1] or '') local caption = trim(args[i*2] or '') local alt = trim(args['alt' .. i] or '') if img ~= '' then table.insert(gallery, img .. (alt ~= '' and ('|alt=' .. alt) or '') .. '|' .. caption ) end end tbl:tag('div') :addClass('main') :tag('div') :wikitext( frame:extensionTag{ name = 'gallery', content = '\n' .. table.concat(gallery,'\n'), args = gargs} ) if args.footer then tbl:tag('div') :addClass('footer') :tag('div') :wikitext(args.footer) end local trackstr = (#tracking > 0) and table.concat(tracking, '') or '' if #preview > 0 then trackstr = require('Module:If preview')._warning({ 'Unknown parameters ' .. table.concat(preview, '; ') .. '.' }) .. trackstr end return frame:extensionTag{ name = 'templatestyles', args = { src = templatestyles} } .. tostring(tbl) .. trackstr end return p
Summary:
Please note that all contributions to The Wandering Inn Wiki are considered to be released under the Creative Commons attribution β non commercial β share alike (see
The Wandering Inn Wiki:Copyrights
for details). If you do not want your writing to be edited mercilessly and redistributed at will, then do not submit it here.
You are also promising us that you wrote this yourself, or copied it from a public domain or similar free resource.
Do not submit copyrighted work without permission!
Cancel
Editing help
(opens in new window)
Template used on this page:
Module:Gallery/doc
(
edit
)