Toggle menu
15
242
113
28K
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:38, 18 February 2025 by Prd (talk | contribs) (Created page with "local mHatnote = require('Module:Hatnote') local mHatlist = require('Module:Hatnote list') local mYesno = require('Module:Yesno') local mArguments --initialize lazily local p = {} function p.technicalReasons (frame) mArguments = require('Module:Arguments') local args = mArguments.getArgs(frame) return p._technicalReasons(args) end function p._technicalReasons (args) --Return an error if no redirect's provided if not args[1] then return mHatnote.makeWikitextError...")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)


Implements {{technical reasons}}.


local mHatnote = require('Module:Hatnote')
local mHatlist = require('Module:Hatnote list')
local mYesno = require('Module:Yesno')
local mArguments --initialize lazily
local p = {}

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

function p._technicalReasons (args)
	--Return an error if no redirect's provided
	if not args[1] then
		return mHatnote.makeWikitextError(
			'no redirect provided',
			'Template:Technical reasons',
			args.category
		)
	end
	--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
	--If there's only 1–2 arguments, set from to 1 to default things nicely.
	--Note that if (not args[2]) this doesn't matter either way.
	local from = maxArg > 2 and 2 or 1
	--Structure the forSee table
	local forSee = mHatlist.forSeeArgsToTable(args, from)
	--Suppresses defaulting; for-see table rows that would include defaulting
	--are set to nil.
	for k, v in pairs(forSee) do
		if not v.use or #v.pages == 0 then forSee[k] = nil end
	end
	--Stringify the forSee table or set it nil
	forSee = #forSee ~= 0 and mHatlist.forSeeTableToString(forSee) or nil
	local whatRedirects = mYesno(args.prefix) and 'terms beginning with "' .. args[1] .. '" redirect' or '"' .. args[1] .. '" redirects'
	local lead = string.format(
		'For [[Wikipedia:Naming conventions (technical restrictions)|technical reasons]], %s here.',
		whatRedirects
	)
	local text = table.concat({lead, forSee}, ' ')
	
	local options = {extraclasses = 'plainlinks selfreference noprint', selfref = true}
	
	return mHatnote._hatnote(text, options)
end

return p