local mHatnote = require('Module:Hatnote')local mHatlist = require('Module:Hatnote list')local mArguments --initialize lazilylocal mTableTools = require('Module:TableTools')local checkType = require('libraryUtil').checkTypelocal 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 = for k, v in pairs(defaultOptions) do if options[k]
-- 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)
local wde = mw.wikibase.getEntity local p31 = (wde and wde:formatPropertyValues('P31').value)
--Assemble everything together and return local text = string.format('This %s is about %s. Please do not be confused with %s.', pageType, about, mHatlist.orList(args, true) ) return mHatnote._hatnote(text)end
return p