<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="zh-Hans-CN">
	<id>http://jtdf.net/index.php?action=history&amp;feed=atom&amp;title=%E6%A8%A1%E5%9D%97%3ATemplateParameters2</id>
	<title>模块:TemplateParameters2 - 版本历史</title>
	<link rel="self" type="application/atom+xml" href="http://jtdf.net/index.php?action=history&amp;feed=atom&amp;title=%E6%A8%A1%E5%9D%97%3ATemplateParameters2"/>
	<link rel="alternate" type="text/html" href="http://jtdf.net/index.php?title=%E6%A8%A1%E5%9D%97:TemplateParameters2&amp;action=history"/>
	<updated>2026-04-15T01:47:06Z</updated>
	<subtitle>本wiki的该页面的版本历史</subtitle>
	<generator>MediaWiki 1.33.1</generator>
	<entry>
		<id>http://jtdf.net/index.php?title=%E6%A8%A1%E5%9D%97:TemplateParameters2&amp;diff=4814&amp;oldid=prev</id>
		<title>Xiayu：导入1个版本</title>
		<link rel="alternate" type="text/html" href="http://jtdf.net/index.php?title=%E6%A8%A1%E5%9D%97:TemplateParameters2&amp;diff=4814&amp;oldid=prev"/>
		<updated>2020-07-03T07:01:08Z</updated>

		<summary type="html">&lt;p&gt;导入1个版本&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&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;zh-Hans-CN&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;←上一版本&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;2020年7月3日 (五) 07:01的版本&lt;/td&gt;
				&lt;/tr&gt;
&lt;!-- diff cache key ypk-wiki_:diff::1.12:old-4813:rev-4814 --&gt;
&lt;/table&gt;</summary>
		<author><name>Xiayu</name></author>
		
	</entry>
	<entry>
		<id>http://jtdf.net/index.php?title=%E6%A8%A1%E5%9D%97:TemplateParameters2&amp;diff=4813&amp;oldid=prev</id>
		<title>wiki_&gt;Xiplus：已保护“模块:TemplateParameters2”：高風險模板：5644引用（[编辑=仅管理员]（无限期）[移动=仅管理员]（无限期））</title>
		<link rel="alternate" type="text/html" href="http://jtdf.net/index.php?title=%E6%A8%A1%E5%9D%97:TemplateParameters2&amp;diff=4813&amp;oldid=prev"/>
		<updated>2020-04-26T00:43:13Z</updated>

		<summary type="html">&lt;p&gt;已保护“&lt;a href=&quot;/w/%E6%A8%A1%E5%9D%97:TemplateParameters2&quot; title=&quot;模块:TemplateParameters2&quot;&gt;模块:TemplateParameters2&lt;/a&gt;”：高風險模板：5644引用（[编辑=仅管理员]（无限期）[移动=仅管理员]（无限期））&lt;/p&gt;
&lt;p&gt;&lt;b&gt;新页面&lt;/b&gt;&lt;/p&gt;&lt;div&gt;--[=[&lt;br /&gt;
以[[Module:TemplateParameters]]發想的模組&lt;br /&gt;
功能類似，但套用位置不同，傳遞方式也不一樣&lt;br /&gt;
部分地方為複製品，避免調用時效果走樣&lt;br /&gt;
]=]--&lt;br /&gt;
local p = {}&lt;br /&gt;
local lib_arg = {}&lt;br /&gt;
local yesno = require('Module:Yesno')&lt;br /&gt;
local lib_editstate = {}&lt;br /&gt;
local function errmsg(msg)&lt;br /&gt;
	return require('Module:Error').error({[1] = '[[Module:TemplateParameters2]]錯誤：' .. msg})&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p._pass_spstr2(template, arg_to_spstr, args)&lt;br /&gt;
	---- Module:TemplateParameters.pass_spstr 變種 ----&lt;br /&gt;
	local frame = mw.getCurrentFrame()&lt;br /&gt;
	local input_text = template&lt;br /&gt;
	local input_args = {}&lt;br /&gt;
	local input_title = mw.title.getCurrentTitle()&lt;br /&gt;
	local spilt_args = mw.text.split( arg_to_spstr, '&amp;lt;參數分隔/&amp;gt;')&lt;br /&gt;
	local k, v&lt;br /&gt;
	for _,x in pairs(spilt_args) do&lt;br /&gt;
		local text = mw.text.trim(x)&lt;br /&gt;
		if text ~= '' then&lt;br /&gt;
			if mw.ustring.gmatch(text, '&amp;lt;參數值/&amp;gt;') then&lt;br /&gt;
				local spilt_kv = mw.text.split( text, '&amp;lt;參數值/&amp;gt;')&lt;br /&gt;
				local spilt_list = {}&lt;br /&gt;
				k, v = mw.text.trim(spilt_kv[1]), spilt_kv[2]&lt;br /&gt;
				if k ~= '' then&lt;br /&gt;
					input_args[k] = v&lt;br /&gt;
				end&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	if args and type(args) == type(frame) then&lt;br /&gt;
		for k,v in pairs(spilt_args) do&lt;br /&gt;
			input_args[k] = v&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	frame = frame:newChild{ title = tostring(mw.title.getCurrentTitle().fullText), args = input_args }&lt;br /&gt;
	return frame:preprocess({ text = input_text })&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.pass_spstr2(frame)&lt;br /&gt;
	local args&lt;br /&gt;
	local template = '{{safesubst:'&lt;br /&gt;
	if frame == mw.getCurrentFrame() then&lt;br /&gt;
		-- We're being called via #invoke. The args are passed through to the module&lt;br /&gt;
		-- from the template page, so use the args that were passed into the template.&lt;br /&gt;
		args = frame.args&lt;br /&gt;
		--local parent = frame:getParent().args&lt;br /&gt;
	else&lt;br /&gt;
		-- We're being called from another module or from the debug console, so assume&lt;br /&gt;
		-- the args are passed in directly.&lt;br /&gt;
		if type(frame) ~= type({}) then args = {frame}&lt;br /&gt;
		else args = frame end&lt;br /&gt;
	end&lt;br /&gt;
	if args['_TemplateTitle'] then&lt;br /&gt;
		template = template .. args['_TemplateTitle']&lt;br /&gt;
	end&lt;br /&gt;
	for k, v in pairs( args ) do&lt;br /&gt;
		if mw.text.trim(v) == '' then elseif k ~= '_args' or k ~= '_parent' or k ~= '_TemplateTitle' then&lt;br /&gt;
			local numberargs = tonumber(k)&lt;br /&gt;
			if template == '{{safesubst:' then&lt;br /&gt;
				template = template .. v&lt;br /&gt;
			elseif (mw.ustring.gmatch(args[1], '#invoke:') and k == 2) then&lt;br /&gt;
				template = template .. '|' .. v&lt;br /&gt;
			elseif ((not numberargs) or (numberargs ~= k) or (numberargs == k and mw.ustring.gmatch(v, '=')) ) then&lt;br /&gt;
				template = template .. '|' .. k .. '=' .. v&lt;br /&gt;
			else&lt;br /&gt;
				template = template .. '|' .. v&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	template = template .. '}}'&lt;br /&gt;
	--require('Module:Template invocation').invocation('foo', {'bar', 'baz', abc = 'def'})&lt;br /&gt;
	if ((type(parent) == nil) and (not args['_args']) and (not args['_parent'])) then&lt;br /&gt;
		return mw.getCurrentFrame():preprocess( template )&lt;br /&gt;
	end&lt;br /&gt;
	if (args['_args']) then&lt;br /&gt;
		pass_spstr_arg = args['_args']&lt;br /&gt;
	elseif (args['_parent']) then&lt;br /&gt;
		pass_spstr_arg = args['_parent']&lt;br /&gt;
	end&lt;br /&gt;
	--[=[&lt;br /&gt;
	return require('Module:TemplateParameters').pass_spstr({&lt;br /&gt;
		delnowiki = 0,&lt;br /&gt;
		delmsgnw = 0,&lt;br /&gt;
		code = template,&lt;br /&gt;
		TemplateTitle = args['_TemplateTitle'] or mw.title.getCurrentTitle(),&lt;br /&gt;
		args = pass_spstr_arg&lt;br /&gt;
	})]=]--&lt;br /&gt;
	return p._pass_spstr2(template, pass_spstr_arg, args)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.arg_to_spstr(frame)&lt;br /&gt;
	local args&lt;br /&gt;
	if frame == mw.getCurrentFrame() then&lt;br /&gt;
		-- We're being called via #invoke. The args are passed through to the module&lt;br /&gt;
		-- from the template page, so use the args that were passed into the template.&lt;br /&gt;
		args = frame.args&lt;br /&gt;
	else&lt;br /&gt;
		-- We're being called from another module or from the debug console, so assume&lt;br /&gt;
		-- the args are passed in directly.&lt;br /&gt;
		if type(frame) ~= type({}) then args = {frame}&lt;br /&gt;
		else args = frame end&lt;br /&gt;
	end&lt;br /&gt;
	local wt = ''&lt;br /&gt;
	for k,v in pairs(args) do&lt;br /&gt;
		if wt == '' then&lt;br /&gt;
			wt = k .. '&amp;lt;參數值/&amp;gt;' ..v&lt;br /&gt;
		else&lt;br /&gt;
			wt = wt .. '&amp;lt;參數分隔/&amp;gt;' .. k .. '&amp;lt;參數值/&amp;gt;' ..v&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	return wt&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.arg_to_spstr2(frame)&lt;br /&gt;
	if frame ~= mw.getCurrentFrame() then&lt;br /&gt;
		return errmsg('arg_to_spstr2僅給解析&amp;lt;code&amp;gt;frame:getParent().args&amp;lt;/code&amp;gt;用，無法套用在模組間接調用！')&lt;br /&gt;
	end&lt;br /&gt;
	local wt = ''&lt;br /&gt;
	for k,v in pairs(frame:getParent().args) do&lt;br /&gt;
		if wt == '' then&lt;br /&gt;
			wt = k .. '&amp;lt;參數值/&amp;gt;' ..v&lt;br /&gt;
		else&lt;br /&gt;
			wt = wt .. '&amp;lt;參數分隔/&amp;gt;' .. k .. '&amp;lt;參數值/&amp;gt;' ..v&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	return wt&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return p&lt;/div&gt;</summary>
		<author><name>wiki_&gt;Xiplus</name></author>
		
	</entry>
</feed>