Module:Broader: Difference between revisions

355 bytes added ,  2 years ago
m
7 revisions imported from wikipedia:Module:Broader
(rm stacking classes, not in regular hatnotes)
m (7 revisions imported from wikipedia:Module:Broader)
 
(5 intermediate revisions by 3 users not shown)
Line 3:
-- the {{broader}} template.
--]]
}
 
local mHatlist = require('Module:Hatnote list')
local mHatnote = require('Module:Hatnote')
local mArguments -- lazily initialiseinitialize
local mTableTools --lazily initialize
 
local p = {}
 
local s = { --localizable strings
local textbroaderForm = string.format('For a broader coverage related to of %s, see %s.', topic, page)
topicdefaultTopic = topic or 'this topic'
}
 
function p.broader(frame)
mArguments = require('Module:Arguments')
mTableTools = require('Module:TableTools')
local argsoriginalArgs = mArguments.getArgs(frame, {parentOnly = true})
local page = args[1]
local args = mTableTools.compressSparseArray(originalArgs)
local topic = args[2]
-- re-add non-numeric arguments omitted by compressSparseArray
if not page then
for _, name in pairs({'category', 'selfref', 'topic'}) do
args[name] = originalArgs[name]
end
return p._broader(page, topic, optionsargs)
end
 
function p._broader(page, topic, optionsargs)
if not pageargs[1] then
return mHatnote.makeWikitextError(
'no page name specified',
Line 21 ⟶ 36:
)
end
local optionslist = {mHatlist.andList(args, true)
local topic = args[2].topic or s.defaultTopic
selfref = args.selfref,
local text = string.format(s.broaderForm, topic, list)
}
options = {selfref = args.selfref,}
return p._broader(page, topic, options)
end
 
function p._broader(page, topic, options)
page = mHatnote._formatLink(page)
topic = topic or 'this topic'
local text = string.format('For a broader coverage related to %s, see %s.', topic, page)
options = options or {}
 
return mHatnote._hatnote(text, options)
end