మాడ్యూల్:Category see also: కూర్పుల మధ్య తేడాలు

Content deleted Content added
create replacement for Template:Category see also
 
keep the "Category:" prefix if we have one link
పంక్తి 12:
end
 
-- Gets the length of the sequence seq. Usually this should be done with the #
-- Given a project string, returns a function that formats categories for that
-- operator, but we need to work with tables that get their values through an
-- project. The project can be nil, in which case it formats the category for
-- __index metamethod.
-- the current project.
local function getSequenceLength(seq)
local length = 0
for i in ipairs(seq) do
length = i
end
return length
end
 
-- Given a projecttable stringof options, returns a function that formats categories for that
-- those options.
--
-- Options:
-- project - a project code such as "fr" (for the French Wikipedia)
-- showPrefix - a boolean value for whether to show the "Category:" prefix
-- (and the project prefix if specified)
--
-- This is implemented as a function generator rather than a simple function
-- so that we can just process the project nameoptions once, instead of every time we
-- we generate a category.
local function generateCategoryLinkMakernewCategoryLinker(projectoptions)
local formatString
if options.project then
if options.showPrefix then
formatString = '[[:' .. project .. ':Category:%s|%s]]'
formatString = '[[:' .. options.project .. ':Category:%s]]'
else
formatString = '[[:' .. options.project .. ':Category:%s|%s]]'
end
else
if options.showPrefix then
formatString = '[[:Category:%s|%s]]'
formatString = '[[:Category:%s]]'
else
formatString = '[[:Category:%s|%s]]'
end
end
return function (category)
-- We can get away with using two arguments even when showDisplay is
-- false, as string.format ignores extra arguments as long as there is
-- an argument for each flag in the format string.
return formatString:format(category, category)
end
Line 32 ⟶ 58:
 
function p._main(args)
local nLinks = getSequenceLength(args)
if not args[1] then
 
if notnLinks < args[1] then
return makeWikitextError('at least one parameter required')
end
 
local makeCategoryLink = generateCategoryLinkMaker(args.project)
local makeCategoryLink = newCategoryLinker{
project = args.project,
showPrefix = nLinks == 1,
}
 
local links = {}
for i, cat in ipairs(args) do
links[i] = makeCategoryLink(cat)
end
 
-- Don't output a comma before the "and" if we have only two links.
local conjunction
if nLinks == 2 then
conjunction = ' and '
else
conjunction = ', and '
end
 
local hatnoteText = string.format(
'%s: %s.',
args.LABEL or 'See also',
mw.text.listToText(links, ', ', ', and 'conjunction)
)
return mHatnote._hatnote(hatnoteText, {selfref = true})
"https://te.wikipedia.org/wiki/మాడ్యూల్:Category_see_also" నుండి వెలికితీశారు