Module:About-distinguish: Difference between revisions
Jump to navigation
Jump to search
m (Protected "Module:About-distinguish": High-risk template or module; match protection with associated template ([Edit=Require autoconfirmed or confirmed access] (indefinite))) |
Hypermoron (talk | contribs) No edit summary |
||
(One intermediate revision by the same user not shown) | |||
Line 50: | Line 50: | ||
args = mTableTools.compressSparseArray(args) | args = mTableTools.compressSparseArray(args) | ||
local about = table.remove(args, 1) | local about = table.remove(args, 1) | ||
--Assemble everything together and return | --Assemble everything together and return | ||
local text = string.format( | local text = string.format( | ||
'This %s is about %s | 'This %s is about %s, not to be confused with %s.', | ||
pageType, | pageType, | ||
about, | about, | ||
mHatlist.orList(args, true) | mHatlist.orList(args, true) | ||
) | ) |
Latest revision as of 17:36, 27 June 2022
Implements {{about-distinguish}}
.
local mHatnote = require('Module:Hatnote')
local mHatlist = require('Module:Hatnote list')
local mArguments --initialize lazily
local mTableTools = require('Module:TableTools')
local checkType = require('libraryUtil').checkType
local p = {}
function p.aboutDistinguish (frame)
mArguments = require('Module:Arguments')
local args = mArguments.getArgs(frame)
return p._aboutDistinguish(args)
end
function p._aboutDistinguish(args, options)
-- Type checks and defaults
checkType('_aboutDistinguish', 1, args, 'table')
if not args[1] then
return mHatnote.makeWikitextError(
'no about topic supplied',
'Template:About-distinguish',
args.category
)
end
if not args[2] then
return mHatnote.makeWikitextError(
'no page to be distinguished supplied',
'Template:About-distinguish',
args.category
)
end
checkType('_aboutDistinguish', 2, options, 'table', true)
options = options or {}
local defaultOptions = {
defaultPageType = 'page',
namespace = mw.title.getCurrentTitle().namespace,
pageTypesByNamespace = {
[0] = 'article',
[14] = 'category'
},
sectionString = 'section'
}
for k, v in pairs(defaultOptions) do
if options[k] == nil then options[k] = v end
end
-- Set pieces of initial "about" string
local pageType = (args.section and options.sectionString) or
options.pageTypesByNamespace[options.namespace] or
options.defaultPageType
args = mTableTools.compressSparseArray(args)
local about = table.remove(args, 1)
--Assemble everything together and return
local text = string.format(
'This %s is about %s, not to be confused with %s.',
pageType,
about,
mHatlist.orList(args, true)
)
return mHatnote._hatnote(text)
end
return p