<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="zh-Hans">
	<id>https://gf-ogas.wiki/index.php?action=history&amp;feed=atom&amp;title=%E6%A8%A1%E5%9D%97%3ALua_banner</id>
	<title>模块:Lua banner - 版本历史</title>
	<link rel="self" type="application/atom+xml" href="https://gf-ogas.wiki/index.php?action=history&amp;feed=atom&amp;title=%E6%A8%A1%E5%9D%97%3ALua_banner"/>
	<link rel="alternate" type="text/html" href="https://gf-ogas.wiki/index.php?title=%E6%A8%A1%E5%9D%97:Lua_banner&amp;action=history"/>
	<updated>2026-05-13T21:37:42Z</updated>
	<subtitle>本wiki上该页面的版本历史</subtitle>
	<generator>MediaWiki 1.45.1</generator>
	<entry>
		<id>https://gf-ogas.wiki/index.php?title=%E6%A8%A1%E5%9D%97:Lua_banner&amp;diff=17440&amp;oldid=prev</id>
		<title>秋绘君：​创建页面，内容为“local yesno = require(&#039;Module:Yesno&#039;) local mList = require(&#039;Module:List&#039;) local mTableTools = require(&#039;Module:TableTools&#039;) local mMessageBox = require(&#039;Module:Message box&#039;)  local p = {}  function p.main(frame) 	local origArgs = frame:getParent().args 	local args = {} 	for k, v in pairs(origArgs) do 		v = v:match(&#039;^%s*(.-)%s*$&#039;) 		if v ~= &#039;&#039; then 			args[k] = v 		end 	end 	return p._main(frame, args) end  function p._main(frame, args) 	local modules = mTableTo…”</title>
		<link rel="alternate" type="text/html" href="https://gf-ogas.wiki/index.php?title=%E6%A8%A1%E5%9D%97:Lua_banner&amp;diff=17440&amp;oldid=prev"/>
		<updated>2026-05-09T17:16:55Z</updated>

		<summary type="html">&lt;p&gt;创建页面，内容为“local yesno = require(&amp;#039;Module:Yesno&amp;#039;) local mList = require(&amp;#039;Module:List&amp;#039;) local mTableTools = require(&amp;#039;Module:TableTools&amp;#039;) local mMessageBox = require(&amp;#039;Module:Message box&amp;#039;)  local p = {}  function p.main(frame) 	local origArgs = frame:getParent().args 	local args = {} 	for k, v in pairs(origArgs) do 		v = v:match(&amp;#039;^%s*(.-)%s*$&amp;#039;) 		if v ~= &amp;#039;&amp;#039; then 			args[k] = v 		end 	end 	return p._main(frame, args) end  function p._main(frame, args) 	local modules = mTableTo…”&lt;/p&gt;
&lt;p&gt;&lt;b&gt;新页面&lt;/b&gt;&lt;/p&gt;&lt;div&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;
&lt;br /&gt;
local p = {}&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(frame, args)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p._main(frame, args)&lt;br /&gt;
	local modules = mTableTools.compressSparseArray(args)&lt;br /&gt;
	-- 预处理：将参数统一格式为 Module:xxx&lt;br /&gt;
	for i = 1, #modules do&lt;br /&gt;
		modules[i] = &amp;#039;Module:&amp;#039; .. mw.title.new(modules[i]).text&lt;br /&gt;
	end&lt;br /&gt;
	local box = p.renderBox(modules)&lt;br /&gt;
	local trackingCategories = p.renderTrackingCategories(args, modules)&lt;br /&gt;
	return box .. trackingCategories&lt;br /&gt;
end&lt;br /&gt;
-- if action=edit &lt;br /&gt;
function p.main2(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;
	local modules = mTableTools.compressSparseArray(args)&lt;br /&gt;
	return p.renderBox(modules)&lt;br /&gt;
end&lt;br /&gt;
--end&lt;br /&gt;
&lt;br /&gt;
function p.renderBox(modules)&lt;br /&gt;
	local boxArgs = {}&lt;br /&gt;
	if #modules &amp;lt; 1 then&lt;br /&gt;
		boxArgs.text = &amp;#039;&amp;lt;strong class=&amp;quot;error&amp;quot;&amp;gt;錯誤：没有指定-{zh-hans:模块; zh-hant:模組;}-&amp;lt;/strong&amp;gt;&amp;#039;&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;
			moduleLinks[i] = &amp;#039;[[:&amp;#039; .. moduleLinks[i] .. &amp;#039;]]&amp;#039;&lt;br /&gt;
		end&lt;br /&gt;
		local moduleList = mList.makeList(&amp;#039;bulleted&amp;#039;, moduleLinks)&lt;br /&gt;
		boxArgs.text = &amp;#039;此&amp;#039; ..&lt;br /&gt;
			(mw.title.getCurrentTitle():inNamespaces(828,829) and &amp;#039;-{zh-hans:模块; zh-hant:模組;}-&amp;#039; or &amp;#039;模板&amp;#039;) ..&lt;br /&gt;
			&amp;#039;使用[[Help:Lua|Lua語言]]：\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 = &amp;#039;[[File:Lua-logo.svg|30px|alt=|link=]]&amp;#039;&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)&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;
	-- 子页面标题在黑名单内则不添加分类&lt;br /&gt;
	-- 例如{{Lua}}被嵌入到 Template:xxx/doc 时，只在 Template:xxx 添加分类，而不在 doc 添加分类&lt;br /&gt;
	titleObj = titleObj or mw.title.getCurrentTitle()&lt;br /&gt;
	local subpageBlacklist = {&lt;br /&gt;
		doc = true,&lt;br /&gt;
		sandbox = true,&lt;br /&gt;
		sandbox2 = true,&lt;br /&gt;
		testcases = true&lt;br /&gt;
	}&lt;br /&gt;
	if subpageBlacklist[titleObj.subpageText] then&lt;br /&gt;
		return &amp;#039;&amp;#039;&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	local cats = {}&lt;br /&gt;
&lt;br /&gt;
	-- 错误分类&lt;br /&gt;
	if #modules &amp;lt; 1 then&lt;br /&gt;
		cats[#cats + 1] = &amp;#039;有错误的Lua模板&amp;#039;&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	local category = args.category&lt;br /&gt;
	-- 添加特殊分类&lt;br /&gt;
	if not category then&lt;br /&gt;
		local categories = {&lt;br /&gt;
			[&amp;#039;Module:String&amp;#039;] = &amp;#039;使用String模块的模板&amp;#039;,&lt;br /&gt;
			[&amp;#039;Module:Nav&amp;#039;] = &amp;#039;使用Nav模块的模板&amp;#039;,&lt;br /&gt;
			--[&amp;#039;Module:Math&amp;#039;] = &amp;#039;使用Math模块的模板&amp;#039;,&lt;br /&gt;
			--[&amp;#039;Module:BaseConvert&amp;#039;] = &amp;#039;使用BaseConvert模块的模板&amp;#039;,&lt;br /&gt;
			--[&amp;#039;Module:Citation&amp;#039;] = &amp;#039;使用Citation模块的模板&amp;#039;&lt;br /&gt;
		}&lt;br /&gt;
		categories[&amp;#039;Module:Citation/CS1&amp;#039;] = categories[&amp;#039;Module:Citation&amp;#039;]&lt;br /&gt;
		category = modules[1] and categories[modules[1]]&lt;br /&gt;
		category = category or &amp;#039;x&amp;#039;&lt;br /&gt;
	end&lt;br /&gt;
	cats[#cats + 1] = category&lt;br /&gt;
&lt;br /&gt;
	for i, cat in ipairs(cats) do&lt;br /&gt;
		cats[i] = string.gsub(string.format(&amp;#039;[[Category:%s]]&amp;#039;, cat), &amp;#039;%[%[Category:x%]%]&amp;#039;, &amp;#039;&amp;#039;)&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	-- 为防止[[Category:Lua模板]]泛滥，当只使用一个模块且添加了特殊分类后，不再添加[[Category:Lua模板]]&lt;br /&gt;
	-- 这尤其是为了防止上千个使用[[Module:Nav]]的模板涌入[[Category:Lua模板]]（如果真的有人准备大量添加{{Lua|Nav}}）&lt;br /&gt;
	if #modules == 1 and category ~= &amp;#039;x&amp;#039; then&lt;br /&gt;
		return table.concat(cats)&lt;br /&gt;
	else&lt;br /&gt;
		return table.concat(cats) .. &amp;#039;[[Category:Lua模板]]&amp;#039;&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return p&lt;/div&gt;</summary>
		<author><name>秋绘君</name></author>
	</entry>
</feed>