Minecraft Wiki

除另有声明,转载时均必须注明出处若簡繁轉換出錯,請以遊戲內為準请勇于扩充与修正内容有兴趣逛逛我们的微博沟通交流,欢迎到社区专页需要协助,请在告示板留言

了解更多

Minecraft Wiki
(以“local p = {} function p.norm( origArgs ) if type( origArgs ) ~= 'table' then origArgs = mw.getCurrentFrame():getParent().args end local args = {} for k, v in...”为内容创建页面)
 
(已更改“模块:ProcessArgs”的保护等级:大量使用的模块([编辑=仅允许管理员](无限期)[移动=仅允许管理员](无限期)))
 
(未显示2个用户的3个中间版本)
第34行: 第34行:
 
for k, v in pairs( parentArgs ) do
 
for k, v in pairs( parentArgs ) do
 
v = mw.text.trim( v )
 
v = mw.text.trim( v )
if ( not norm or norm and v ~= '' ) and not args[k] then
+
if not norm or norm and v ~= '' then
 
args[k] = v
 
args[k] = v
 
end
 
end

2021年3月11日 (四) 03:32的最新版本

This module allows arguments to be merged and normalised. This also has the side-effect of making the arguments a real table instead of an empty table with a metatable to access the args. This allows the # operator to work, as well as allowing new values to be added to the table, without being ignored when iterating.

The norm function will normalise the arguments passed to it, trimming whitespace and setting empty arguments to nil. If a table isn't passed to the function, it will automatically get the current frame's parent arguments table.

The merge function will merge two tables together, overwriting duplicate values from the first table with the second table's value, as well as doing the same as the norm function if the norm parameter is true. If the first parameter isn't a table, it is used as the value for the norm parameter, and it will automatically get the current frame's directly passed arguments table and merge it with the current frame's parent arguments table.

local p = {}
function p.norm( origArgs )
	if type( origArgs ) ~= 'table' then
		origArgs = mw.getCurrentFrame():getParent().args
	end
	local args = {}
	
	for k, v in pairs( origArgs ) do
		v = mw.text.trim( tostring( v ) )
		if v ~= '' then
			args[k] = v
		end
	end
	
	return args
end

function p.merge( origArgs, parentArgs, norm )
	if type( origArgs ) ~= 'table' then
		norm = origArgs
		local f = mw.getCurrentFrame()
		origArgs = f.args
		parentArgs = f:getParent().args
	end
	local args = {}
	
	for k, v in pairs( origArgs ) do
		v = mw.text.trim( tostring( v ) )
		if not norm or norm and v ~= '' then
			args[k] = v
		end
	end
	
	for k, v in pairs( parentArgs ) do
		v = mw.text.trim( v )
		if not norm or norm and v ~= '' then
			args[k] = v
		end
	end
	
	return args
end
return p