Модуль:Hatnote/doc: различия между версиями

Материал из Народные сказки
Перейти к навигации Перейти к поиску
(Новая страница: «{{Docpage}}{{Module rating|protected}} {{Используйте песочницу|testcases-other=Шаблон:Основная статья/тесты}} Модуль предназначен для реализации hatnote-шаблонов (например, {{T|Основная статья}}, {{T|См. также}}). Также он содержит несколько функций для работы со ссылками и отслеживани...»)
 
Нет описания правки
Строка 28: Строка 28:
Параметры:
Параметры:
* нумерованные параметры — ссылки на страницы.
* нумерованные параметры — ссылки на страницы.
* {{para|l1}}, {{para|l2}} и т. д. — текст ссылок.
* {{Para|l1}}, {{Para|l2}} и т. д. — текст ссылок.
* {{para|list_sep}} или {{para|разделитель списка}}: разделитель списка, по умолчанию — {{no wikify|«, »}}.
* {{Para|list_sep}} или {{Para|разделитель списка}}: разделитель списка, по умолчанию — {{no wikify|«, »}}.
* {{para|natural_join}}: при неложном значении вместо последнего разделителя выводится союз «и».
* {{Para|natural_join}}: при неложном значении вместо последнего разделителя выводится союз «и».
* {{para|links_ns}} или {{para|ПИ ссылок}}: ко всем ссылкам добавляется префикс указанного пространства имен.
* {{Para|links_ns}} или {{Para|ПИ ссылок}}: ко всем ссылкам добавляется префикс указанного пространства имен.
* {{para|bold_links}} или {{para|ссылки болдом}}: при непустом и неложном значении каждая ссылка выделяется полужирным.
* {{Para|bold_links}} или {{Para|ссылки болдом}}: при непустом и неложном значении каждая ссылка выделяется полужирным.


Возвращает таблицу, для неё предусмотрен метод {{code|tostring()}} и конкатенация. Именованные параметры этой таблицы — булевы переменные, истинные при обнаружении проблем. Отслеживаемые проблемы: {{code|red_link}}, {{code|bad_format}}, {{code|formatted}}, {{code|unparsable_link}}. Их описание [[#Отслеживаемые случаи|см. ниже]].
Возвращает таблицу, для неё предусмотрен метод {{code|tostring()}} и конкатенация. Именованные параметры этой таблицы — булевы переменные, истинные при обнаружении проблем. Отслеживаемые проблемы: {{code|red_link}}, {{code|bad_format}}, {{code|formatted}}, {{code|unparsable_link}}. Их описание [[#Отслеживаемые случаи|см. ниже]].
Строка 41: Строка 41:
Параметры:
Параметры:
* первый параметр — текст заметки.
* первый параметр — текст заметки.
* {{para|id}}: id заметки.
* {{Para|id}}: id заметки.
* {{para|extraclasses}}: дополнительные классы заметки.
* {{Para|extraclasses}}: дополнительные классы заметки.
* {{para|hide_disambig}}: при непустом и неложном значении к тексту добавляется класс {{code|dabhide}}, скрывающий подсветку для пользователей [[Википедия:Гаджеты/Выделение неоднозначностей|гаджета подсветки неоднозначностей]].
* {{Para|hide_disambig}}: при непустом и неложном значении к тексту добавляется класс {{code|dabhide}}, скрывающий подсветку для пользователей [[Википедия:Гаджеты/Выделение неоднозначностей|гаджета подсветки неоднозначностей]].


=== <code>main</code> ===
=== <code>main</code> ===
Строка 78: Строка 78:


{{видимый якорь|Параметры:|main-Параметры}}
{{видимый якорь|Параметры:|main-Параметры}}
* {{para|prefix}} или {{para|префикс}}: обязательный параметр, текст перед списком ссылок.
* {{Para|prefix}} или {{Para|префикс}}: обязательный параметр, текст перед списком ссылок.
* {{para|prefix_plural}} или {{para|префикс мн. ч.}}: если ссылок несколько, для префикса вместо предыдущего параметра будет использован этот.
* {{Para|prefix_plural}} или {{Para|префикс мн. ч.}}: если ссылок несколько, для префикса вместо предыдущего параметра будет использован этот.
* {{para|sep}} или {{para|разделитель}}: разделитель между префиксом и списком ссылок.
* {{Para|sep}} или {{Para|разделитель}}: разделитель между префиксом и списком ссылок.
* {{para|dot}} или {{para|точка}}: при непустом и неложном значении выводится точка в конце.
* {{Para|dot}} или {{Para|точка}}: при непустом и неложном значении выводится точка в конце.
* {{para|nocat}}: при непустом и неложном значении отключается категоризация.
* {{Para|nocat}}: при непустом и неложном значении отключается категоризация.
* {{para|empty_list_message}}: сообщение об ошибке, выводящееся при пустом списке ссылок. По умолчанию — «Не указано ни одной страницы».
* {{Para|empty_list_message}}: сообщение об ошибке, выводящееся при пустом списке ссылок. По умолчанию — «Не указано ни одной страницы».
* {{para|preview_error}}: при непустом и неложном значении ошибка при пустом списке ссылок выводится только во время предпросмотра.
* {{Para|preview_error}}: при непустом и неложном значении ошибка при пустом списке ссылок выводится только во время предпросмотра.
Функция также принимает все параметры функций {{code|list}} и {{code|hatnote}} и передает их без изменения в эти функции.
Функция также принимает все параметры функций {{code|list}} и {{code|hatnote}} и передает их без изменения в эти функции.


Строка 118: Строка 118:
* {{code|red_link}} — параметр содержит ссылку на несуществующую статью.
* {{code|red_link}} — параметр содержит ссылку на несуществующую статью.
*: Категория: {{cl|Википедия:Страницы с модулем Hatnote с красной ссылкой}}
*: Категория: {{cl|Википедия:Страницы с модулем Hatnote с красной ссылкой}}
* {{code|bad_format}} — параметр содержит разделитель {{tc|!}} вместо параметра {{para|l''x''}} или лишние квадратные скобки.
* {{code|bad_format}} — параметр содержит разделитель {{tc|!}} вместо параметра {{Para|l''x''}} или лишние квадратные скобки.
*: Категория: {{cl|Википедия:Страницы с модулем Hatnote с некорректно заполненными параметрами}}
*: Категория: {{cl|Википедия:Страницы с модулем Hatnote с некорректно заполненными параметрами}}
* {{code|formatted}} — параметр содержит {{code|<nowiki><span</nowiki>}} (в таком случае он не парсится, а выдаётся в готовом виде). Нужно для поддержки шаблонов {{t|не переведено}} в качестве параметров.
* {{code|formatted}} — параметр содержит {{code|<nowiki><span</nowiki>}} (в таком случае он не парсится, а выдаётся в готовом виде). Нужно для поддержки шаблонов {{t|не переведено}} в качестве параметров.

Версия от 22:32, 13 мая 2023

Шаблон:Module rating

Модуль предназначен для реализации hatnote-шаблонов (например, {{Основная статья}}, {{См. также}}). Также он содержит несколько функций для работы со ссылками и отслеживания ошибок. См. тесты на странице Шаблон:Основная статья/тесты.

Основные функции

Основные функции содержатся в таблице P, все функции можно вызывать как из других модулей, так и через Шаблон:mwmw. При вызове из модуля функции принимают первым параметром таблицу с аргументами. Все описанные ниже параметры являются аргументами этой таблицы. Некоторые параметры принимают булевоподобные значения: их перечисление можно найти здесь.

parse_link

Принимает на вход ссылку, возвращает два значения: целевую страницу и видимую часть ссылки. Если ссылку не удалось разобрать, возвращает Nil. Наличие квадратных скобок не обязательно.

format_link

Формирует вики-ссылку. Превращает # в ссылках на разделы в знак параграфа, отбитый пробелами, делая их более читабельными (см. {{Ссылка на раздел}}).

Параметры:

  • первый параметр: название целевой страницы или вики-ссылка.
  • второй параметр: название раздела. Параметр будет проигнорирован, если раздел уже задан в первом параметре через #.
  • третий параметр: видимый текст ссылки.

remove_precision

Убирает уточнение из первого параметра (см. {{без уточнения}}).

is_disambig

Функция, определяющая, является ли первый параметр страницей разрешения неоднозначности. Список шаблонов неоднозначностей берется со страницы MediaWiki:Disambiguationspage.

list

Формирует список из вики-ссылок.

Параметры:

  • нумерованные параметры — ссылки на страницы.
  • |l1 =, |l2 = и т. д. — текст ссылок.
  • |list_sep = или |разделитель списка =: разделитель списка, по умолчанию — Шаблон:no wikify.
  • |natural_join =: при неложном значении вместо последнего разделителя выводится союз «и».
  • |links_ns = или |ПИ ссылок =: ко всем ссылкам добавляется префикс указанного пространства имен.
  • |bold_links = или |ссылки болдом =: при непустом и неложном значении каждая ссылка выделяется полужирным.

Возвращает таблицу, для неё предусмотрен метод Шаблон:code и конкатенация. Именованные параметры этой таблицы — булевы переменные, истинные при обнаружении проблем. Отслеживаемые проблемы: Шаблон:code, Шаблон:code, Шаблон:code, Шаблон:code. Их описание см. ниже.

hatnote

Формирует код Шаблон:tag.

Параметры:

  • первый параметр — текст заметки.
  • |id =: id заметки.
  • |extraclasses =: дополнительные классы заметки.
  • |hide_disambig =: при непустом и неложном значении к тексту добавляется класс Шаблон:code, скрывающий подсветку для пользователей гаджета подсветки неоднозначностей.

main

Генерирует текст-заметку. Позволяет ссылаться на неограниченное число страниц. Синтаксис:

  • вызов из вики-текста:
Шаблон:tpre
  • вызов из другого модуля:
-- подключение модуля
local hatnote = require('Модуль:Hatnote').main

-- пример использования без изменения категорий по умолчанию
local res1 = hatnote{
    'Какая-то статья',
    l1 = 'Какой-нибудь текст ссылки',
    prefix = 'Основная статья:',
    prefix_plural = 'Основные статьи:',
    dot = true,
    nocat = args.nocat -- следует всегда передавать nocat, если он предусмотрен
}

-- и с изменением
local res2 = hatnote({
    'Еще какая-то статья',
    prefix = 'См. также:',
    list_sep = '; ',
    natural_join = false,
    nocat = args.nocat
}, {
    red_link = 'Википедия:Статьи с шаблоном «См. также» с красными ссылками'
})

Шаблон:видимый якорь

  • |prefix = или |префикс =: обязательный параметр, текст перед списком ссылок.
  • |prefix_plural = или |префикс мн. ч. =: если ссылок несколько, для префикса вместо предыдущего параметра будет использован этот.
  • |sep = или |разделитель =: разделитель между префиксом и списком ссылок.
  • |dot = или |точка =: при непустом и неложном значении выводится точка в конце.
  • |nocat =: при непустом и неложном значении отключается категоризация.
  • |empty_list_message =: сообщение об ошибке, выводящееся при пустом списке ссылок. По умолчанию — «Не указано ни одной страницы».
  • |preview_error =: при непустом и неложном значении ошибка при пустом списке ссылок выводится только во время предпросмотра.

Функция также принимает все параметры функций Шаблон:code и Шаблон:code и передает их без изменения в эти функции.

Вторым параметром (при вызове через другой модуль) функция принимает таблицу с переназначенными категориями. Их идентификаторы см. ниже:

Служебные функции

Находятся в таблице Шаблон:code, предназначены для отслеживания проблем и вывода сообщений об ошибках. Все функции можно вызывать только из других модулей.

define_categories

tr.define_categories(tracking_categories)

Создает объект, представляющий собой таблицу с категориями и функцией для их добавления. Первым параметром передается ассоциированный массив с идентификаторами отслеживающих категорий.

add

categories:add(type, nocat)

или

categories:add(category_name, nocat)

Добавляет в таблицу категории. Первый параметр — либо идентификатор, объявленный в Шаблон:code, либо название категории. Второй параметр — отключение категоризации.

error

tr.error(msg, categories, preview_only)

Выводит сообщение об ошибке. Если ошибка генерируется шаблоном, то отображается название этого шаблона; если прямым вызовом через Шаблон:mwmw, то название вызываемого модуля.

Параметры:

Отслеживаемые случаи

  • Шаблон:code — не задан префикс. Также выводится сообщение об ошибке.
    Категория: Шаблон:cl
  • Шаблон:code — не задано ни одной ссылки. Также выводится сообщение об ошибке (либо в тексте статьи, либо только во время предварительного просмотра, подробнее см. #main-Параметры).
    Категория: Шаблон:cl
  • Шаблон:code — параметр содержит ссылку на несуществующую статью.
    Категория: Шаблон:cl
  • Шаблон:code — параметр содержит разделитель Шаблон:tc вместо параметра |lx = или лишние квадратные скобки.
    Категория: Шаблон:cl
  • Шаблон:code — параметр содержит Шаблон:code (в таком случае он не парсится, а выдаётся в готовом виде). Нужно для поддержки шаблонов Шаблон:t в качестве параметров.
    Категория: Шаблон:cl
  • Шаблон:code — параметр содержит нестандартное оформление, которое не может быть разобрано модулем (например, Шаблон:tc или Шаблон:tc).
    Категория: Шаблон:cl

Использование в других модулях

Некоторые функции используются в следующих модулях (Шаблон:plain link):