<?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%3A%E5%88%87%E6%8D%A2%E6%98%BE%E7%A4%BA</id>
	<title>模块:切换显示 - 版本历史</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%3A%E5%88%87%E6%8D%A2%E6%98%BE%E7%A4%BA"/>
	<link rel="alternate" type="text/html" href="https://gf-ogas.wiki/index.php?title=%E6%A8%A1%E5%9D%97:%E5%88%87%E6%8D%A2%E6%98%BE%E7%A4%BA&amp;action=history"/>
	<updated>2026-05-13T21:31:46Z</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:%E5%88%87%E6%8D%A2%E6%98%BE%E7%A4%BA&amp;diff=17545&amp;oldid=prev</id>
		<title>秋绘君：​创建页面，内容为“local module = {}  local getArgs = require(&#039;Module:Arguments&#039;).getArgs local sortedArgs = require(&#039;Module:SortArgs&#039;).sortedArgs  local initSpan = function(className, templateName, frame) 	local args = getArgs(frame, { wrappers = &#039;Template:&#039; .. templateName })  	local span = mw.html.create(&#039;span&#039;) 	span:attr(&#039;class&#039;, className)  	if className == &#039;textToggleDisplayButtons&#039; then -- 自Template:切换显示调用。 		local operators = {} -- 操作参数。 		local…”</title>
		<link rel="alternate" type="text/html" href="https://gf-ogas.wiki/index.php?title=%E6%A8%A1%E5%9D%97:%E5%88%87%E6%8D%A2%E6%98%BE%E7%A4%BA&amp;diff=17545&amp;oldid=prev"/>
		<updated>2026-05-10T09:01:22Z</updated>

		<summary type="html">&lt;p&gt;创建页面，内容为“local module = {}  local getArgs = require(&amp;#039;Module:Arguments&amp;#039;).getArgs local sortedArgs = require(&amp;#039;Module:SortArgs&amp;#039;).sortedArgs  local initSpan = function(className, templateName, frame) 	local args = getArgs(frame, { wrappers = &amp;#039;Template:&amp;#039; .. templateName })  	local span = mw.html.create(&amp;#039;span&amp;#039;) 	span:attr(&amp;#039;class&amp;#039;, className)  	if className == &amp;#039;textToggleDisplayButtons&amp;#039; then -- 自Template:切换显示调用。 		local operators = {} -- 操作参数。 		local…”&lt;/p&gt;
&lt;p&gt;&lt;b&gt;新页面&lt;/b&gt;&lt;/p&gt;&lt;div&gt;local module = {}&lt;br /&gt;
&lt;br /&gt;
local getArgs = require(&amp;#039;Module:Arguments&amp;#039;).getArgs&lt;br /&gt;
local sortedArgs = require(&amp;#039;Module:SortArgs&amp;#039;).sortedArgs&lt;br /&gt;
&lt;br /&gt;
local initSpan = function(className, templateName, frame)&lt;br /&gt;
	local args = getArgs(frame, { wrappers = &amp;#039;Template:&amp;#039; .. templateName })&lt;br /&gt;
&lt;br /&gt;
	local span = mw.html.create(&amp;#039;span&amp;#039;)&lt;br /&gt;
	span:attr(&amp;#039;class&amp;#039;, className)&lt;br /&gt;
&lt;br /&gt;
	if className == &amp;#039;textToggleDisplayButtons&amp;#039; then -- 自Template:切换显示调用。&lt;br /&gt;
		local operators = {} -- 操作参数。&lt;br /&gt;
		local contentlist = {} --[[内容表列。结构为：&lt;br /&gt;
												{&lt;br /&gt;
													strcode = 字符串代号,&lt;br /&gt;
													on = @on后缀的内容,&lt;br /&gt;
													off = @off后缀的内容,&lt;br /&gt;
													default = 没有@on或@off后缀的内容,&lt;br /&gt;
												}&lt;br /&gt;
											]]&lt;br /&gt;
		for k, v in sortedArgs(args, frame.args[&amp;#039;@sort&amp;#039;], &amp;#039;|&amp;#039;) do&lt;br /&gt;
			mw.log(k, v)&lt;br /&gt;
			if mw.ustring.sub(k, 1, 1) == &amp;#039;@&amp;#039; then&lt;br /&gt;
				operators[k] = v&lt;br /&gt;
			else&lt;br /&gt;
				local strcode&lt;br /&gt;
				local onoff = nil&lt;br /&gt;
				-- 获取字符串代号和开关类型。&lt;br /&gt;
				if mw.ustring.sub(k, -3) == &amp;#039;@on&amp;#039; then&lt;br /&gt;
					strcode = mw.ustring.sub(k, 1, mw.ustring.len(k) - 3)&lt;br /&gt;
					onoff = &amp;#039;on&amp;#039;&lt;br /&gt;
				elseif mw.ustring.sub(k, -4) == &amp;#039;@off&amp;#039; then&lt;br /&gt;
					strcode = mw.ustring.sub(k, 1, mw.ustring.len(k) - 4)&lt;br /&gt;
					onoff = &amp;#039;off&amp;#039;&lt;br /&gt;
				else&lt;br /&gt;
					strcode = k&lt;br /&gt;
				end&lt;br /&gt;
				onoff = onoff or &amp;#039;default&amp;#039; -- 没有开关类型就是默认值。&lt;br /&gt;
&lt;br /&gt;
				if not contentlist[strcode] then&lt;br /&gt;
					table.insert(contentlist, {strcode = strcode}) -- 增加空的内容表。&lt;br /&gt;
					contentlist[strcode] = #contentlist -- 定位新增加的索引，绑定到参数k。&lt;br /&gt;
				end&lt;br /&gt;
				contentlist[contentlist[strcode]][onoff] = v -- 替换内容。&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
&lt;br /&gt;
		local counter = 0 -- 计数器。&lt;br /&gt;
		for k_operators, v_operators in pairs(operators) do&lt;br /&gt;
			span:attr(&amp;#039;data-key-&amp;#039; .. counter, k_operators):attr(&amp;#039;data-value-&amp;#039; .. counter, v_operators)&lt;br /&gt;
			counter = counter + 1&lt;br /&gt;
		end&lt;br /&gt;
&lt;br /&gt;
		for index, content in ipairs(contentlist) do&lt;br /&gt;
			span:tag(&amp;#039;span&amp;#039;):attr(&amp;#039;data-order&amp;#039;, index - 1):attr(&amp;#039;data-key&amp;#039;, content.strcode):tag(&amp;#039;span&amp;#039;):addClass(&lt;br /&gt;
				&amp;#039;textToggleDisplayButtonLabelText on&amp;#039;&lt;br /&gt;
			):wikitext(frame:preprocess(content.on or content.default)):done():tag(&amp;#039;span&amp;#039;):addClass(&lt;br /&gt;
				&amp;#039;textToggleDisplayButtonLabelText off&amp;#039;&lt;br /&gt;
			):wikitext(frame:preprocess(content.off or content.default))&lt;br /&gt;
		end&lt;br /&gt;
	else&lt;br /&gt;
		local counter = 0 -- 计数器&lt;br /&gt;
		for k, v in pairs(args) do&lt;br /&gt;
			if v ~= nil then&lt;br /&gt;
				span:attr(&amp;#039;data-key-&amp;#039; .. counter, k):attr(&amp;#039;data-value-&amp;#039; .. counter, v)&lt;br /&gt;
				counter = counter + 1&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	return tostring(span)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function module.template(frame)&lt;br /&gt;
	local args = getArgs(frame, { wrappers = &amp;#039;Template:切换显示/模板&amp;#039; })&lt;br /&gt;
&lt;br /&gt;
	local tTitle = args[&amp;#039;@&amp;#039;] or &amp;#039;&amp;#039;&lt;br /&gt;
	if tTitle == &amp;#039;&amp;#039; then&lt;br /&gt;
		return nil&lt;br /&gt;
	end&lt;br /&gt;
	local tag = args[&amp;#039;@tag&amp;#039;]&lt;br /&gt;
&lt;br /&gt;
	local branches = {}&lt;br /&gt;
	local params = {}&lt;br /&gt;
	for k, v in sortedArgs(args, frame.args[&amp;#039;@sort&amp;#039;], &amp;#039;|&amp;#039;) do&lt;br /&gt;
		if not mw.ustring.match(k, &amp;#039;^@[^@]&amp;#039;) then&lt;br /&gt;
			local i = 1&lt;br /&gt;
			while true do&lt;br /&gt;
				local _, j, flag = mw.ustring.find(k, &amp;#039;@(.)&amp;#039;, i)&lt;br /&gt;
				if j == nil then&lt;br /&gt;
					i = mw.ustring.len(k)&lt;br /&gt;
					break&lt;br /&gt;
				elseif flag == &amp;#039;@&amp;#039; then&lt;br /&gt;
					i = j + 1&lt;br /&gt;
				else&lt;br /&gt;
					i = j - 2&lt;br /&gt;
					break&lt;br /&gt;
				end&lt;br /&gt;
			end&lt;br /&gt;
&lt;br /&gt;
			local param = mw.text.trim(mw.ustring.gsub(mw.ustring.sub(k, 1, i), &amp;#039;@@&amp;#039;, &amp;#039;@&amp;#039;))&lt;br /&gt;
			local branch = mw.ustring.sub(k, i + 2)&lt;br /&gt;
			if mw.text.trim(param) ~= &amp;#039;&amp;#039; then&lt;br /&gt;
				if params[param] == nil then&lt;br /&gt;
					params[param] = {}&lt;br /&gt;
				end&lt;br /&gt;
				if branch ~= &amp;#039;&amp;#039; and branches[branch] == nil then&lt;br /&gt;
					branches[branch] = #branches + 1&lt;br /&gt;
					table.insert(branches, branch)&lt;br /&gt;
				end&lt;br /&gt;
				if branch == &amp;#039;&amp;#039; then&lt;br /&gt;
					params[param][0] = v&lt;br /&gt;
				else&lt;br /&gt;
					params[param][branch] = v&lt;br /&gt;
				end&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	local result = {}&lt;br /&gt;
	for _, branch in ipairs(branches) do&lt;br /&gt;
		if type(branch) == &amp;#039;string&amp;#039; then&lt;br /&gt;
			local tArgs = {}&lt;br /&gt;
			for param, bValue in pairs(params) do&lt;br /&gt;
				tArgs[param] = bValue[branch] or bValue[0]&lt;br /&gt;
			end&lt;br /&gt;
&lt;br /&gt;
			table.insert(&lt;br /&gt;
				result,&lt;br /&gt;
				frame:expandTemplate {&lt;br /&gt;
					title = &amp;#039;切换显示&amp;#039;,&lt;br /&gt;
					args = {&lt;br /&gt;
						[1] = branch,&lt;br /&gt;
						[2] = frame:expandTemplate {title = tTitle, args = tArgs},&lt;br /&gt;
						[3] = tag&lt;br /&gt;
					}&lt;br /&gt;
				}&lt;br /&gt;
			)&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	return table.concat(result)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function module.button(frame)&lt;br /&gt;
	return initSpan(&amp;#039;textToggleDisplayButtons&amp;#039;, &amp;#039;切换显示按钮&amp;#039;, frame)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function module.style(frame)&lt;br /&gt;
	return initSpan(&amp;#039;textToggleDisplayStyle&amp;#039;, &amp;#039;切换显示样式&amp;#039;, frame)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function module.buttonStyle(frame)&lt;br /&gt;
	return initSpan(&amp;#039;textToggleDisplayButtonsStyle&amp;#039;, &amp;#039;切换显示按钮样式&amp;#039;, frame)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return module&lt;/div&gt;</summary>
		<author><name>秋绘君</name></author>
	</entry>
</feed>