Постоянно защищенный модуль
Из Википедии, бесплатной энциклопедии
Перейти к навигации Перейти к поиску
Документация модуля [ просмотр ] [ редактировать ] [ история ] [ очистка ]

Этот модуль создает сноску для устранения неоднозначности страницы, на которую ссылается данное перенаправление. Он реализует шаблон шляпной сноски {{ redirect }}.

Использование из вики-текста

Этот модуль нельзя использовать напрямую из викитекста. Используйте вместо них шаблоны {{ redirect }} или {{ redirect2 }}.

Использование из Lua

Чтобы использовать этот модуль из Lua, сначала загрузите модуль.

local  mRedirectHatnote  =  require ( 'Модуль: перенаправить шляпу' )

Затем модуль можно использовать со следующим синтаксисом:

mRedirectHatnote . _redirect ( перенаправление ,  данные ,  параметры ,  titleObj )

Смотрите также

- [[- Этот модуль создает шляпную сноску "перенаправления". Выглядит это так:- '"X" перенаправляется сюда. Чтобы узнать о других значениях, см. Y. '- Он реализует шаблон {{redirect}}.-]]local  mHatnote  =  require ( 'Модуль: Hatnote' )local  mHatList  =  require ( 'Модуль: список Hatnote' )local  mArguments -  лениво инициализироватьlocal  libraryUtil  =  требуется ( 'libraryUtil' )локальный  checkType  =  libraryUtil . checkTypeлокальный  checkTypeMulti  =  libraryUtil . checkTypeMultiместный  p  =  {}локальная  функция  getTitle (...)локальный  успех ,  titleObj  =  pcall ( mw . title . new ,  ...)если  успех,  товернуть  titleObjещевернуть  нольконецконецфункция  p . перенаправление ( фрейм )mArguments  =  require ( 'Модуль: аргументы' )локальные  аргументы  =  аргументы . getArgs ( кадр ,  { parentOnly = true })--Получить количество перенаправленийместное  numRedirects  =  ToNumber ( кадр . арг [ 1 ])  или  1- Создайте таблицу опций.местные  параметры  =  {}варианты . selfref  =  args . selfrefвозврат  п . _redirect ( аргументы ,  numRedirects ,  параметры )конецфункция  p . _redirect ( аргументы ,  numRedirects ,  параметры ,  currentTitle ,  redirectTitle ,  targetTitle )- Подтвердите ввод. Не утруждайте себя проверкой currentTitle, redirectTitle или- targetTitle, так как они используются только при тестировании.checkType ( '_redirect' ,  1 ,  аргументы ,  'таблица' )checkType ( '_redirect' ,  2 ,  numRedirects ,  'число' ,  истина )numRedirects  =  numRedirects  или  1checkType ( '_redirect' ,  3 ,  параметры ,  'таблица' ,  истина )options  =  options  или  {}currentTitle  =  currentTitle  или  mw . название . getCurrentTitle ()- Получить таблицу редиректовлокальное  перенаправление  =  {}для  я  =  1 ,  numRedirects  сделать- Вернуть ошибку, если параметр перенаправления отсутствует.если  не  args [ i ],  товернуть  mHatnote . makeWikitextError ('отсутствует параметр перенаправления' ,'Шаблон: Redirect # Errors' ,аргументы . категория)конецперенаправление [ i ]  =  args [ i ]конец- Сгенерируйте текст.local  formattedRedirect  =  {}для  к , v  в  парах ( перенаправление )  делатьformattedRedirect [ k ]  =  '"'  ..  v  ..  '"'конецlocal  text  =  {mHatList . andList ( formattedRedirect )  ..  ''  ..  ( # Перенаправление  ==  1  и  'перенаправления'  или  'Перенаправление' )  ..  'здесь. ,mHatList . _forSee ( args ,  # redirect  +  1 ,  { title  =  redirect [ 1 ],  extratext  =  args . text })}текст  =  таблица.concat ( текст ;  '' )- Функционал для добавления категорийlocal  categoryTable  =  {}функция  addCategory ( кошка )если  кошка  и  кошка  ~ =  '',  то- Добавляйте по индексу, чтобы избежать дублированияcategoryTable [ string.format ( '[[Категория:% s]]' ,  cat )]  =  trueконецконец- Создание категорий отслеживанияlocal  mhOptions  =  {}для  к , v  в  парах ( перенаправление )  делать- Нам не нужна категория отслеживания, если вызов шаблона был- скопировано прямо из документов, или если мы не в основном или в пространстве категорий.если  не  v : find ( '^ REDIRECT% d * $' )  и  v  ~ =  'TERM'  -и  currentTitle . namespace  ==  0  или  currentTitle . пространство имен  ==  14тогдаredirectTitle  =  redirectTitle  или  getTitle ( v )если  не  redirectTitle  или  не  redirectTitle . существует  тогдаaddCategory ( 'Отсутствующие перенаправления' )elseif  не  redirectTitle . isRedirect,  тогдаaddCategory ( 'Статьи с пометками о перенаправлении, нуждающиеся в проверке' )ещеlocal  mRedirect  =  require ( 'Модуль: Перенаправление' )локальная  цель  =  mRedirect . getTarget ( redirectTitle )targetTitle  =  targetTitle  или  цель  и  getTitle ( цель )если  targetTitle  и  targetTitle  ~ =  currentTitle,  тоaddCategory ( 'Статьи с пометками о перенаправлении, нуждающиеся в проверке' )конецконецконец- Сгенерируйте параметры для передачи в [[Module: Hatnote]].если  currentTitle . namespace  ==  0,  а  не  mhOptions . selfrefи  redirectTitle  и  redirectTitle . пространство имен  ~ =  0тогда- Мы находимся на главной странице, и сноска начинается с чего-то- например, «Википедия: Foo перенаправляет сюда», поэтому автоматически пометьте его как- ссылка на себя.mhOptions . selfref  =  trueещеmhOptions . selfref  =  options . selfrefконецконец- объединить все категорииместная  категория  =  ''для  k , v  в  парах ( таблица категорий )  делаемcategory  =  category  ..  kконецвернуть  mHatnote . _hatnote ( текст ,  mhOptions )  ..  категорияконец вернуть  p