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!
Advanced
Special characters
Help
Heading
Level 2
Level 3
Level 4
Level 5
Format
Insert
Latin
Latin extended
IPA
Symbols
Greek
Greek extended
Cyrillic
Arabic
Arabic extended
Hebrew
Bangla
Tamil
Telugu
Sinhala
Devanagari
Gujarati
Thai
Lao
Khmer
Canadian Aboriginal
Runes
Á
á
À
à
Â
â
Ä
ä
Ã
ã
Ǎ
ǎ
Ā
ā
Ă
ă
Ą
ą
Å
å
Ć
ć
Ĉ
ĉ
Ç
ç
Č
č
Ċ
ċ
Đ
đ
Ď
ď
É
é
È
è
Ê
ê
Ë
ë
Ě
ě
Ē
ē
Ĕ
ĕ
Ė
ė
Ę
ę
Ĝ
ĝ
Ģ
ģ
Ğ
ğ
Ġ
ġ
Ĥ
ĥ
Ħ
ħ
Í
í
Ì
ì
Î
î
Ï
ï
Ĩ
ĩ
Ǐ
ǐ
Ī
ī
Ĭ
ĭ
İ
ı
Į
į
Ĵ
ĵ
Ķ
ķ
Ĺ
ĺ
Ļ
ļ
Ľ
ľ
Ł
ł
Ń
ń
Ñ
ñ
Ņ
ņ
Ň
ň
Ó
ó
Ò
ò
Ô
ô
Ö
ö
Õ
õ
Ǒ
ǒ
Ō
ō
Ŏ
ŏ
Ǫ
ǫ
Ő
ő
Ŕ
ŕ
Ŗ
ŗ
Ř
ř
Ś
ś
Ŝ
ŝ
Ş
ş
Š
š
Ș
ș
Ț
ț
Ť
ť
Ú
ú
Ù
ù
Û
û
Ü
ü
Ũ
ũ
Ů
ů
Ǔ
ǔ
Ū
ū
ǖ
ǘ
ǚ
ǜ
Ŭ
ŭ
Ų
ų
Ű
ű
Ŵ
ŵ
Ý
ý
Ŷ
ŷ
Ÿ
ÿ
Ȳ
ȳ
Ź
ź
Ž
ž
Ż
ż
Æ
æ
Ǣ
ǣ
Ø
ø
Œ
œ
ß
Ð
ð
Þ
þ
Ə
ə
Formatting
Links
Headings
Lists
Files
References
Discussion
Description
What you type
What you get
Italic
''Italic text''
Italic text
Bold
'''Bold text'''
Bold text
Bold & italic
'''''Bold & italic text'''''
Bold & italic text
-- 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
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
-- 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
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
0
0
0
1:0
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)
Debug console
* The module exports are available as the variable "p", including unsaved modifications. * Precede a line with "=" to evaluate it as an expression or use print(). Use mw.logObject() for tables. * Use mw.log() and mw.logObject() in module code to send messages to this console.
Module:Gallery/doc
(
edit
)
Welcome to The Wandering Inn Wiki
Anyone can edit, and every improvement helps.
Thank you for helping the world discover more!
Start editing