Please note that some information on this wiki is still based on the demo version.
If you notice any errors, feel free to correct them.

Module:ArgsUtil

From Super Fantasy Kingdom Official Wiki
Revision as of 23:46, 21 October 2025 by DCello (talk | contribs) (1 revision imported)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

This is a basic module for processing args. Usage:

<syntaxhighlight lang="lua"> local util_args = require('Module:ArgsUtil')

local p = {}

function p.main(frame)

 local args = util_args.merge() -- it is not necessary to pass a `frame` object; `merge` will generate its own
 mw.logObject(args)
 -- `args` now contains args passed via the template merged with defaults provided directly via the invoke.
 -- anything the user sent via the template will be given priority.

end

return p </syntaxhighlight>

Extending this module

By design, {{ArgsUtil}}m is shipped with only a single function and no customization available; this simplifies documentation and covers nearly all use cases. An extended version of this module is available at Module:ArgsUtil on the support wiki if you want additional functionality; and you can of course feel free to modify this module on your own wiki as needed.


local p = {}

function p.merge()
	local f = mw.getCurrentFrame()
	local origArgs = f.args
	local parentArgs = f:getParent().args

	local args = {}
	
	for k, v in pairs(origArgs) do
		v = mw.text.trim(tostring(v))
		if v ~= '' then
			args[k] = v
		end
	end
	
	for k, v in pairs(parentArgs) do
		v = mw.text.trim(v)
		if v ~= '' then
			args[k] = v
		end
	end
	
	return args
end

return p