<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://ytptennis.com/w/index.php?action=history&amp;feed=atom&amp;title=Module%3ALua_banner</id>
	<title>Module:Lua banner - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://ytptennis.com/w/index.php?action=history&amp;feed=atom&amp;title=Module%3ALua_banner"/>
	<link rel="alternate" type="text/html" href="https://ytptennis.com/w/index.php?title=Module:Lua_banner&amp;action=history"/>
	<updated>2026-04-17T17:23:29Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.43.6</generator>
	<entry>
		<id>https://ytptennis.com/w/index.php?title=Module:Lua_banner&amp;diff=6419&amp;oldid=prev</id>
		<title>Admin: 1 revision imported: box update</title>
		<link rel="alternate" type="text/html" href="https://ytptennis.com/w/index.php?title=Module:Lua_banner&amp;diff=6419&amp;oldid=prev"/>
		<updated>2026-03-13T17:21:16Z</updated>

		<summary type="html">&lt;p&gt;1 revision imported: box update&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 17:21, 13 March 2026&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-notice&quot; lang=&quot;en&quot;&gt;&lt;div class=&quot;mw-diff-empty&quot;&gt;(No difference)&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://ytptennis.com/w/index.php?title=Module:Lua_banner&amp;diff=3219&amp;oldid=prev</id>
		<title>Admin at 19:47, 7 March 2025</title>
		<link rel="alternate" type="text/html" href="https://ytptennis.com/w/index.php?title=Module:Lua_banner&amp;diff=3219&amp;oldid=prev"/>
		<updated>2025-03-07T19:47:13Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&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 19:47, 7 March 2025&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l52&quot;&gt;Line 52:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 52:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	boxArgs.type = &amp;#039;notice&amp;#039;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	boxArgs.type = &amp;#039;notice&amp;#039;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	boxArgs.small = true&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	boxArgs.small = true&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	boxArgs.image = &#039;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;[[File:Lua-Logo.svg|30px|alt=|link=]]&lt;/del&gt;&#039;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	boxArgs.image = &#039;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;none&lt;/ins&gt;&#039;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	return mMessageBox.main(&amp;#039;mbox&amp;#039;, boxArgs)&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	return mMessageBox.main(&amp;#039;mbox&amp;#039;, boxArgs)&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;end&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;end&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;

&lt;!-- diff cache key tennis_wiki:diff:1.41:old-480:rev-3219:php=table --&gt;
&lt;/table&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://ytptennis.com/w/index.php?title=Module:Lua_banner&amp;diff=480&amp;oldid=prev</id>
		<title>Admin: 1 revision imported: wikipedia module import</title>
		<link rel="alternate" type="text/html" href="https://ytptennis.com/w/index.php?title=Module:Lua_banner&amp;diff=480&amp;oldid=prev"/>
		<updated>2024-07-16T17:08:17Z</updated>

		<summary type="html">&lt;p&gt;1 revision imported: wikipedia module import&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&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 17:08, 16 July 2024&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;4&quot; class=&quot;diff-notice&quot; lang=&quot;en&quot;&gt;&lt;div class=&quot;mw-diff-empty&quot;&gt;(No difference)&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;!-- diff cache key tennis_wiki:diff:1.41:old-479:rev-480 --&gt;
&lt;/table&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://ytptennis.com/w/index.php?title=Module:Lua_banner&amp;diff=479&amp;oldid=prev</id>
		<title>en&gt;Uzume: protect against &quot;mw.title.new()&quot; returns &quot;nil&quot;</title>
		<link rel="alternate" type="text/html" href="https://ytptennis.com/w/index.php?title=Module:Lua_banner&amp;diff=479&amp;oldid=prev"/>
		<updated>2024-04-05T02:45:24Z</updated>

		<summary type="html">&lt;p&gt;protect against &amp;quot;mw.title.new()&amp;quot; returns &amp;quot;nil&amp;quot;&lt;/p&gt;
&lt;a href=&quot;https://ytptennis.com/w/index.php?title=Module:Lua_banner&amp;amp;diff=479&amp;amp;oldid=6418&quot;&gt;Show changes&lt;/a&gt;</summary>
		<author><name>en&gt;Uzume</name></author>
	</entry>
	<entry>
		<id>https://ytptennis.com/w/index.php?title=Module:Lua_banner&amp;diff=6418&amp;oldid=prev</id>
		<title>en&gt;ExE Boss: Fix `wish` parameter</title>
		<link rel="alternate" type="text/html" href="https://ytptennis.com/w/index.php?title=Module:Lua_banner&amp;diff=6418&amp;oldid=prev"/>
		<updated>2021-06-26T17:46:56Z</updated>

		<summary type="html">&lt;p&gt;Fix `wish` parameter&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;-- This module implements the {{lua}} template.&lt;br /&gt;
&lt;br /&gt;
local yesno = require(&amp;#039;Module:Yesno&amp;#039;)&lt;br /&gt;
local mList = require(&amp;#039;Module:List&amp;#039;)&lt;br /&gt;
local mTableTools = require(&amp;#039;Module:TableTools&amp;#039;)&lt;br /&gt;
local mMessageBox = require(&amp;#039;Module:Message box&amp;#039;)&lt;br /&gt;
local TNT = require(&amp;#039;Module:TNT&amp;#039;)&lt;br /&gt;
&lt;br /&gt;
local p = {}&lt;br /&gt;
&lt;br /&gt;
local function format(msg)&lt;br /&gt;
	return TNT.format(&amp;#039;I18n/Lua banner&amp;#039;, msg)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function getConfig()&lt;br /&gt;
	return mw.loadData(&amp;#039;Module:Lua banner/config&amp;#039;)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.main(frame)&lt;br /&gt;
	local origArgs = frame:getParent().args&lt;br /&gt;
	local args = {}&lt;br /&gt;
	for k, v in pairs(origArgs) do&lt;br /&gt;
		v = v:match(&amp;#039;^%s*(.-)%s*$&amp;#039;)&lt;br /&gt;
		if v ~= &amp;#039;&amp;#039; then&lt;br /&gt;
			args[k] = v&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	return p._main(args)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p._main(args, cfg)&lt;br /&gt;
	local modules = mTableTools.compressSparseArray(args)&lt;br /&gt;
	local box = p.renderBox(modules, cfg, args)&lt;br /&gt;
	local trackingCategories = p.renderTrackingCategories(args, modules, nil, cfg)&lt;br /&gt;
	return box .. trackingCategories&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.renderBox(modules, cfg, args)&lt;br /&gt;
	local boxArgs = {}&lt;br /&gt;
	if #modules &amp;lt; 1 then&lt;br /&gt;
		cfg = cfg or getConfig()&lt;br /&gt;
		if cfg[&amp;#039;allow_wishes&amp;#039;] or yesno(args and args.wish) then&lt;br /&gt;
			boxArgs.text = format(&amp;#039;wishtext&amp;#039;)&lt;br /&gt;
		else&lt;br /&gt;
			boxArgs.text = string.format(&amp;#039;&amp;lt;strong class=&amp;quot;error&amp;quot;&amp;gt;%s&amp;lt;/strong&amp;gt;&amp;#039;, format(&amp;#039;error_emptylist&amp;#039;))&lt;br /&gt;
		end&lt;br /&gt;
	else&lt;br /&gt;
		local moduleLinks = {}&lt;br /&gt;
		for i, module in ipairs(modules) do&lt;br /&gt;
			moduleLinks[i] = string.format(&amp;#039;[[:%s]]&amp;#039;, module)&lt;br /&gt;
		end&lt;br /&gt;
		local moduleList = mList.makeList(&amp;#039;bulleted&amp;#039;, moduleLinks)&lt;br /&gt;
		boxArgs.text = format(&amp;#039;header&amp;#039;) .. &amp;#039;\n&amp;#039; .. moduleList&lt;br /&gt;
	end&lt;br /&gt;
	boxArgs.type = &amp;#039;notice&amp;#039;&lt;br /&gt;
	boxArgs.small = true&lt;br /&gt;
	boxArgs.image = string.format(&lt;br /&gt;
		&amp;#039;[[File:Lua-logo-nolabel.svg|30px|alt=%s|link=%s]]&amp;#039;,&lt;br /&gt;
		format(&amp;#039;logo_alt&amp;#039;),&lt;br /&gt;
		format(&amp;#039;logo_link&amp;#039;)&lt;br /&gt;
	)&lt;br /&gt;
	return mMessageBox.main(&amp;#039;mbox&amp;#039;, boxArgs)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.renderTrackingCategories(args, modules, titleObj, cfg)&lt;br /&gt;
	if yesno(args.nocat) then&lt;br /&gt;
		return &amp;#039;&amp;#039;&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	cfg = cfg or getConfig()&lt;br /&gt;
	&lt;br /&gt;
	local cats = {}&lt;br /&gt;
	&lt;br /&gt;
	-- Error category&lt;br /&gt;
	if #modules &amp;lt; 1 and not (cfg[&amp;#039;allow_wishes&amp;#039;] or yesno(args.wish)) and cfg[&amp;#039;error_category&amp;#039;] then&lt;br /&gt;
		cats[#cats + 1] = cfg[&amp;#039;error_category&amp;#039;]&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	-- Lua templates category&lt;br /&gt;
	titleObj = titleObj or mw.title.getCurrentTitle()&lt;br /&gt;
	if titleObj.namespace == 10 &lt;br /&gt;
		and not cfg[&amp;#039;subpage_blacklist&amp;#039;][titleObj.subpageText]&lt;br /&gt;
	then&lt;br /&gt;
		local category = args.category&lt;br /&gt;
		if not category then&lt;br /&gt;
			local pagename = modules[1] and mw.title.new(modules[1])&lt;br /&gt;
			category = pagename and cfg[&amp;#039;module_categories&amp;#039;][pagename.text]&lt;br /&gt;
			if not category then&lt;br /&gt;
				if (cfg[&amp;#039;allow_wishes&amp;#039;] or yesno(args.wish)) and #modules &amp;lt; 1 then&lt;br /&gt;
					category = cfg[&amp;#039;wish_category&amp;#039;]&lt;br /&gt;
				else&lt;br /&gt;
					category = cfg[&amp;#039;default_category&amp;#039;]&lt;br /&gt;
				end&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
		if category then&lt;br /&gt;
			cats[#cats + 1] = category&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	for i, cat in ipairs(cats) do&lt;br /&gt;
		cats[i] = string.format(&amp;#039;[[Category:%s]]&amp;#039;, cat)&lt;br /&gt;
	end&lt;br /&gt;
	return table.concat(cats)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return p&lt;/div&gt;</summary>
		<author><name>en&gt;ExE Boss</name></author>
	</entry>
</feed>