Jump to content
Wikipedia The Free Encyclopedia

Module:About-distinguish

From Wikipedia, the free encyclopedia
Module documentation[view] [edit] [history] [purge]
This module uses the Wikidata properties:
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.

 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

AltStyle によって変換されたページ (->オリジナル) /