Этот модуль создает ссылку на основную статью или статьи. Он реализует шаблон {{ main }}. Обычно создается ссылка типа «Основная статья: A». Если используется в пространстве имен категории , создается ссылка типа «Основная статья для этой категории - A». Можно указать несколько статей, и в этом случае множественное число используется автоматически. Если первая ссылка не является статьей, модуль использует формулировку «Главная страница» вместо «Основная статья».
Использование из вики-текста
К этому модулю нельзя получить доступ напрямую из #invoke. Вместо этого его можно использовать только через шаблон {{ main }}. См. Страницу с шаблоном для документации.
Использование из других модулей Lua
Загрузите модуль:
local mMain = require ( 'Модуль: Главный' )
Затем вы можете использовать функцию _main следующим образом:
mMain . _main ( аргументы , параметры )
Параметр args после параметров представляет собой список строк ссылок на страницу; если они используют настраиваемые отображаемые значения, каждая строка должна быть предварительно обработана в одну конвейерную строку (например page|display value
). Ссылки на категории или файлы автоматически экранируются с помощью трюка с двоеточием . Если ссылка включает имя раздела и не задано отображаемое значение, ссылки автоматически форматируются как раздел § страницы , а не как раздел страницы № по умолчанию в MediaWiki .
Таблицу дополнительных опций можно использовать для настройки вывода функции. В настоящее время доступен единственный вариант - «selfref», который используется, когда вывод является ссылкой на Википедию. чтобы установить эту опцию, используйте . (Подробнее о ссылках на себя см. В шаблоне {{ selfref }}.){selfref = true}
Пример 1
mMain . _main ({ 'A' })
Производит:
Отображается как:
Пример 2
mMain . _main ({ 'Википедия: категоризация' , 'Справка: Категория' , 'Категория: категории Википедии' })
Производит:
Отображается как:
Пример 3
mMain . _main ({ 'A | буква "A"' , 'B | буква "B"' , 'C | буква "C"' })
Производит:
Отображается как:
Пример 4
mMain . _main ({ 'Википедия: Проверяемость # Бремя' }, { selfref = true })
Производит:
Отображается как:
Пример 5 (если используется в пространстве имен категорий)
mMain . _main ({ 'A' })
Производит:
Отображается как:
Технические подробности
Этот модуль использует Module: Hatnote для форматирования текста шляпной сноски, Module: Hatnote list для обработки списка ссылок и Module: Arguments для получения аргументов из wikitext.
- [[- Этот модуль создает ссылку на основную статью или статьи. Он реализует- шаблон {{main}}.- - Если модуль используется в переговорном пространстве категории или категории, он выдает "The- основной артикль в этой категории - xxx. "В противном случае будет произведен- «Основная статья: ххх».-]]local mHatnote = require ( 'Модуль: Hatnote' )local mHatlist = require ( 'Модуль: список Hatnote' )локальные аргументы - ленивая инициализацияместный p = {}функция p . основной ( фрейм )mArguments = require ( 'Модуль: аргументы' )локальные аргументы = аргументы . getArgs ( кадр , { parentOnly = true })локальные страницы = {}для k , v в парах ( args ) делаемесли type ( k ) == 'number', тоlocal display = args [ 'label' .. k ] или args [ 'l' .. k ]локальная страница = отображение иstring.format ( '% s |% s' , string.gsub ( v , '|. * $' , '' ), display ) или vстраницы [ # страницы + 1 ] = страницаконецконецесли # pages == 0 и mw . название . getCurrentTitle (). namespace == 0, тогдавернуть mHatnote . makeWikitextError ('не указаны имена страниц' ,'Template: Main # Errors' ,аргументы . категория)конецlocal options = {selfref = args . selfref}возврат п . _main ( страницы , параметры )конецфункция p . _main ( аргументы , параметры )- Получить список страниц. Если первая страница не указана, мы используем текущую- название страницы.локальный currentTitle = mw . название . getCurrentTitle ()если # args == 0, то args = { currentTitle . text } конецlocal firstPage = string.gsub ( args [ 1 ], '|. * $' , '' )- Найдите тип страницы.локальный pageType = mHatnote . findNamespaceId ( firstPage ) == 0 и 'article' или 'page'- Сделайте форматированный текст ссылкисписок = mHatlist . andList ( аргументы , истина )- Постройте текст.local isPlural = # аргументы > 1местная основная формалокальные curNs = currentTitle . пространство именif ( curNs == 14 ) или ( curNs == 15 ) then --category / talk пространства именmainForm = isPlural и"Основными% s для этого [[Help: Categories | category]] являются% s."или же'Основной% s для этого [[Help: Categories | category]] -% s.'ещеmainForm = isPlural и 'Main% ss:% s' или 'Main% s:% s'конецлокальный текст = строка.формат ( mainForm , pageType , список )- Обработайте параметры и передайте текст функции _rellink в- [[Модуль: Hatnote]].options = options или {}local hnOptions = {selfref = options . selfref}вернуть mHatnote . _hatnote ( текст , hnOptions )конецвернуть p