Module:Redirect-distinguish

From TestWiki
Revision as of 19:59, 10 May 2016 by wikipedia>Nihiltres (Mostly-complete implementation of Template:Redirect-distinguish in Lua)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
local mHatnote = require('Module:Hatnote')
local mHatlist = require('Module:Hatnote list')
local mArguments --initialize lazily
local mTableTools = require('Module:TableTools')
local p = {}

function p.redirectDistinguish (frame)
	mArguments = require('Module:Arguments')
	local args = mArguments.getArgs(frame)
	return p._redirectDistinguish(args)
end

function p._redirectDistinguish(args)
	if not args[1] then
		return mHatnote.makeWikitextError(
			'no redirect supplied',
			'Template:Redirect-distinguish',
			args.category
		)
	end
	--TODO: Lua replacement of #ifexist checks of arg[1]
	if not args[2] then
		return mHatnote.makeWikitextError(
			'no page to be distinguished supplied',
			'Template:Redirect-distinguish',
			args.category
		)
	end
	args = mTableTools.compressSparseArray(args)
	--Assignment by removal here makes for convenient concatenation later
	local redirect = table.remove(args, 1)
	local text = string.format(
		'"%s" redirects here. It is not to be confused with %s.',
		redirect,
		mHatlist.orList(mHatnote.formatPages(unpack(args)))
	)
	return mHatnote._hatnote(text)
end

return p