Toggle menu
15
249
116
28.1K
Kenshi Wiki
Toggle preferences menu
Toggle personal menu
Not logged in
Your IP address will be publicly visible if you make any edits.
Revision as of 04:31, 18 February 2025 by Prd (talk | contribs) (Created page with "local mRedirectHatnote = require('Module:Redirect hatnote') local mArguments = require('Module:Arguments') local mHatnote = require('Module:Hatnote') local p = {} function p.redirectMulti (frame) local args = mArguments.getArgs(frame) --Get maxArg manually because getArgs and table.maxn aren't friends local maxArg = 0 for k, v in pairs(args) do if type(k) == 'number' and k > maxArg then maxArg = k end end --Get number of redirects then remove it from the args ta...")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)


Implements {{redirect-multi}}.


local mRedirectHatnote = require('Module:Redirect hatnote')
local mArguments = require('Module:Arguments')
local mHatnote = require('Module:Hatnote')
local p = {}

function p.redirectMulti (frame)
	local args = mArguments.getArgs(frame)
	--Get maxArg manually because getArgs and table.maxn aren't friends
	local maxArg = 0
	for k, v in pairs(args) do
		if type(k) == 'number' and k > maxArg then maxArg = k end
	end
	--Get number of redirects then remove it from the args table
	local numRedirects = tonumber(args[1]) or 1
	--Manual downshift of arguments; not using table.remove because getArgs is
	--gnarly and it's not a sequence anyway
	for i = 2, maxArg + 1 do args[i - 1] = args[i] end
	--if no arguments past redirects exist, add in a default set
	if maxArg - 2 <= numRedirects then
		for i = 1, numRedirects do
			args[numRedirects + (2 * i)] = args[i] and mHatnote.disambiguate(args[i])
			--this does add in an "and" after the last item, but it's ignored
			args[numRedirects + (2 * i) + 1] = 'and'
		end
	end
	local options = {selfref = args.selfref}
	return mRedirectHatnote._redirect(args, numRedirects, options)
end

return p