Module:About-distinguish
Appearance
From Wikipedia, the free encyclopedia
This module uses the Wikidata properties:
- sex or gender (P21) (see uses )
- instance of (P31) (see uses )
Warning This Lua module is used on approximately 1,200 pages and changes may be widely noticed. Test changes in the module's /sandbox or /testcases subpages, or in your own module sandbox. Consider discussing changes on the talk page before implementing them.
Implements {{about-distinguish }} and {{about-distinguish-text }}.
The above documentation is transcluded from Module:About-distinguish/doc. (edit | history)
Editors can experiment in this module's sandbox (create | mirror) and testcases (create) pages.
Subpages of this module.
Editors can experiment in this module's sandbox (create | mirror) and testcases (create) pages.
Subpages of this module.
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.aboutDistinguishText (frame) mArguments = require('Module:Arguments') local args = mArguments.getArgs(frame) return p._aboutDistinguish(args, {formatted = false}) 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', formatted = true } 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, options.formatted) ) return mHatnote._hatnote(text) end return p