Jump to content
Wikipedia The Free Encyclopedia

Module:Icon

From Wikipedia, the free encyclopedia
Module documentation[view] [edit] [history] [purge]
‹ The template below (Module rating ) is being considered for merging with Template rating. See templates for discussion to help reach a consensus. ›
[画像:Ready for use] This module is rated as ready for general use. It has reached a mature form and is thought to be relatively bug-free and ready for use wherever appropriate. It is ready to mention on help pages and other Wikipedia resources as an option for new users to learn. To reduce server load and bad output, it should be improved by sandbox testing rather than repeated trial-and-error editing.
[画像:Protected] This module is subject to page protection. It is a highly visible module in use by a very large number of pages, or is substituted very frequently. Because vandalism or mistakes would affect many pages, and even trivial editing might cause substantial load on the servers, it is protected from editing.
Warning This Lua module is used on approximately 632,000 pages, or roughly 1% of all pages .
To avoid major disruption and server load, any changes should be tested in the module's /sandbox or /testcases subpages, or in your own module sandbox. The tested changes can be added to this page in a single edit. Consider discussing changes on the talk page before implementing them.

This module displays an icon depending on the code it is given. It implements Template:Icon.

Usage

From wikitext

From wikitext this module should be used via Template:Icon in most cases. Please see the template page for documentation. In cases where lots of icons cause the page to exceed the post-expand include size limit, {{#invoke:Icon||icon name}} may be used instead of {{Icon|icon name}}.

From Lua

To use this module from another Lua module, first load it:

local mIcon = require('Module:Icon')

Then you can make icons with the _main function.

mIcon._main(args)

The args variable is a table of arguments. This corresponds to the parameters accepted by Template:Icon - please see the template page for parameter documentation.

Data

The icon data is stored at Module:Icon/data. See the instructions there for how to add and remove icons.

The above documentation is transcluded from Module:Icon/doc. (edit | history)
Editors can experiment in this module's sandbox (edit | diff) and testcases (edit | run) pages.
Subpages of this module.

 -- This module implements [[Template:Icon]].

 require("strict")
 local yesNo = require("Module:Yesno")
 local getArgs = require("Module:Arguments").getArgs
 local getPlain = nil

 local p = {}

 -- Determine whether we're being called from a sandbox
 local sandbox = mw.getCurrentFrame():getTitle():find('sandbox', 1, true) and '/sandbox' or ''

 -- Implements [[Template:Icon]]
 -- Returns the icon image corresponding to a string (like 'B')
 function p._main(args, data)
	local data_module = 'Module:Icon/data'..sandbox
	data = data or mw.loadData(data_module)
	local code = args.class or args[1]
	local iconData
	if code then
		code = code:match('^%s*(.-)%s*$'):lower() -- trim whitespace and put in lower case
		iconData = data[code]
	end
	if not iconData then
		iconData = data._DEFAULT
	end
	return string.format(
		'[[File:%s%s%s|%s|class=noviewer|alt=%s]]',
		iconData.image,
		iconData.tooltip and '|' .. iconData.tooltip or '',
		iconData.link == false and '|link=' or '',
		args.size or '16x16px',
		iconData.alt or ''
	)
 end

 -- Implements [[Template:Icon link]], a superset of [[Template:Icon]]
 -- Returns an icon, plus a suitably formatted wikilink
 function p._link(args, data)
	args.size = args.size or args.iconsize
	local icon = p._main(args, data)
	-- If no link given in args[2], default back to [[Template:Icon]]
	if not args[2] then
		return icon
	end
	-- Strip wiki markup out of link
	getPlain = getPlain or require("Module:Text").Text().getPlain
	local link = getPlain(args[2])
	local display = args[3] or args[2]
	-- italicize display string, if requested
	if yesNo(args.i) or yesNo(args.italic) or yesNo(args.italics) then
		display = '<i>'..display..'</i>'
	end
	-- if display is link, just use standard wlink
	if link == display then
		return '<span class="nowrap">'..icon..' </span>[['..link..']]'
	end
	return '<span class="nowrap">'..icon..' </span>[['..link..'|'..display..']]'
 end

 function p.main(frame)
	local args = getArgs(frame,{parentFirst=true})
	return p._main(args)
 end

 function p.link(frame)
	local args = getArgs(frame,{parentFirst=true})
	return p._link(args)
 end

 p[''] = function (frame) return p._main(frame.args) end

 return p

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