Jump to content

Module:Redirect-distinguish

Permanently protected module
From Wikipedia, the free encyclopedia
This is an old revision of this page, as edited by Nihiltres (talk | contribs) at 19:59, 10 May 2016 (Mostly-complete implementation of Template:Redirect-distinguish in Lua). The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.
(diff) ← Previous 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