Этот модуль Lua используется примерно на 11 300 000 страницах, или примерно на 21% всех страниц . Чтобы избежать серьезных сбоев и нагрузки на сервер, любые изменения следует тестировать на подстраницах модуля / sandbox или / testcases . Протестированные изменения могут быть добавлены на эту страницу одним редактированием. Обсудите изменения на странице обсуждения, прежде чем внедрять их. Счетчик включений обновляется автоматически ( см. Документацию ). |
Этот модуль используется в MediaWiki: Abusefilter-warning-DS . Его изменения могут вызвать немедленные изменения в пользовательском интерфейсе Википедии. Чтобы избежать крупномасштабных сбоев, любые изменения следует сначала протестировать на подстранице / sandbox или / testcases этого модуля или в вашем собственном пользовательском пространстве . Затем протестированные изменения могут быть добавлены в этот модуль за один раз. Пожалуйста, обсудите любые изменения на странице обсуждения, прежде чем внедрять их. |
Этот модуль подлежит защите страницы . Это хорошо заметный модуль, который используется на очень большом количестве страниц или очень часто заменяется . Поскольку вандализм или ошибки могут повлиять на многие страницы, и даже простое редактирование может вызвать значительную нагрузку на серверы, они защищены от редактирования. |
Этот модуль может быть добавлен к шаблону для проверки использования неизвестных параметров.
использование
Основное использование
{{#invoke: проверить неизвестные параметры | проверить| unknown = [[Категория: Некоторая категория отслеживания]]| arg1 | arg2 | arg3 | argN}}
или отсортировать записи в категории отслеживания по параметру с сообщением об ошибке предварительного просмотра
{{#invoke: проверить неизвестные параметры | проверить| unknown = [[Категория: Некоторая категория отслеживания | _VALUE_]]| preview = неизвестный параметр "_VALUE_"| arg1 | arg2 | ... | argN}}
или для явного красного сообщения об ошибке
{{#invoke: проверить неизвестные параметры | проверить| unknown = <span class = "error"> Извините, я не узнаю _VALUE_ </span>| arg1 | arg2 | ... | argN}}
Здесь arg1
, arg2
, ..., argN
, являются известными параметрами. Без имени (позиционные) параметры могут быть добавлены также: |1|2|argname1|argname2|...
. Любой параметр, который используется, но не в этом списке, заставит модуль вернуть все, что было передано с unknown
параметром. _VALUE_
Ключевое слово, если оно используется, будет изменено на имя параметра. Это полезно либо для сортировки записей в категории отслеживания, либо для предоставления более подробной информации.
По умолчанию модуль не делает различий между определенным, но пустым параметром и непустым параметром. То есть как не внесенные в список, так |foo=x
и |foo=
сообщенные. Чтобы отслеживать только непустые параметры, используйте |ignoreblank=1
.
По умолчанию модуль игнорирует пустые позиционные параметры. То есть, не внесенные в список |2=
игнорируются. Для включения пустых позиционных параметров в отслеживание используйте |showblankpositional=1
.
Шаблоны Lua
Этот модуль поддерживает шаблоны Lua (аналогичные регулярным выражениям ), которые полезны, когда есть много известных параметров, использующих систематический шаблон. Например, template: infobox3cols использует
| regexp1 = заголовок [% d] [% d] *| regexp2 = метка [% d] [% d] *| regexp3 = данные [% d] [% d] * [abc]?| regexp4 = класс [% d] [% d] * [abc]?| regexp5 = rowclass [% d] [% d] *| regexp6 = стиль строки [% d] [% d] *| regexp7 = rowcellstyle [% d] [% d] *
чтобы соответствовать всем параметрам формы headerNUM
, labelNUM
, dataNUM
, dataNUMa
, dataNUMb
, dataNUMc
, ..., rowcellstyleNUM
, где NUM это строка цифр.
Пример
{{Инфобокс| выше = {{{name |}}}| label1 = Высота| data1 = {{{высота |}}}| label2 = Вес| data2 = {{{вес |}}}| label3 = Веб-сайт| data3 = {{{веб-сайт |}}}}} <! - конец информационного окна, начать отслеживание-> {{# invoke: Проверить неизвестные параметры | проверить| unknown = {{main other | [[Категория: Некоторая категория отслеживания | _VALUE_]]}}| предварительный просмотр = неизвестный параметр "_VALUE_"| имя| высота | масса| интернет сайт}}
Смотрите также
- {{ Math }}
- Категория: Неизвестные параметры (690) (страница категории может иметь заголовок {{ Категория неизвестных параметров }})
- Модуль: Проверить устаревшие параметры - аналогичный модуль, который проверяет устаревшие параметры.
- Модуль: Проверить наличие затертых параметров - модуль, который проверяет наличие конфликтующих параметров.
- Модуль: TemplatePar - аналогичная функция (изначально от dewiki)
- Шаблон: параметры и модуль: параметры - создает список имен параметров для данного шаблона.
- Проект: проверка параметров шаблона на основе TemplateData
- he: Module: ParamValidator - система проверки параметров на хевики, полагается на TemplateData. модуль doc на английском языке. проверяет следующее:
- использование необъявленных параметров
- использование параметров, отмеченных в шаблонных данных "устаревшими"
- с ошибкой (в основном, параметры, объявленные в шаблонных данных как "число", получающие нечисловое значение)
- отсутствующие параметры, отмеченные в TemplateData как "обязательные"
- понимает псевдонимы и предупреждает, когда используется более одного псевдонима параметра
- cs: Module: CheckParameters - еще одна система проверки параметров в cswiki, которая полагается на TemplateData.
- he: Module: ParamValidator - система проверки параметров на хевики, полагается на TemplateData. модуль doc на английском языке. проверяет следующее:
- s: cs: Module: MonitorTemplateArguments - система мониторинга параметров шаблона на основе категорий отслеживания
- Пользователь: Bamyers99 / TemplateParametersTool - Инструмент для проверки использования параметров шаблона
- Этот модуль можно использовать для сравнения аргументов, переданных родителю- со списком аргументов, возвращая указанный результат, если аргумент- нет в спискеместный p = {}локальная функция обрезки ( ы )return s : match ( '^% s * (.-)% s * $' )конецлокальная функция isnotempty ( s )вернуть s и s : match ( '% S' )конецлокальная функция clean ( текст )- Возвращаемый текст очищен для отображения и усечен, если он слишком длинный.- Маркеры полосы заменяются фиктивным текстом, представляющим исходный викитекст.местная позиция , усеченная усечение локальной функции ( текст )если усечено, товернуться ''конецесли мв . ustring . len ( текст ) > 25, тогдаtruncated = trueтекст = mw . ustring . sub ( текст , 1 , 25 ) .. '...'конецвернуть мв . текст . nowiki ( текст )конецместные части = {}для перед , тег , остаток в тексте : gmatch ( '([^ \ 127 ] *) \ 127 [^ \ 127 ] *% - (% l +)% - [^ \ 127 ] * \ 127 ()' ) dopos = остатокtable.insert ( parts , truncate ( before ) .. '& lt;' .. tag .. '& gt; ... & lt; /' .. tag .. '& gt;' )конецtable.insert ( parts , truncate ( текст : sub ( pos или 1 )))return table.concat ( части )конецфункция p . _check ( аргументы , параметры )если type ( args ) ~ = "table" или type ( pargs ) ~ = "table", то- TODO: обработка ошибоквозвращатьсяконецlocal ignoreblank = isnotempty ( args [ 'ignoreblank' ])local showblankpos = isnotempty ( args [ 'showblankpositional' ])local knownargs = {}local unknown = args [ 'unknown' ] или 'Найдено _VALUE_,'local preview = args [ 'preview' ]местные значения = {}местный res = {}локальное регулярное выражение = {}- создать список известных аргументов, регулярных выражений и возвращаемой строкидля k , v в парах ( args ) делаемесли type ( k ) == 'number', тоv = обрезать ( v )knownargs [ v ] = 1elseif k : find ( '^ regexp [1-9] [0-9] * $' ) тогдаtable.insert ( регэкспы , '^' .. v .. '$' )конецконецесли isnotempty ( предварительный просмотр ), тоpreview = '<div class = "hatnote" style = "color: red"> <strong> Предупреждение: </strong>' .. preview .. '(это сообщение отображается только в режиме предварительного просмотра). </div>'elseif preview == nil тогдапредварительный просмотр = неизвестноконец- перебрать родительские аргументы и убедиться, что они есть в спискедля k , v в парах ( pargs ) делаемесли type ( k ) == 'string' и knownargs [ k ] == nil, томестный известный флаг = ложьдля _ , regexp в ipairs ( regexps ) делатьесли мв . ustring . match ( k , regexp ), затемknownflag = trueпеременаконецконецесли не известен флаг и ( не ignoreblank или isnotempty ( v ) ), тоtable.insert ( значения , чистый ( k ))конецelseif type ( k ) == 'number' иknownargs [ tostring ( k )] == nil и( showblankpos или isnotempty ( v ) )тогдаtable.insert ( значения , k .. '=' .. clean ( v ))конецконец- добавить результаты в выходные таблицыесли # значений > 0, тоесли мв . getCurrentFrame (): preprocess ( "{{REVISIONID}}" ) == "" затемunknown = предварительный просмотрконецдля _ , v в парах ( значениях ) делаемесли v == '', то- Исправить странную ошибку для | = который удаляется до пустой строки и- разрывает ссылки на категорииv = ''конец- избегайте ошибки с v = 'example% 2' ("неверный индекс захвата")local r = unknown : gsub ( '_VALUE_' , { _VALUE_ = v })table.insert ( res , r )конецконецвернуть table.concat ( res )конецфункция p . чек ( рамка )локальные аргументы = фрейм . аргументылокальные pargs = frame : getParent (). аргументывозврат п . _check ( аргументы , параметры )конецвернуть p