<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.tachyony.co.uk/w/index.php?action=history&amp;feed=atom&amp;title=Module%3ABabel</id>
	<title>Module:Babel - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.tachyony.co.uk/w/index.php?action=history&amp;feed=atom&amp;title=Module%3ABabel"/>
	<link rel="alternate" type="text/html" href="https://wiki.tachyony.co.uk/w/index.php?title=Module:Babel&amp;action=history"/>
	<updated>2026-05-15T11:30:37Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.35.5</generator>
	<entry>
		<id>https://wiki.tachyony.co.uk/w/index.php?title=Module:Babel&amp;diff=5797&amp;oldid=prev</id>
		<title>Tachyony: Created page with &quot;local p = {}  local getArgs  local function showUserbox(frame, v, nocat) 	local maybeNocat = &#039;&#039; 	if nocat then 		maybeNocat = &#039;|nocat=yes&#039; 	end 	return frame:preprocess(&#039;{{User &#039;..v..maybeNocat..&#039;}}&#039;) end  function p.main(frame) 	if not getArgs then 		getArgs = require(&#039;Module:Arguments&#039;).getArgs 	end 	local args = getArgs(frame, {wrappers = &#039;Template:Babel&#039;})  	local ret = mw.html.create(&#039;table&#039;) 				:attr(&#039;role&#039;, &#039;presentation&#039;) 				:addClass(&#039;userboxes&#039;) 				:css( {...&quot;</title>
		<link rel="alternate" type="text/html" href="https://wiki.tachyony.co.uk/w/index.php?title=Module:Babel&amp;diff=5797&amp;oldid=prev"/>
		<updated>2022-01-15T01:56:29Z</updated>

		<summary type="html">&lt;p&gt;Created page with &amp;quot;local p = {}  local getArgs  local function showUserbox(frame, v, nocat) 	local maybeNocat = &amp;#039;&amp;#039; 	if nocat then 		maybeNocat = &amp;#039;|nocat=yes&amp;#039; 	end 	return frame:preprocess(&amp;#039;{{User &amp;#039;..v..maybeNocat..&amp;#039;}}&amp;#039;) end  function p.main(frame) 	if not getArgs then 		getArgs = require(&amp;#039;Module:Arguments&amp;#039;).getArgs 	end 	local args = getArgs(frame, {wrappers = &amp;#039;Template:Babel&amp;#039;})  	local ret = mw.html.create(&amp;#039;table&amp;#039;) 				:attr(&amp;#039;role&amp;#039;, &amp;#039;presentation&amp;#039;) 				:addClass(&amp;#039;userboxes&amp;#039;) 				:css( {...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;local p = {}&lt;br /&gt;
&lt;br /&gt;
local getArgs&lt;br /&gt;
&lt;br /&gt;
local function showUserbox(frame, v, nocat)&lt;br /&gt;
	local maybeNocat = &amp;#039;&amp;#039;&lt;br /&gt;
	if nocat then&lt;br /&gt;
		maybeNocat = &amp;#039;|nocat=yes&amp;#039;&lt;br /&gt;
	end&lt;br /&gt;
	return frame:preprocess(&amp;#039;{{User &amp;#039;..v..maybeNocat..&amp;#039;}}&amp;#039;)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.main(frame)&lt;br /&gt;
	if not getArgs then&lt;br /&gt;
		getArgs = require(&amp;#039;Module:Arguments&amp;#039;).getArgs&lt;br /&gt;
	end&lt;br /&gt;
	local args = getArgs(frame, {wrappers = &amp;#039;Template:Babel&amp;#039;})&lt;br /&gt;
&lt;br /&gt;
	local ret = mw.html.create(&amp;#039;table&amp;#039;)&lt;br /&gt;
				:attr(&amp;#039;role&amp;#039;, &amp;#039;presentation&amp;#039;)&lt;br /&gt;
				:addClass(&amp;#039;userboxes&amp;#039;)&lt;br /&gt;
				:css( {&lt;br /&gt;
						float = args.align or &amp;#039;right&amp;#039;,&lt;br /&gt;
						[&amp;#039;margin-left&amp;#039;] = (args.left or &amp;#039;1&amp;#039;) .. &amp;#039;em&amp;#039;,&lt;br /&gt;
						[&amp;#039;margin-bottom&amp;#039;] = (args.bottom or &amp;#039;0&amp;#039;) .. &amp;#039;em&amp;#039;,&lt;br /&gt;
						width = (args.width or &amp;#039;248&amp;#039;) .. &amp;#039;px&amp;#039;,&lt;br /&gt;
						clear = args.align or &amp;#039;right&amp;#039;,&lt;br /&gt;
						color = args.textcolor or &amp;#039;#000000&amp;#039;,&lt;br /&gt;
						border = (args.bordercolor or &amp;#039;#99B3FF&amp;#039;) .. &amp;#039; solid &amp;#039; .. (args.solid or 1)..&amp;#039;px&amp;#039;&lt;br /&gt;
					} )&lt;br /&gt;
&lt;br /&gt;
	local nocat = args.nocat and string.lower(args.nocat) == &amp;#039;yes&amp;#039;&lt;br /&gt;
&lt;br /&gt;
	if args.shadow and string.lower(args.shadow) == &amp;#039;yes&amp;#039; then&lt;br /&gt;
		ret:css({ [&amp;#039;box-shadow&amp;#039;] = &amp;#039;0 2px 4px rgb(0,0,0,0.2)&amp;#039; })&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	ret:cssText( args[&amp;#039;extra-css&amp;#039;] or &amp;#039;&amp;#039; )&lt;br /&gt;
&lt;br /&gt;
	local color = args.color or &amp;#039;inherit&amp;#039;&lt;br /&gt;
	local row1 = ret:tag(&amp;#039;tr&amp;#039;)&lt;br /&gt;
	local row2 = ret:tag(&amp;#039;tr&amp;#039;)&lt;br /&gt;
	local row3 = ret:tag(&amp;#039;tr&amp;#039;)&lt;br /&gt;
&lt;br /&gt;
	local body_cells = row2:tag(&amp;#039;td&amp;#039;)&lt;br /&gt;
				:css(&amp;#039;vertical-align&amp;#039;, &amp;#039;middle !important&amp;#039;)&lt;br /&gt;
&lt;br /&gt;
	local userboxes&lt;br /&gt;
	-- Special message for when first argument is blank; otherwise treat it as normal&lt;br /&gt;
	if args[1] and args[1]:find(&amp;#039;%S&amp;#039;) then&lt;br /&gt;
		userboxes = showUserbox(frame, args[1], nocat)&lt;br /&gt;
	else&lt;br /&gt;
		userboxes = args.noboxestext or &amp;quot;&amp;#039;&amp;#039;You haven&amp;#039;t set up any languages. Please see [[Template:Babel/doc]] for help.&amp;#039;&amp;#039;&amp;quot;&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	body_cells:wikitext(userboxes)&lt;br /&gt;
&lt;br /&gt;
	-- &amp;quot;remove&amp;quot; args[1] so it isn&amp;#039;t looked at in the loop&lt;br /&gt;
	-- table.remove(args,1) doesn&amp;#039;t produce desired result&lt;br /&gt;
	args[1] = &amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
	-- Keep track of how many columns are in this table&lt;br /&gt;
	local col_span = 1&lt;br /&gt;
	for _, v in ipairs( args ) do&lt;br /&gt;
		-- ! indicates a new cell should be created&lt;br /&gt;
		if v:find(&amp;#039;%S&amp;#039;) and v ~= &amp;#039;!&amp;#039; then&lt;br /&gt;
			body_cells:wikitext( showUserbox(frame, v, nocat) )&lt;br /&gt;
		-- Recycling body_cells for &amp;lt;td&amp;gt;&lt;br /&gt;
		elseif v and v == &amp;#039;!&amp;#039; then&lt;br /&gt;
			col_span = col_span + 1&lt;br /&gt;
			body_cells:done()&lt;br /&gt;
			body_cells = row2:tag(&amp;#039;td&amp;#039;)&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	row1:tag(&amp;#039;th&amp;#039;)&lt;br /&gt;
			:css({ [&amp;#039;background-color&amp;#039;] = color,&lt;br /&gt;
					[&amp;#039;text-align&amp;#039;] = &amp;#039;center&amp;#039; })&lt;br /&gt;
			:attr(&amp;#039;colspan&amp;#039;,col_span)&lt;br /&gt;
			:wikitext( args.header or &amp;#039;[[Wikipedia:Babel]]&amp;#039; )&lt;br /&gt;
			:done()&lt;br /&gt;
&lt;br /&gt;
	row3:tag(&amp;#039;td&amp;#039;)&lt;br /&gt;
			:css({ [&amp;#039;background-color&amp;#039;] = color,&lt;br /&gt;
					[&amp;#039;text-align&amp;#039;] = &amp;#039;center&amp;#039; })&lt;br /&gt;
			:attr(&amp;#039;colspan&amp;#039;,col_span)&lt;br /&gt;
			:wikitext( args.footer or &amp;#039;[[:Category:Wikipedians by language|Search user languages]]&amp;#039; )&lt;br /&gt;
			:done()&lt;br /&gt;
&lt;br /&gt;
	if args[&amp;#039;special-boxes&amp;#039;] then&lt;br /&gt;
		body_cells:wikitext(args[&amp;#039;special-boxes&amp;#039;])&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	body_cells:done()&lt;br /&gt;
&lt;br /&gt;
	return tostring(ret)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return p&lt;/div&gt;</summary>
		<author><name>Tachyony</name></author>
	</entry>
</feed>