<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.pttlink.org/index.php?action=history&amp;feed=atom&amp;title=Module%3AGaleria</id>
	<title>Module:Galeria - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.pttlink.org/index.php?action=history&amp;feed=atom&amp;title=Module%3AGaleria"/>
	<link rel="alternate" type="text/html" href="https://wiki.pttlink.org/index.php?title=Module:Galeria&amp;action=history"/>
	<updated>2026-05-04T16:46:27Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.35.5</generator>
	<entry>
		<id>https://wiki.pttlink.org/index.php?title=Module:Galeria&amp;diff=11283&amp;oldid=prev</id>
		<title>Kg7qin: 1 revision imported</title>
		<link rel="alternate" type="text/html" href="https://wiki.pttlink.org/index.php?title=Module:Galeria&amp;diff=11283&amp;oldid=prev"/>
		<updated>2022-01-24T08:03:37Z</updated>

		<summary type="html">&lt;p&gt;1 revision imported&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left diff-editfont-monospace&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 08:03, 24 January 2022&lt;/td&gt;
				&lt;/tr&gt;
&lt;!-- diff cache key mediawiki:diff::1.12:old-11282:rev-11283 --&gt;
&lt;/table&gt;</summary>
		<author><name>Kg7qin</name></author>
	</entry>
	<entry>
		<id>https://wiki.pttlink.org/index.php?title=Module:Galeria&amp;diff=11282&amp;oldid=prev</id>
		<title>Mediawiki&gt;Sarang: trimmed</title>
		<link rel="alternate" type="text/html" href="https://wiki.pttlink.org/index.php?title=Module:Galeria&amp;diff=11282&amp;oldid=prev"/>
		<updated>2022-01-08T13:33:42Z</updated>

		<summary type="html">&lt;p&gt;trimmed&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;&lt;br /&gt;
local p = {}&lt;br /&gt;
&lt;br /&gt;
-- parses the size value&lt;br /&gt;
local function parseval ( value, parm2 ) &lt;br /&gt;
	local par  = value or ''&lt;br /&gt;
	local req  = parm2 or ''&lt;br /&gt;
	if par ==  '' then&lt;br /&gt;
		return ''&lt;br /&gt;
	else&lt;br /&gt;
		if  mw.ustring.sub(par, -2) == 'px' then &lt;br /&gt;
			par = mw.ustring.sub(par, 1, mw.ustring.len(par) -2)&lt;br /&gt;
		end&lt;br /&gt;
		local pos = mw.ustring.find(par, 'x');&lt;br /&gt;
		if req == 'p' then&lt;br /&gt;
			return par;&lt;br /&gt;
		elseif req == 'w' then&lt;br /&gt;
			if pos == nil then&lt;br /&gt;
				return par;&lt;br /&gt;
			elseif pos &amp;gt; 1 then&lt;br /&gt;
				return mw.ustring.sub(par, 1, pos -1);&lt;br /&gt;
			else&lt;br /&gt;
				return ''&lt;br /&gt;
			end&lt;br /&gt;
		elseif  req == 'h' then&lt;br /&gt;
			if pos == nil then&lt;br /&gt;
				return '';&lt;br /&gt;
			else&lt;br /&gt;
				return mw.ustring.sub(par, pos +1)&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
end	--	function: parseval&lt;br /&gt;
&lt;br /&gt;
-- checks whether the value is text, or the next file&lt;br /&gt;
local function iffil ( ftext, optn ) &lt;br /&gt;
	local name  = mw.ustring.lower(ftext or '') ;		-- trimmed&lt;br /&gt;
	local fmat  = 'x';			-- assume it's text&lt;br /&gt;
	if mw.ustring.sub ( name or ' ', 1, 1 ) == &amp;quot;*&amp;quot;&lt;br /&gt;
	or mw.ustring.sub ( name or ' ', 1, 1 ) == &amp;quot;.&amp;quot; then&lt;br /&gt;
		fmat = 'f'			--	short code for filename&lt;br /&gt;
	elseif name ~= &amp;quot;&amp;quot; then&lt;br /&gt;
 		local inx = mw.ustring.find( name .. &amp;quot;\n&amp;quot;, &amp;quot;\n&amp;quot; );&lt;br /&gt;
		name = mw.ustring.sub ( name, 1, inx - 1 );&lt;br /&gt;
		if mw.ustring.sub (name, -5) == '.tiff' then &lt;br /&gt;
			name = mw.ustring.sub (name, 1, #name-4)..'tif';&lt;br /&gt;
		end&lt;br /&gt;
		if mw.ustring.sub (name, -5) == '.jpeg' then &lt;br /&gt;
			name = mw.ustring.sub (name, 1, #name-4)..'jpg';&lt;br /&gt;
		end&lt;br /&gt;
		if #name &amp;gt; 4 and&lt;br /&gt;
			mw.ustring.sub (name, -4, -4 ) == '.' then &lt;br /&gt;
			local map = {svg=1, png=1, jpg=1, gif=1, tif=1, xcf=1, pdf=1};&lt;br /&gt;
			if 	map[mw.ustring.sub (name, -3)] then&lt;br /&gt;
				fmat = &amp;quot;f&amp;quot;;                     -- it looks like a file name&lt;br /&gt;
			end&lt;br /&gt;
	 	end&lt;br /&gt;
	end&lt;br /&gt;
	if optn == 'F' then fmat = mw.ustring.sub (name, 1, #name-4) end&lt;br /&gt;
	return fmat&lt;br /&gt;
end	--	function: iffil&lt;br /&gt;
&lt;br /&gt;
-- returns the file name without the .ext&lt;br /&gt;
local function namprt ( filnam )&lt;br /&gt;
	return iffil ( filnam, 'F')&lt;br /&gt;
end	--	function: namprt &lt;br /&gt;
&lt;br /&gt;
-- changes all occurences of &amp;quot;_&amp;quot; against &amp;quot; &amp;quot;&lt;br /&gt;
local function pagnam ( filnam )&lt;br /&gt;
	return mw.ustring.gsub( filnam or ' ', '_', ' ' ),_&lt;br /&gt;
end --  function: pagename &lt;br /&gt;
&lt;br /&gt;
-- prepares the display of the second param&lt;br /&gt;
local function disp2nd ( fnam, fmat )&lt;br /&gt;
	if iffil ( fnam ) == &amp;quot;f&amp;quot; then&lt;br /&gt;
		if fmat == '2' then&lt;br /&gt;
			return &amp;quot;|&amp;lt;div class=\&amp;quot;center\&amp;quot;&amp;gt;{{F|&amp;quot; .. fnam .. &amp;quot;}}&amp;lt;/div&amp;gt;&amp;quot;&lt;br /&gt;
		else		-- fmat==3&lt;br /&gt;
			return &amp;quot;|&amp;lt;div class=\&amp;quot;center\&amp;quot;&amp;gt;&amp;quot; .. pagnam ( fnam ) .. &amp;quot;&amp;lt;/div&amp;gt;&amp;quot;&lt;br /&gt;
		end&lt;br /&gt;
	else&lt;br /&gt;
		return &amp;quot;|&amp;lt;div class=\&amp;quot;center\&amp;quot;&amp;gt;&amp;quot; .. fnam .. &amp;quot;&amp;lt;/div&amp;gt;&amp;quot;&lt;br /&gt;
	end&lt;br /&gt;
end --  function: disp2nd&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-- main function &lt;br /&gt;
function p.gallery ( frame )&lt;br /&gt;
 	local ppar = mw.getCurrentFrame():getParent().args;&lt;br /&gt;
	local tagtab = {};&lt;br /&gt;
	local instab = {};&lt;br /&gt;
	local form   = ppar.f or ppar.format or &amp;quot;&amp;quot;;&lt;br /&gt;
	local fmat   = ppar.f or ppar.format or &amp;quot;2&amp;quot;;&lt;br /&gt;
	local mode   = ppar.m or ppar.mode or &amp;quot;&amp;quot;;&lt;br /&gt;
	local insv   = &amp;quot;&amp;quot;;&lt;br /&gt;
	local strg   = &amp;quot;&amp;quot;;&lt;br /&gt;
	tagtab [1]   = &amp;quot;\n&amp;quot;;&lt;br /&gt;
	&lt;br /&gt;
	for _, v in ipairs(ppar) do&lt;br /&gt;
		v = mw.text.trim (v);&lt;br /&gt;
		strg = strg .. &amp;quot;\006&amp;quot;  .. v                  -- replace pipe by ACK&lt;br /&gt;
	end&lt;br /&gt;
	strg = mw.ustring.gsub( strg, &amp;quot;[\n]&amp;quot; , &amp;quot;\006&amp;quot; ); -- replace CRLF by ACK&lt;br /&gt;
	&lt;br /&gt;
--------------------------------&lt;br /&gt;
	local par2 = ppar[2] or &amp;quot;&amp;quot;&lt;br /&gt;
	if fmat == &amp;quot;&amp;quot; then						--	when format NOT specified&lt;br /&gt;
		if par2 ~= &amp;quot;&amp;quot; then			--	when second parm:&lt;br /&gt;
 			if iffil ( par2 ) == &amp;quot;f&amp;quot; then&lt;br /&gt;
	 			fmat = &amp;quot;1&amp;quot;					--	default format=&amp;quot;1&amp;quot;&lt;br /&gt;
		 	else&lt;br /&gt;
	 			fmat = &amp;quot;2&amp;quot;					--	default format=&amp;quot;2&amp;quot;&lt;br /&gt;
		 	end&lt;br /&gt;
		else							--	no second parm			&lt;br /&gt;
			fmat = &amp;quot;1&amp;quot;						&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
--------------------------------&lt;br /&gt;
	for _, v in ipairs(mw.text.split(strg , &amp;quot;\006&amp;quot;) ) do&lt;br /&gt;
		v = mw.text.trim (v);&lt;br /&gt;
		local scnd = &amp;quot;&amp;quot;&lt;br /&gt;
		if fmat == &amp;quot;1&amp;quot; or fmat == &amp;quot;2&amp;quot; or fmat == &amp;quot;3&amp;quot; then	-- param pairs&lt;br /&gt;
			if insv == &amp;quot;&amp;quot; then		--	1st value&lt;br /&gt;
				insv = v;&lt;br /&gt;
			else					--	2nd value:&lt;br /&gt;
				if iffil ( v ) == &amp;quot;f&amp;quot; then					-- it's a filename&lt;br /&gt;
					if pagnam ( mw.ustring.lower(insv) ) == pagnam ( mw.ustring.lower(v) ) then&lt;br /&gt;
						table.insert(instab, insv .. disp2nd (    v, fmat ) );&lt;br /&gt;
					else									-- it is the next file name&lt;br /&gt;
						table.insert(instab, insv .. disp2nd ( insv, fmat ) );&lt;br /&gt;
						scnd = v;&lt;br /&gt;
					end&lt;br /&gt;
				else				--	may be a short code&lt;br /&gt;
					if v == &amp;quot;&amp;quot; or v == &amp;quot;+&amp;quot; then &lt;br /&gt;
						table.insert(instab, insv .. disp2nd ( insv, fmat ) );&lt;br /&gt;
					else&lt;br /&gt;
						table.insert(instab, insv .. disp2nd ( v, '3' ) );	-- just text&lt;br /&gt;
					end&lt;br /&gt;
				end&lt;br /&gt;
				insv = scnd;&lt;br /&gt;
			end&lt;br /&gt;
&lt;br /&gt;
		else						-- fmat = 0, 1 &lt;br /&gt;
			table.insert(instab, v ); -- table.insert(instab, fmat fma2 );	&lt;br /&gt;
		end	-- if fmat&lt;br /&gt;
	end		-- for&lt;br /&gt;
&lt;br /&gt;
	if insv ~= &amp;quot;&amp;quot; then		--	last value single?	&lt;br /&gt;
		if fmat == &amp;quot;2&amp;quot; or fmat == &amp;quot;3&amp;quot; then		-- make a pair&lt;br /&gt;
			table.insert(instab, insv .. disp2nd ( insv, fmat ) );&lt;br /&gt;
		else&lt;br /&gt;
			table.insert(instab, insv );&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
--&lt;br /&gt;
	for i, v in ipairs( instab ) do&lt;br /&gt;
		if v == &amp;quot;&amp;quot; or v == &amp;quot;+&amp;quot; then &lt;br /&gt;
			tagtab [1] = tagtab [1] .. &amp;quot;\n&amp;quot;			-- same &lt;br /&gt;
		else&lt;br /&gt;
			if  v == &amp;quot;*&amp;quot; then&lt;br /&gt;
				local titl = mw.title.getCurrentTitle();&lt;br /&gt;
				v = titl.text; &lt;br /&gt;
			end	&lt;br /&gt;
			if mw.ustring.sub (v, 1, 1)  == &amp;quot;.&amp;quot; then &lt;br /&gt;
				local titl = mw.title.getCurrentTitle();&lt;br /&gt;
				local namp = namprt ( titl.text );&lt;br /&gt;
				if		v == &amp;quot;.&amp;quot; &lt;br /&gt;
				or		v == &amp;quot;.p&amp;quot; then	v = namp..&amp;quot;.png&amp;quot;&lt;br /&gt;
				elseif	v == &amp;quot;.j&amp;quot; then	v = namp..&amp;quot;.jpg&amp;quot;&lt;br /&gt;
				elseif	v == &amp;quot;.g&amp;quot; then	v = namp..&amp;quot;.gif&amp;quot;&lt;br /&gt;
				elseif	v == &amp;quot;.s&amp;quot; then	v = namp..&amp;quot;.svg&amp;quot;&lt;br /&gt;
				elseif	v == &amp;quot;.t&amp;quot; then	v = namp..&amp;quot;.tif&amp;quot;&lt;br /&gt;
				else	v = namp..v&lt;br /&gt;
				end	&lt;br /&gt;
			end	&lt;br /&gt;
			tagtab [1] = tagtab [1] .. &amp;quot;\n&amp;quot; .. v	-- add parm&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
--&lt;br /&gt;
--&lt;br /&gt;
	if      mode == 'n' then mode = 'nolines'&lt;br /&gt;
	 elseif mode == 'p' then mode = 'packed'&lt;br /&gt;
	 elseif mode == 'o' then mode = 'packed-overlay'&lt;br /&gt;
	 elseif mode == 'h' then mode = 'packed-hover'&lt;br /&gt;
	 elseif mode == 's' then mode = 'slideshow'&lt;br /&gt;
	 elseif mode == 't' then mode = 'traditional'&lt;br /&gt;
	end&lt;br /&gt;
	local wide  = ppar.w or ppar.width  or ppar.widths or '';&lt;br /&gt;
	local high  = ppar.h or ppar.height or ppar.heights or '';&lt;br /&gt;
	local disp  = ppar.d or ppar.dis or ppar.disp or ppar.display or '';&lt;br /&gt;
	if wide .. high == '' and disp ~= '' then&lt;br /&gt;
		wide = parseval (disp, 'w')&lt;br /&gt;
		high = parseval (disp, 'h')&lt;br /&gt;
	end&lt;br /&gt;
	tagtab [2]   = mode;&lt;br /&gt;
	tagtab [3]   = ppar.c or ppar.caption or '';&lt;br /&gt;
	tagtab [4]   = ppar.p or ppar.perrow or '';&lt;br /&gt;
	tagtab [5]   = wide;&lt;br /&gt;
	tagtab [6]   = high;&lt;br /&gt;
	tagtab [7]   = ppar.s or ppar.style or '';&lt;br /&gt;
	tagtab [8]   = ppar.a or ppar.attr or ppar.class or '';&lt;br /&gt;
	tagtab [9]   = ppar.t or ppar.text or '';&lt;br /&gt;
	tagtab [10]  = fmat;&lt;br /&gt;
	if	fmat == ''  then&lt;br /&gt;
		tagtab [10] = '1';		-- default format&lt;br /&gt;
	end&lt;br /&gt;
	if	form..wide..mode == ''  then&lt;br /&gt;
		if ppar.m == nil and ppar.mode == nil then	-- mode empty ?&lt;br /&gt;
			tagtab [2] = 'nolines';		-- only when completely missing&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	return mw.getCurrentFrame():expandTemplate{ title = &amp;quot;G/layout&amp;quot;, args = tagtab };&lt;br /&gt;
end	-- function gallery&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-- main function gallang&lt;br /&gt;
function p.gallang ( frame )&lt;br /&gt;
	local gpar = frame.args;&lt;br /&gt;
	local temp = '';&lt;br /&gt;
	if gpar.sw == &amp;quot;y&amp;quot; then temp = &amp;quot;y&amp;quot; end	-- and fmat = '0'&lt;br /&gt;
	local ppar = mw.getCurrentFrame():getParent().args;-- parent parms&lt;br /&gt;
	local file = ppar.file or mw.title.getCurrentTitle().text or &amp;quot;&amp;quot;;&lt;br /&gt;
	local fmat = ppar.f or ppar.format or &amp;quot;&amp;quot;;&lt;br /&gt;
	local mode = ppar.m or ppar.mode or &amp;quot;&amp;quot;;&lt;br /&gt;
	local wide = ppar.w or ppar.width or &amp;quot;&amp;quot;;&lt;br /&gt;
	local high = ppar.h or ppar.height or &amp;quot;&amp;quot;;&lt;br /&gt;
	if ppar.sw == &amp;quot;y&amp;quot; then &lt;br /&gt;
		  temp = &amp;quot;y&amp;quot; &lt;br /&gt;
		  fmat = &amp;quot;0&amp;quot;&lt;br /&gt;
	end&lt;br /&gt;
	local tagt = {};&lt;br /&gt;
	tagt [1]   = &amp;quot;\n&amp;quot;;&lt;br /&gt;
	&lt;br /&gt;
	for _, v in ipairs(ppar) do&lt;br /&gt;
		v = mw.text.trim (v);&lt;br /&gt;
		if v ~= '' and file ~= '' then	-- add parm&lt;br /&gt;
			if temp == &amp;quot;y&amp;quot; &lt;br /&gt;
				then tagt [1] = tagt [1] .. file .. &amp;quot;|lang=&amp;quot;..v..&amp;quot;|''Key:'' &amp;quot;..v..&amp;quot;\n&amp;quot;&lt;br /&gt;
				else tagt [1] = tagt [1] .. file .. &amp;quot;|lang=&amp;quot;..v..&amp;quot;|{{LangCapt|&amp;quot;..v..&amp;quot;}}\n&amp;quot;&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
-- exists param &amp;quot;file&amp;quot; and at least one lang ?&lt;br /&gt;
&lt;br /&gt;
	if      mode == 'n' then mode = 'nolines'&lt;br /&gt;
	 elseif mode == 'p' then mode = 'packed'&lt;br /&gt;
	 elseif mode == 'o' then mode = 'packed-overlay'&lt;br /&gt;
	 elseif mode == 'h' then mode = 'packed-hover'&lt;br /&gt;
	 elseif mode == 's' then mode = 'slideshow'&lt;br /&gt;
	 elseif mode == 't' then mode = 'traditional'&lt;br /&gt;
	end&lt;br /&gt;
	local wide  = ppar.w or ppar.width  or ppar.widths or '';&lt;br /&gt;
	local high  = ppar.h or ppar.height or ppar.heights or '';&lt;br /&gt;
	local disp  = ppar.d or ppar.dis or ppar.disp or ppar.display or '';&lt;br /&gt;
	if wide .. high == '' and disp ~= '' then&lt;br /&gt;
		wide = parseval (disp, 'w')&lt;br /&gt;
		high = parseval (disp, 'h')&lt;br /&gt;
	end&lt;br /&gt;
	tagt [2] = mode;&lt;br /&gt;
	tagt [3] = ppar.c or ppar.caption or '';&lt;br /&gt;
	tagt [4] = ppar.p or ppar.perrow or '';&lt;br /&gt;
	tagt [5] = wide;&lt;br /&gt;
	tagt [6] = high;&lt;br /&gt;
	tagt [7] = ppar.s or ppar.style or '';&lt;br /&gt;
	tagt [8] = ppar.a or ppar.attr or ppar.class or '';&lt;br /&gt;
	tagt [9] = ppar.t or ppar.text or '';&lt;br /&gt;
	tagt [10]= fmat;&lt;br /&gt;
	if	fmat == ''  then&lt;br /&gt;
		tagt [10] = '1';		-- default format&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	if tagt [1] == '\n' then &lt;br /&gt;
		return		-- empty&lt;br /&gt;
	else&lt;br /&gt;
		return mw.getCurrentFrame():expandTemplate{ title = &amp;quot;G/layout&amp;quot;, args = tagt };&lt;br /&gt;
	end&lt;br /&gt;
end	-- function gallang&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-- convert size to width and height&lt;br /&gt;
function p.converse (frame) &lt;br /&gt;
	local gpar = frame.args&lt;br /&gt;
	return parseval ( gpar[1], gpar [2] );&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- remove final &amp;quot;px&amp;quot;&lt;br /&gt;
function p.getp (frame) &lt;br /&gt;
	local gpar = frame.args&lt;br /&gt;
	return parseval ( gpar[1], &amp;quot;p&amp;quot;);&lt;br /&gt;
end&lt;br /&gt;
function p.getw (frame) &lt;br /&gt;
	local gpar = frame.args&lt;br /&gt;
	return parseval ( gpar[1], &amp;quot;w&amp;quot;);&lt;br /&gt;
end&lt;br /&gt;
function p.geth (frame) &lt;br /&gt;
	local gpar = frame.args&lt;br /&gt;
	return parseval ( gpar[1], &amp;quot;h&amp;quot;);&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- change understrokes&lt;br /&gt;
function p.pagename (frame ) &lt;br /&gt;
	local gpar = frame.args&lt;br /&gt;
	return mw.ustring.gsub( gpar[1] or ' ', '_', ' ' ),_&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- check whether it can be a filename&lt;br /&gt;
function p.iffile ( frame ) &lt;br /&gt;
	local gpar = frame.args &lt;br /&gt;
	return iffil ( gpar[1], gpar[2] );&lt;br /&gt;
end&lt;br /&gt;
	&lt;br /&gt;
return p;&lt;/div&gt;</summary>
		<author><name>Mediawiki&gt;Sarang</name></author>
	</entry>
</feed>