Jump to content

Մոդուլ:Category pair

Վիքիպեդիայից՝ ազատ հանրագիտարանից

Documentation for this module may be created at Մոդուլ:Category pair/doc

require('strict')
local getArgs = require('Մոդուլ:Arguments').getArgs
local hatnote = require('Մոդուլ:Hatnote')._hatnote
local formatLink = require('Մոդուլ:Format link')._formatLink

local p = {}

local catNS = mw.site.namespaces.Category.id -- category namespace number

-- Lua implementation of [[Կաղապար:Կատեգորիաների զույգ]]
-- Arguments:
--   prevTitle -- mw.title.Title object for preceding category
--   nextTitle -- mw.title.Title object for succeeding category
-- Returns:
--   hatnote that says "see also" for one or both of prev/next (depending on whether they exist)
function p._pair(prevTitle, nextTitle)
	prevTitle = prevTitle and prevTitle.exists and formatLink{link = prevTitle.fullText}
	nextTitle = nextTitle and nextTitle.exists and formatLink{link = nextTitle.fullText}
	local note = ''
	if prevTitle and nextTitle then -- if both
		note = mw.ustring.format('Տես նաև նախորդ՝ %s և հաջորդ՝ %s կատեգորիաները:',prevTitle, nextTitle)
	elseif prevTitle then -- if only prevTitle
		note = mw.ustring.format('Տես նաև նախորդ %s կատեգորիան։', prevTitle)
	elseif nextTitle then -- if only nextTitle
		note = mw.ustring.format('Տես նաև հաջորդ %s կատեգորիան։', nextTitle)
	else                  -- otherwise neither
		return mw.title.getCurrentTitle().namespace == catNS and '[[Category:Pages using category pair with no output]]' or ''
	end
	return hatnote(note, {extraclasses = 'seealso'})
end

function p.catPair(frame)
	local args = getArgs(frame, {wrappers={'Կաղապար:Կատեգորիաների զույգ'}})
	local prevTitle = args[1] and mw.title.new(args[1],catNS)
	local nextTitle = args[2] and mw.title.new(args[2],catNS)
	return p._pair(prevTitle, nextTitle)
end

function p.prevCat(frame)
	local args = getArgs(frame, {wrappers={'Կաղապար:Preceding category'}})
	local prevTitle = args[1] and mw.title.new(args[1], catNS)
	return p._pair(prevTitle, nil)
end

function p.nextCat(frame)
	local args = getArgs(frame, {wrappers={'Կաղապար:Succeeding category'}})
	local nextTitle = args[1] and mw.title.new(args[1], catNS)
	return p._pair(nil, nextTitle)
end

return p