Bahaipedia
Bahaipediaدانشنامه بهائی
Trình đơn
Trợ giúp về MediaWiki
Trang ngẫu nhiên
Thay đổi gần đây
Tại dự án khác
Công cụ
Các liên kết đến đây
Thay đổi liên quan
Tải lên tập tin
Trang đặc biệt
Tải về bản in
Liên kết thường trực
Thông tin trang
Mô đun
Thảo luận
Xem lịch sử
Chưa đăng nhập
Tin nhắn
Đóng góp
Tạo tài khoản
Đăng nhập
Navigation
Navigation
Navegación
Navigation
ナビゲーション
Điều hướng
导航
Navegação
ناوبری
Навигация
Trợ giúp về MediaWiki
Trang ngẫu nhiên
Thay đổi gần đây
Tại dự án khác
Learn more
Weitere Informationen
Aprender más
En savoir plus
詳しく読む
Tìm hiểu thêm
了解更多
Saiba mais
یاد بگیرید بیشتر
Узнать больше
Tôn giáo Baha'i
Đức Baha'u'llah
Đức ‘Abdu’l-Baha
Tools
Werkzeuge
Herramientas
Outils
ツール
Công cụ
工具
Ferramentas
ابزارها
Инструменты
Các liên kết đến đây
Thay đổi liên quan
Tải lên tập tin
Trang đặc biệt
Tải về bản in
Liên kết thường trực
Thông tin trang
Translations
Übersetzungen
Traducciones
Traductions
各言語版
Bản dịch
翻译
Traduções
به زبان‌های دیگر
Переводы

Mô đun:Check for unknown parameters

Từ Bahaipedia
Bước tới:điều hướng, tìm kiếm

Bản mẫu:Used in system Bản mẫu:Module rating Bản mẫu:Lua

This module may be appended to a template to check for uses of unknown parameters. Unlike many other modules, this module is not implemented by a template.

Mục lục

  • 1 Usage
    • 1.1 Basic usage
    • 1.2 Lua patterns
  • 2 Example
  • 3 Call from within Lua code
  • 4 See also

Usage[sửa]

Basic usage[sửa]

{{#invoke:Check for unknown parameters|check
|unknown=[[Category:Some tracking category]]
|arg1|arg2|arg3|argN}}

or to sort the entries in the tracking category by parameter with a preview error message

{{#invoke:Check for unknown parameters|check
|unknown=[[Category:Some tracking category|_VALUE_]]
|preview=unknown parameter "_VALUE_"
|arg1|arg2|...|argN}}

or for an explicit red error message

{{#invoke:Check for unknown parameters|check
|unknown=<span class="error">Sorry, I don't recognize _VALUE_</span>
|arg1|arg2|...|argN}}

Here, arg1, arg2, ..., argN, are the known parameters. Unnamed (positional) parameters can be added too: |1|2|argname1|argname2|.... Any parameter which is used, but not on this list, will cause the module to return whatever is passed with the unknown parameter. The _VALUE_ keyword, if used, will be changed to the name of the parameter. This is useful for either sorting the entries in a tracking category, or for provide more explicit information.

By default, the module makes no distinction between a defined-but-blank parameter and a non-blank parameter. That is, both unlisted Bản mẫu:Para and Bản mẫu:Para are reported. To only track non-blank parameters use Bản mẫu:Para.

By default, the module ignores blank positional parameters. That is, an unlisted Bản mẫu:Para is ignored. To include blank positional parameters in the tracking use Bản mẫu:Para.

Lua patterns[sửa]

This module supports Lua patterns (similar to regular expressions), which are useful when there are many known parameters which use a systematic pattern. For example, Infobox3cols uses

		regexp1 = "header[%d]+",
		regexp2 = "label[%d]+",
		regexp3 = "data[%d]+[abc]?",
		regexp4 = "class[%d]+[abc]?",
		regexp5 = "rowclass[%d]+",
		regexp6 = "rowstyle[%d]+",
		regexp7 = "rowcellstyle[%d]+",

to match all parameters of the form headerNUM, labelNUM, dataNUM, dataNUMa, dataNUMb, dataNUMc, ..., rowcellstyleNUM, where NUM is a string of digits.

Example[sửa]

{{Infobox
| above = {{{name|}}}

| label1 = Height
| data1 = {{{height|}}}

| label2 = Weight
| data2 = {{{weight|}}}

| label3 = Website
| data3 = {{{website|}}}
}}<!-- 
  end infobox, start tracking
-->{{#invoke:Check for unknown parameters|check
| unknown = {{Main other|[[Category:Some tracking category|_VALUE_]]}}
| preview = unknown parameter "_VALUE_"
| name
| height | weight
| website
}}

Call from within Lua code[sửa]

See the end of Module:Rugby box for a simple example or Module:Infobox3cols or Module:Flag for more complicated examples.

See also[sửa]

  • Bản mẫu:Clc (category page can have header Bản mẫu:Tl)
  • Module:Params – for complex operations involving parameters
  • Template:Checks for unknown parameters – adds documentation to templates using this module
  • Module:Check for deprecated parameters – similar module that checks for deprecated parameters
  • Module:Check for clobbered parameters – module that checks for conflicting parameters
  • Module:TemplatePar – similar function (originally from dewiki)
  • Template:Parameters and Module:Parameters – generates a list of parameter names for a given template
  • Project:TemplateData based template parameter validation
  • Module:Parameter validation checks a lot more
  • User:Bamyers99/TemplateParametersTool - A tool for checking usage of template parameters

Bản mẫu:Sandbox other


-- This module may be used to compare the arguments passed to the parent
-- with a list of arguments, returning a specified result if an argument is
-- not on the list

require ('strict');

local p = {}

local function trim(s)
	return s:match('^%s*(.-)%s*$')
end

local function isnotempty(s)
	return s and s:match('%S')
end

local function clean(text)
	-- Return text cleaned for display and truncated if too long.
	-- Strip markers are replaced with dummy text representing the original wikitext.
	local pos, truncated
	local function truncate(text)
		if truncated then
			return ''
		end
		if mw.ustring.len(text) > 25 then
			truncated = true
			text = mw.ustring.sub(text, 1, 25) .. '...'
		end
		return mw.text.nowiki(text)
	end
	local parts = {}
	for before, tag, remainder in text:gmatch('([^\127]*)\127[^\127]*%-(%l+)%-[^\127]*\127()') do
		pos = remainder
		table.insert(parts, truncate(before) .. '&lt;' .. tag .. '&gt;...&lt;/' .. tag .. '&gt;')
	end
	table.insert(parts, truncate(text:sub(pos or 1)))
	return table.concat(parts)
end

function p._check(args, pargs)
	if type(args) ~= "table" or type(pargs) ~= "table" then
		-- TODO: error handling
		return
	end

	-- create the list of known args, regular expressions, and the return string
	local knownargs = {}
	local regexps = {}
	for k, v in pairs(args) do
		if type(k) == 'number' then
			v = trim(v)
			knownargs[v] = 1
		elseif k:find('^regexp[1-9][0-9]*$') then
			table.insert(regexps, '^' .. v .. '$')
		end
	end

	-- loop over the parent args, and make sure they are on the list
	local ignoreblank = isnotempty(args['ignoreblank'])
	local showblankpos = isnotempty(args['showblankpositional'])
	local values = {}
	for k, v in pairs(pargs) do
		if type(k) == 'string' and knownargs[k] == nil then
			local knownflag = false
			for _, regexp in ipairs(regexps) do
				if mw.ustring.match(k, regexp) then
					knownflag = true
					break
				end
			end
			if not knownflag and ( not ignoreblank or isnotempty(v) )  then
				table.insert(values, clean(k))
			end
		elseif type(k) == 'number' and knownargs[tostring(k)] == nil then
			local knownflag = false
			for _, regexp in ipairs(regexps) do
				if mw.ustring.match(tostring(k), regexp) then
					knownflag = true
					break
				end
			end
			if not knownflag and ( showblankpos or isnotempty(v) ) then
				table.insert(values, k .. ' = ' .. clean(v))
			end
		end
	end

	-- add results to the output tables
	local res = {}
	if #values > 0 then
		local unknown_text = args['unknown'] or 'Tìm thấy _VALUE_, '

		if mw.getCurrentFrame():preprocess( "{{REVISIONID}}" ) == "" then
			local preview_text = args['preview']
			if isnotempty(preview_text) then
				preview_text = require('Module:If preview')._warning({preview_text})
			elseif preview_text == nil then
				preview_text = unknown_text
			end
			unknown_text = preview_text
		end
		for _, v in pairs(values) do
			-- Fix odd bug for | = which gets stripped to the empty string and
			-- breaks category links
			if v == '' then v = ' ' end

			-- avoid error with v = 'example%2' ("invalid capture index")
			local r = unknown_text:gsub('_VALUE_', {_VALUE_ = v})
			table.insert(res, r)
		end
	end

	return table.concat(res)
end

function p.check(frame)
	local args = frame.args
	local pargs = frame:getParent().args
	return p._check(args, pargs)
end

return p
Lấy từ “https://vi.bahaipedia.org/index.php?title=Mô_đun:Check_for_unknown_parameters&oldid=1107”
Trang này được sửa đổi lần cuối vào ngày 19 tháng 3 năm 2025, 20:40.
Nếu không có ghi chú khác, nội dung này được cấp phép Creative Commons Attribution-NonCommercial-ShareAlike 3.0 License.
Quy định quyền riêng tư
Giới thiệu Bahaipedia
Lời phủ nhận
Powered by MediaWiki