If you find this page useful and would like to be notified of changes made to this page, start by inputting your email below.
powered by ChangeDetection
Documentation for this module may be created at Module:See also/doc
--[[
-- This module produces a "See also: a, b and c" link. It implements the
-- template {{see also}}.
--]]
local mHatnote = require('Module:Hatnote')
local mTableTools -- lazily initialise
local mArguments -- lazily initialise
local p = {}
function p.seealso(frame)
mTableTools = require('Module:TableTools')
mArguments = require('Module:Arguments')
local args = mArguments.getArgs(frame, {parentOnly = true})
local pages = {}
for k, v in pairs(args) do
if type(k) == 'number' then
local numstring = tostring(k)
local display = args['label ' .. numstring]
or args['l' .. numstring]
local page = {v, display}
pages[k] = page
end
end
pages = mTableTools.compressSparseArray(pages)
if not pages[1] then
return mHatnote.makeWikitextError(
'no page names specified',
'Template:See also#Errors',
args.category
)
end
local options = {
altphrase = args.altphrase,
selfref = args.selfref
}
return p._seealso(options, unpack(pages))
end
function p._seealso(options, ...)
local altphrase = options and options.altphrase or 'See also'
local links = mHatnote.formatPageTables(...)
links = mw.text.listToText(links)
local text = altphrase .. ': ' .. links
-- Pass options through.
local hnOptions = {}
hnOptions.selfref = options.selfref
hnOptions.extraclasses = 'boilerplate seealso'
return mHatnote._hatnote(text, hnOptions)
end
return p