stringtranslate.com

Справка:Шаблон

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

Самый распространенный метод включения называется трансклюзией , когда вики-источник целевой страницы содержит ссылку на шаблон с использованием синтаксиса . Другой метод — подмена , при котором содержимое шаблона копируется в вики-источник целевой страницы только один раз при его сохранении.{{Template name}}

Справка: Краткое руководство по шаблонам дает краткое введение в тему. Дополнительную помощь можно получить от MediaWiki и Wikimedia по адресу mw:Help:Templates, m:Help:Template и m:Help:Advanced templates.

Общее описание

Базовый обзор того, как работают шаблоны (8-минутное видео)

Большинство шаблонов находятся в пространстве имен шаблонов , что означает, что они имеют заголовки в виде «Шаблон: XXXX ». Однако возможно включение и замена из любого пространства имен, [a] , поэтому некоторые страницы шаблонов помещаются в другие пространства имен, например пространство имен пользователя . Страницы шаблонов имеют связанные страницы обсуждения .

Шаблоны могут содержать любой желаемый викитекст , включая вызовы других шаблонов. Есть некоторые возможности программирования: настраиваемые значения (через параметры); расчет и ветвление (с использованием функций парсера ); и доступ к переменным, специфичным для вики ( магическим словам ), таким как даты, время и названия страниц. Они также могут содержать разметку, определяющую, какие части страницы следует включать, а другие нет. Это означает, что при отображении самой страницы шаблона вы можете увидеть больше, чем при отображении страницы, которая его включает (например, она может содержать документацию, категории и т. д. для шаблона).

Чтобы вызвать шаблон (вызвать его включение или замену на странице), страница содержит викитекст в двойных скобках. Например, викитекст {{under construction}}вызывает шаблон {{ в разработке }}. Иногда вызов включает параметры и выглядит так {{under construction|comment=This is a comment}}: . Обратите внимание, что вызовы шаблонов — не единственное, для чего в викитексте используются двойные скобки.

Обратите внимание: хотя шаблоны являются обычным способом включения и замены в Википедии, они не являются единственным способом.

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

Общий

Использование шаблона во многом похоже на вызов функции на языке программирования: вызовите ее, и она вернет значение. Для шаблона возвращаемое значение называется расширением шаблона и рассматривается как часть источника вызывающей страницы. Как и функции, некоторые шаблоны принимают параметры, влияющие на результат.

Вызов шаблона приводит к его включению или замене на вызывающей его странице (которая называется целевой страницей ).

Трансляция шаблона означает, что, когда MediaWiki отображает страницу, он обрабатывает шаблон так, как если бы он находился в вики-источнике страницы, тогда как замена означает, что MediaWiki делает это при сохранении страницы (т. е. содержимое шаблона сохраняется как часть целевая страница и последующие редакторы не могут определить, что она попала туда через шаблон).

Чтобы включить шаблон на страницу, поместите исходный код страницы в то место, где должен появиться шаблон. Первая буква каждого слова названия может быть как строчной, так и прописной.{{Template name}}

Чтобы подставить шаблон на страницу, используйте вместо него.{{subst:Template name}}

Этот викитекст называется вызовом шаблона .

В MediaWiki , вики-программе , которую использует Википедия, переменные отличаются от шаблонов, но обе они идентифицируются двойными фигурными скобками {{ }} и обе возвращают значение.

В то время как имена переменных MediaWiki написаны заглавными буквами, имена шаблонов имеют те же основные функции и ограничения , что и все имена страниц : они чувствительны к регистру (за исключением первого символа); символы подчеркивания анализируются как пробелы; и они не могут содержать ни один из этих символов: # < > [ ] | { }. Это потому, что они зарезервированы для разметки Wiki .

Знак номера # называется идентификатором фрагмента , поскольку он обозначает фрагмент или раздел документа (например, раздел в статье Википедии). Хотя его можно использовать для ссылки на раздел страницы шаблона (например, Template:Portal#Example ), нет смысла помещать идентификатор фрагмента или имя фрагмента в ссылку на шаблон. Например, в строке строка не имеет цели и поэтому игнорируется.{{Portal#Location|Books}}#Location

Пространство имен шаблона используется по умолчанию, поэтому вы можете не включать пространство имен Template:в имя шаблона, и это общепринято. Однако вам необходимо указать префикс пространства имен для шаблонов в других пространствах имен, например User:. Чтобы включить страницу в основное пространство , поставьте перед ее заголовком двоеточие, например .{{:Page name}}

информация Примечание. При попытке включить несуществующий шаблон создается красная ссылка , как и при ссылке на любую другую несуществующую страницу. Переход по ссылке позволяет создать именно этот шаблон. Невозможно переносить страницы между проектами (например, Википедиями на разных языках или MediaWiki) — чтобы использовать шаблон в проекте на другом языке, в этом проекте необходимо создать копию шаблона.

Параметры

  • Ч:ПАРАМЕТР
  • WP:ПАРАМЕТР

Базовый синтаксис включения, приведенный выше, можно расширить с помощью параметров , которые используются для управления выводом шаблона. Синтаксис для этого такой: где — имя шаблона, и каждый может либо содержать только значение (они называются безымянными параметрами ), либо иметь форму ( именованные параметры ). Первому, второму, третьему и т. д. безымянным параметрам присваиваются имена , , и т. д.{{Template name|parameter|parameter|...}}Template nameparametername=value123

Пробельные символы (пробелы, табуляции, возвраты) удаляются из начала и конца имен и значений именованных параметров, но не из середины: таким образом, они {{ ... | myparam = this is a test }}имеют тот же эффект, что и {{ ... |myparam=this is a test}}. Это не относится к безымянным параметрам, где сохраняются все пробельные символы.

Какие параметры (если таковые имеются) можно или нужно передавать в шаблон и как их называть, определяется в коде этого шаблона. Вызов шаблона может указывать именованные параметры в любом порядке. Лишние или неправильно названные параметры игнорируются; неуказанным параметрам присваиваются значения по умолчанию. Если параметр указан более одного раза, вступает в силу последнее значение.

Значением параметра может быть пустая строка, например, когда за чертой или знаком равенства сразу следует следующая черта или закрывающие скобки. Это отличается от отсутствия указания параметра вообще, что приводит к значению по умолчанию, хотя шаблоны часто кодируются так, чтобы вести себя одинаково в обоих случаях.

Если вызов шаблона указывает параметр, который не определен в шаблоне, он не имеет никакого эффекта. Иногда редакторы делают это намеренно: например, |reason=часто используется в качестве псевдопараметра, чтобы кратко объяснить в исходном коде вики, почему туда был помещен вызов шаблона. [b] Некоторые шаблоны используют {{ #invoke:check for неизвестных параметров |check|...}}, чтобы предупредить редактора, если используется параметр, который не учтен в коде шаблона; чаще всего это используется для инфобоксов и других шаблонов с большим количеством сложных параметров, где наличие неизвестного параметра обычно является непреднамеренной ошибкой. Если вы обновляете такой шаблон для определения нового параметра, его вызов модуля также необходимо обновить, чтобы включить новый параметр.

Синтаксис викитекста не позволяет изначально создавать действительно вариативные шаблоны , а только псевдовариативные, которые проверяют входящие параметры один за другим до определенного фиксированного количества. Однако это ограничение можно обойти, используя специальные модули. В простых случаях {{ #invoke:separated elements |main}} позволяет слепо расширять все последовательные параметры и имеет возможность устанавливать собственные разделители. В более сложных случаях {{ #invoke:params }} позволяет подсчитывать, составлять список, отображать, фильтровать и распространять все входящие параметры, не зная их количества заранее.

Примеры

информация Примечание. Если вы хотите поэкспериментировать с чем-либо из этого, вы можете использовать песочницу шаблона , страницу пользователя или песочницу. Вы можете опробовать свой шаблон с помощью Special:ExpandTemplates .

Пример очень простого шаблона можно найти по адресу Template:TM , который расширяется до викитекста, в котором в этом месте отображаемой страницы размещается символ товарного знака (™), связанный со статьей о товарном знаке . Программист сказал бы, что шаблон «возвращает» ссылку на товарный знак в викитексте.

Отобразите шаблон:TM (нажав на ссылку выше), затем нажмите вкладку «Редактировать», чтобы просмотреть код шаблона (источник его страницы). Активная часть этого кода, которая при включении становится расширением шаблона, представляет собой викитекст с одной ссылкой [[Trademark|™]]. Остальная часть источника страницы заключена между <noinclude>тегами, поэтому она отображается при отображении самой страницы шаблона, но не при отображении страницы, вызывающей шаблон.

Чтобы включить Template:TM на другую страницу (т. е. использовать его на другой странице), введите источник этой страницы (целевую страницу) и нажмите . Страница будет отображена с заменой вызова шаблона расширением шаблона, как если бы вики-текст действительно содержался в этой точке. Таким образом, отображаемая страница будет содержать викиссылку " ™ ".{{TM}}Show preview[[Trademark|™]]

Например, введите , и вы увидите «Символ товарного знака ™ » при предварительном просмотре страницы или после сохранения изменений.The trademark symbol is {{TM}}

Другой способ использования шаблона — его замена . Если вы напечатаете и просмотрите или сохраните страницу, вы увидите «Символ товарного знака ™ », как и в приведенном выше примере включения. Но если вы сохраните страницу, а затем еще раз посмотрите на сохраненный исходный код страницы , вы увидите [c] , потому что вызов шаблона был заменен расширением шаблона при сохранении страницы. Постоянного соединения с вызовом шаблона нет; никто не может сказать, глядя на исходный код страницы, что вы не просто набрали , и если шаблон {{ TM }} изменится (или перестанет существовать), ваша страница продолжит отображаться так, как сейчас. (Напротив, в приведенном выше примере включения, если шаблон {{ TM }} впоследствии изменится, ваша страница может отображаться по-другому).The trademark symbol is {{subst:TM}}The trademark symbol is [[Trademark|™]]The trademark symbol is [[Trademark|™]]

Примеры с параметрами

Примером шаблона, который принимает параметры, является шаблон . Попробуйте ввести текст в песочнице — появится следующий текст:{{about}}{{about|how to use templates|how to use modules|Help:Lua}}

В приведенном выше примере шаблон использует три безымянных параметра (также называемых позиционными параметрами), но вы можете вызвать один и тот же шаблон с разным количеством параметров, чтобы получить немного разные результаты, как описано в документации шаблона . Например, . Обратите внимание на использование пустого параметра — в этом случае последовательные каналы означают, что первый указанный параметр является пустой строкой, что в этом шаблоне приведет к тому, что начальное предложение «о» будет опущено. Это производит:{{about}}{{about||how to use modules|Help:Lua}}

.

Простым примером шаблона с именованными параметрами является Template:Payoff Matrix , используемый для создания сетки 2х2. Например:

См. страницу шаблона для получения дополнительных возможностей. Обратите внимание, что здесь шаблон вызывается без указания всех возможных параметров, поэтому неопределенным параметрам присваиваются значения по умолчанию.

Советы и обходные пути

При использовании шаблонов стоит обратить внимание на следующие моменты:

Написание шаблонов

Процесс

Шаблоны — это просто страницы Википедии. Они создаются, удаляются и редактируются почти так же, как и любая другая страница.

Создание

Чтобы создать шаблон, выберите подходящее имя, перейдите на эту страницу, затем нажмите вкладку «Редактировать» или создайте новую страницу по мере необходимости.

Шаблоны обычно размещаются в пространстве имен шаблонов , хотя вы можете разместить шаблон, предназначенный для личного использования или для экспериментов, в своем собственном пользовательском пространстве .

Прежде чем создавать шаблон, выполните быстрый поиск существующих шаблонов (например, изучив Категория:Шаблоны Википедии ), чтобы узнать, существует ли уже шаблон, который делает то, что вы хотите, или аналогичный шаблон, код которого можно скопировать и изменить (или оставить в место и расширено). Найдите общие шаблоны, на которых может быть основан новый шаблон; например, вы можете легко создать шаблон навигационного окна , создав краткий шаблон, который вызывает общий шаблон Template:Navbox .

Не существует жесткого правила относительно того, какое имя выбрать для шаблона — сделайте его коротким, но достаточно информативным. Если подобные шаблоны существуют, постарайтесь следовать единообразному шаблону именования. Вы можете переименовать шаблон, не нарушая существующих включений (так называемая поломка ), оставив перенаправление на новое имя шаблона.

Модификация

Отредактируйте шаблон так же, как и любую другую страницу: перейдите к шаблону и нажмите вкладку «Редактировать».

Будьте предельно осторожны при редактировании существующих шаблонов — внесенные изменения могут повлиять на большое количество страниц, часто неожиданным образом. По этой причине многие часто используемые шаблоны защищены от редактирования, за исключением администраторов и редакторов шаблонов ; другие редакторы могут предлагать изменения на странице обсуждения. Некоторые шаблоны предлагают песочницу и тестовые примеры для экспериментов.

Удаление

Неиспользуемые или неподходящие шаблоны следует удалить. Шаблоны, которые можно легко объединить в другие, следует объединять.

Чтобы предложить удаление или объединение шаблона, перейдите в раздел «Шаблоны для обсуждения» (TfD).

Кодирование шаблона

Все, что можно включить в обычную страницу или статью, можно включить в шаблон, включая другие шаблоны (называемые подшаблонами ). В шаблонах часто используются программные функции — параметры, функции синтаксического анализа и другие магические слова , — которые позволяют включать включаемый контент варьироваться в зависимости от контекста. Существуют также специальные теги, позволяющие контролировать, какая информация включается, а какая нет.

Обработка параметров

В коде шаблона значение параметра представлено элементами, заключенными в тройные фигурные скобки, которые являются ссылкой на параметр .

Если в вызове шаблона не указан параметр, то ссылка на параметр ничем не заменяется — расширяется буквально; это означает, что если в вызове шаблона не указан параметр «xxx», викитекст {{{xxx}}}внутри шаблона расширяется буквально до {{{xxx}}} (а не до нулевой строки, которую вы могли ожидать). Вы можете добиться более полезного поведения, указав значение по умолчанию в ссылке на параметр. Сделайте это с помощью синтаксиса канала : {{{xxx|dflt}}}указывает значение по умолчанию dfltдля именованного параметра «xxx» и {{{1|dflt}}}указывает значение по умолчанию dfltдля первого неименованного параметра. Чаще всего указывается нулевое значение по умолчанию, например {{{1|}}}или {{{xxx|}}}.

Вы можете использовать значения параметров по умолчанию для создания псевдонима параметра: например, если параметры «текст» и «сообщение» являются именами одного и того же параметра, который также можно указать как единственный неименованный параметр, тогда обратитесь к параметру с помощью {{{message|{{{text|{{{1|}}}}}}}}}. Если в вызове шаблона указано более одного из этих параметров, приоритет будет иметь «сообщение», за ним следует «текст» и, наконец, первый безымянный параметр. Таким образом, если вызов шаблона задает параметры |message=A|text=B|C, приведенный выше викитекст расширяется до A.

Из-за множества значений синтаксиса двойных и тройных скобок в викитексте выражения иногда могут быть неоднозначными. Для устранения такой двусмысленности может быть полезно или необходимо включить пробелы. Например, {{ {{{xxx}}} }}или {{{ {{xxx}} }}}вместо ввода пяти последовательных фигурных скобок может быть более удобочитаемым. Но следите за тем, чтобы в расширении шаблона не появлялись нежелательные пробелы.

Ссылки на параметры не расширяются, если они заключены в теги.<nowiki>

Пример

Приведенный выше пример использования параметра относится к шаблону {{ матрица выплат }}. Вот код в шаблоне, реализующий эти параметры:

{| id = "Матрица выплат" style = "background:white; float: {{{ Float | right }}} ; Clear:right; text-align:center;" выровнять = {{{ С плавающей запятой | вправо }}} cellspaceing = 0 cellpadding = 8 ширина = {{{ Ширина | 225 }}} |- | стиль = "ширина:33%; " | | style = "ширина: 33%; нижняя граница: сплошной черный 1 пиксель;" | {{{ | Слева }}} | style = "ширина: 33%; нижняя граница: сплошной черный 1 пиксель;" | {{{ 2R | Верно }}} | - | style = "border-right: сплошной черный 1 пиксель; выравнивание текста: по правому краю; " | {{{ 1U | Вверх }}} | style="border-right: сплошной черный 1 пиксель; border-bottom: сплошной черный 1 пиксель; фон: {{{ ULc | белый }}} ; размер шрифта: 120%; "| {{{ УЛ | 0, 0 }}} | style="border-right: сплошной черный 1 пиксель; border-bottom: сплошной черный 1 пиксель; фон: {{{ URc | белый }}} ; размер шрифта: 120%; "| {{{ УР | 0, 0 }}} | - | style = "border-right: сплошной черный 1 пиксель; выравнивание текста: по правому краю; " | {{{ 1D | Вниз }}} | style="border-right: сплошной черный 1 пиксель; border-bottom: сплошной черный 1 пиксель; фон: {{{ DLc | белый }}} ; размер шрифта: 120%; "| {{{ ДЛ | 0, 0 }}} | style="border-right: сплошной черный 1 пиксель; border-bottom: сплошной черный 1 пиксель; фон: {{{ DRc | белый }}} ; размер шрифта: 120%; "| {{{ ДР | 0, 0 }}} | - | стиль = "размер шрифта:             | '' {{{ Имя |{{ ИМЯ СТРАНИЦЫ }}}}} '' |}

Сущность инструктирует шаблон использовать значение именованного параметра или текст, если параметр не указан в вызове.{{{2L|Left}}}2LLeft

Особый случай: параметры внутри открывающего тега в стиле XML.

Ссылки на параметры не раскрываются внутри открывающих тегов в стиле XML . Таким образом, в шаблоне не будет работать следующее:

потому что параметр не расширен. Вместо этого вы можете использовать {{#tag:}} функцию синтаксического анализатора , которая, например, используется для генерации элемента; см. также Справка:Волшебные слова § Форматирование . Поэтому следующий пример будет работать:{{sfn}}<ref>...</ref>

Внимание: чрезмерное расширение URL-адресов

Если значение параметра является URL-адресом (или заканчивается им) , проверьте, отображается ли он в Википедии со ссылкой, расширяющейся на один или несколько символов после URL-адреса, чтобы щелчок по ссылке вызывал ошибку или сбой. Это может произойти из-за того, что в исходном коде нет пробела после URL-адреса или он содержит или создает пробел, который отбрасывается при обработке. Убедитесь, что в расширении шаблона после URL-адреса следует мягкое пространство ( а не жесткое или неразрывное пространство ), независимо от того, предоставили ли вы или пользователь URL-адрес или он был создан в результате автоматической обработки. Шаблон может оказаться полезным.{{spaces}}

Системные переменные и условная логика

В коде шаблона часто используются переменные и функции синтаксического анализа, описанные в разделе «Справка: Волшебные слова» , чтобы поведение шаблона зависело от среды, в которую он включен (например, от текущего времени или пространства имен). Функции синтаксического анализа можно использовать для некоторых арифметических вычислений и манипуляций со строками переменных и значений параметров, но некоторые стандартные функции программирования, такие как циклы и присвоение переменных, недоступны. Полные манипуляции со строками недоступны; созданы некоторые шаблоны, предоставляющие такую ​​функцию, но они неэффективны и несовершенны.

Ниже перечислены некоторые из наиболее часто используемых переменных и функций. Дополнительную информацию см. в разделе Help:Magic Words и более полной документации на страницах MediaWiki mw:Help:Magic Words и mw:Help:Extension:ParserFunctions.

Расширение ParserFunctions предоставляет более ориентированные на программирование функции синтаксического анализа:

Переменные и особенно полезны и часто используются для изменения поведения шаблонов в зависимости от контекста, в который они включены. Шаблоны, содержащие ссылки на категории, часто делают это. Например, шаблон очистки содержит ссылку на категорию, позволяющую классифицировать вызывающую страницу как страницу, требующую очистки, поэтому шаблон, скорее всего, обусловит эту ссылку категории переменной, чтобы страницы обсуждения, страницы пользователей и любые другие страницы, которые могут вызывать Кстати, шаблон не попадает в категорию страниц, требующих очистки.{{PAGENAME}}{{NAMESPACE}}{{NAMESPACE}}

Вложение шаблонов

  • WP:NEST

Шаблон может вызывать другой шаблон — это называется вложением , а вызываемый шаблон в этом контексте называется подшаблоном . Когда WikiMedia расширяет шаблон, он расширяет подшаблоны по мере появления вызовов к ним, так что конечный продукт, по сути, является результатом расширения шаблонов из наиболее глубоко вложенных.

Несмотря на то, что оно довольно простое в применении, оно включает в себя некоторые примечательные особенности и хитрости.

Чтобы передать значение параметра из вызова шаблона в подшаблон, используйте ссылку на параметр в вызове шаблона в подшаблон.

Пример:
Шаблон: A содержит "the quick brown {{B|{{{3}}} }} jumps over...". Шаблон:B (подшаблон) содержит '''{{{1}}}'''. Страница X вызывает A с {{A|apple|pear|fox}}расширением до "the quick brown '''fox''' jumps over...". Третий безымянный параметр, переданный в шаблон:A, передается как первый безымянный параметр в подшаблон B.

Шаблон может даже выбрать, какой параметр подшаблона передавать условно.

Примеры:
Шаблон: A содержит the quick brown {{B|{{{1}}}=fox}} jumps over.... Шаблон:B (подшаблон) содержит '''{{{jumper}}}'''. Страница X вызывает A с помощью {{A|apple|pear|jumper}}. Это расширяется до "the quick brown '''fox''' jumps over...". Третий безымянный параметр, передаваемый в шаблон:A, передается как имя параметра, передаваемого в подшаблон B, со значением «лиса».
  • WP:ЦИКЛ ШАБЛОНОВ

Шаблон может вызывать сам себя, но рекурсия остановится после одного вложения, чтобы предотвратить бесконечный цикл. Попытка выйти за пределы одной вложенности приводит к появлению сообщения об ошибке и приводит к тому, что страница помечается MediaWiki как имеющая цикл шаблонов.

Если подшаблон содержит несовпадающие фигурные скобки (например, {{lb}}}во время обработки несовпадающие фигурные скобки обрабатываются как текст), они не влияют на анализ фигурных скобок в вызывающем шаблоне. Но при замене шаблона несовпадающие фигурные скобки будут анализироваться как фигурные скобки при последующем отображении страницы. Это не имеет практического применения, но иногда может привести к неожиданным ошибкам.

См. m:Help:Расширенные шаблоны и m:Help:Рекурсивное преобразование викитекста для получения дополнительной информации.

Управление включением: noinclude, includeonly и onlyinclude.

  • WP:NOINCLUDE
  • WP:ВКЛЮЧИТЬТОЛЬКО
  • WP:ONLYINCLUDE

По умолчанию, когда страница вызывает шаблон, MediaWiki включает раскрытие всего шаблона на вызывающей странице. Однако это поведение можно изменить, используя теги, определяющие, какие части кода шаблона следует включить. Это позволяет шаблону содержать информацию только для отображения при отображении самой страницы шаблона, например документацию шаблона или категории . Также возможно, чтобы части шаблона были включены в вызывающие страницы, но не отображались при отображении самой страницы шаблона и не обрабатывались при сохранении самой страницы шаблона (например, категории, которые должны применяться к вызывающим страницам, которые не применяется к шаблону). Теги следующие:

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

}}<includeonly>
}}
</includeonly>

Эти теги могут быть вложены друг в друга, однако (для данной страницы) это имеет смысл только для тега <onlyinclude>; вложение <includeonly>и <noinclude>теги довольно бессмысленно. Однако будьте осторожны и правильно вложите теги. Такие конструкции, как <onlyinclude>abc <includeonly>def </onlyinclude>ghi, не</includeonly> будут работать должным образом. Используйте правило «первый открыт, последний закрыт», стандартное для HTML/XML.

Проблемы и обходные пути

Документация

Документация для пользователей вместе с категориями шаблона обычно идет после кода шаблона внутри <noinclude>...</noinclude>тегов. Обычно необходимо помещать открывающий <noinclude>тег сразу после конца кода, без промежуточных пробелов и новых строк, чтобы избежать включения нежелательных пробелов.

В случае сложных шаблонов документация часто хранится на отдельной подстранице страницы шаблона (с именем «Шаблон: XXX /doc»). Это особенно относится ко многим защищенным шаблонам, поэтому документацию могут редактировать пользователи, не являющиеся администраторами. Для этого поместите вызов шаблона после основного кода шаблона и внутри тегов. Если подстраница «/doc» не существует, при отображении шаблона появляется ссылка, которую можно использовать для создания подстраницы.{{Documentation}}<noinclude>...</noinclude>

Подстраница документации, а не сам шаблон, обычно размещается в категориях для представления шаблона.

Категоризация

Классифицировать страницы по включению шаблона

Некоторые шаблоны генерируют объявления категорий в своем расширении, поскольку шаблон предназначен для размещения вызывающих страниц в определенных категориях. Это часто делается с категориями обслуживания. Подобный способ размещения статей в обычных категориях контента не рекомендуется. При этом вам, возможно, придется использовать <includeonly>...</includeonly>теги, чтобы исключить сам шаблон из категории. При разработке, тестировании, изолированной программной среде или демонстрации шаблона, предназначенного для применения категории, либо временно замените каждую категорию тестовой категорией (начиная с X1 , X2 или X3 ), либо отключите категоризацию (см. подавление категорий в шаблонах ).

Классифицировать шаблоны

Категоризация вашего шаблона и документирование его правильного использования облегчит поиск и использование другим редакторам.

Объявления категорий для самого шаблона следует размещать на подстранице документации шаблона (или внутри <noinclude>...</noinclude> тегов , если подстраницы документации нет), чтобы избежать помещения вызывающих страниц в категорию.

Псевдонимы

Перенаправление шаблона действует как псевдоним . Например, Template:Tsh перенаправляет на ярлык Template:Template , поэтому вы можете писать код вместо .{{tsh|foo}}{{Template shortcut|foo}}

Хорошо подготовить псевдонимы шаблонов для изменений в пробелах и заглавных буквах. Например, есть шаблон под названием . Буква «W» пишется с заглавной буквы, как и слово «Викисловарь», но существует перенаправление (со строчной буквой «w»), потому что редакторы могут ошибочно запомнить его как последнее.{{See Wiktionary}}{{See wiktionary}}

Ограничения шаблона

Ограничение размера включения после развертывания. Когда шаблоны визуализируются или расширяются до HTML для просмотра в браузере, они используют память. Это называется «размером включения после расширения» и имеет ограничение в 2 048 000 байт. Этот размер включается в виде невидимого комментария в вывод HTML — используйте функцию просмотра исходного кода вашего браузера, чтобы отобразить необработанный HTML-код и выполнить поиск по запросу «newpp». Отчет будет выглядеть так:

<!-- Отчет о лимите NewPP Число узлов препроцессора: 2382/1000000 Размер включения после расширения: 63476/2048000 байт Размер аргумента шаблона: 9517/2048000 байт Число дорогостоящих функций синтаксического анализатора: 2/500 -->

В примере показано, что расширение шаблона использует 63 476 байт из 2 048 000 байт доступной памяти.

Проблема с дисплеем. Если на странице включено слишком много шаблонов, размер включения после раскрытия может превысить лимит. В этом случае шаблоны после ограничения больше не будут расширяться и вместо этого будут отображаться в виде вики-ссылок (например, Шаблон: Имя шаблона ). Распространенными причинами являются включение слишком большого количества шаблонов цитирования , шаблонов навигационных блоков и/или шаблонов флагов . Чтобы решить эту проблему , замените шаблоны, напрямую вызывайте модули, удалите шаблоны или разделите страницу.

Необработанные трансклюзии по-прежнему засчитываются в лимит. Например, страница, которая содержит только, {{#if:{{:Main Page}}}}все равно будет иметь размер включения после раскрытия, даже если на ней вообще не будет вывода.

То же самое относится и к модулям Scribunto . Например, {{#invoke:Test|main}}размер включения после расширения все равно будет увеличиваться, даже если Module:Test будет просто:

МВт . getCurrentFrame (): предварительная обработка  "{{msgnw::Main Page}}"  -- удалите эту строку, и после расширения размер включения станет нулевым return  { main  =  function ()  end }  -- p.main() не имеет возвращаемого значения

язык программирования Луа

Язык программирования Lua доступен для использования через расширение Scribunto MediaWiki. Вы можете встраивать код Lua в шаблоны, используя функциональность {{#invoke:}}расширения Scribunto MediaWiki. Исходный код Lua хранится на страницах, называемых модулями, и шаблоны вызывают эти отдельные модули. Например, вы можете вызвать Module:Example с кодом {{#invoke:Example|hello}}для печати текста «Hello World!».

Терминология

Шаблон — это страница Википедии , цель которой — включить или заменить другую страницу. Шаблоны обычно находятся в пространстве имен шаблонов , но это не обязательно. Страницы могут включать или заменять любую страницу, а не только шаблоны; то, что делает страницу шаблоном, — это ее предназначение.

Вызов шаблона означает его исключение или замену. Страница вызывает шаблон. Викитекст на странице, который заставляет страницу вызывать шаблон, называется вызовом шаблона . Например, {{sic|constellation prize}}. Вызовы шаблонов всегда ограничиваются двойными фигурными скобками ( {{}}), но не все, что заключено в двойные скобки, является вызовом шаблона.

Расширение — это процесс создания источника страницы из шаблона, когда страница его вызывает, путем применения параметров и других функций. MediaWiki расширяет шаблон при отображении страницы. Можно также сказать, что сам шаблон расширяется, поэтому работают как «MediaWiki расширяется {{{1}}}как значение первого позиционного параметра», так и « {{{1}}}расширяется как значение первого позиционного параметра».

Расширение страницы также является источником страницы, возникающим в результате расширения шаблона. Например, расширение шаблона {{sic}} при вызове {{sic|constellation prize}}constellation prize&#32;&#91;''[[sic]]''&#93;.

Отображаемый контент страницы, сгенерированный вызовом шаблона (который представляет собой рендеринг расширения вызванного шаблона), является результатом шаблона . Результатом шаблона, сгенерированным вызовом шаблона, {{sic|constellation prize}}является «приз созвездия [ sic ]».

Имя шаблона — это имя страницы Википедии (которое также является заголовком страницы). Пространство имен обычно опускается, если это «Шаблон» (что почти всегда так и есть). Кроме того, имя принято писать в двойных фигурных скобках, как при вызове шаблона, чтобы подчеркнуть, что оно называет шаблон. Например, «Используйте шаблон {{tm}} для создания символа товарного знака». Но не заходите так далеко, что помещаете имя шаблона в шрифт кода, чтобы избежать путаницы с реальным вызовом шаблона. {{tm}} — это имя шаблона, но {{tm}}это вызов шаблона.

Некоторые вызовы шаблонов выполняют функцию тегирования; такой вызов шаблона часто называют тегом , например: «Если вы находитесь в процессе серьезного редактирования, поместите тег {{in use}} вверху страницы». Это один из многих способов использования термина «тег» в Википедии.

Параметр — это определенная часть информации, которую можно указать в вызове шаблона , чтобы повлиять на расширение шаблона. Параметр имеет значение . Именованный параметр имеет имя ; безымянный параметр имеет позицию . Вызов шаблона определяет параметр, а код, который это делает, является спецификацией параметра . Шаблон определяет параметр (не явно — просто шаблон, предназначенный для его использования). Код в шаблоне, который расширяется до значения параметра (например {{{myparam}}}), является ссылкой на параметр .

Распространенные варианты

Обычно слово «шаблон» используется для обозначения не только шаблона, но и вызова шаблона, результата шаблона и имени шаблона.

Например:

Такое использование может сбить с толку, особенно тех, кто менее знаком с шаблонами. Рассмотрите возможность использования более конкретного языка.

Поиск шаблонов

В качестве альтернативы использованию этого индекса, указанного выше, вы можете выполнить поиск в пространстве имен шаблона, используя поле Special:Search ниже:

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

Страницы помощи

Страницы руководства Mediawiki

Специальные страницы

Другие внутренние страницы

Примечания

  1. ^ Пространства имен, из которых включение не разрешено, указаны в вики переменной $wgNonincludableNamespaces.
  2. ^ Некоторые шаблоны, такие как , имеют код для отображения в виде видимого вывода; следует ли это делать, определяется индивидуально для каждого шаблона.{{Requested move}}|reason=
  3. ^ Невозможно просмотреть эффект замены источника страницы без сохранения страницы.
  4. ^ Это не применяется, если знак равенства присутствует в другом вызове шаблона или другом элементе, который анализатор обрабатывает отдельно.
  5. ^ Опять же, это неприменимо, если оно входит в другой отдельно анализируемый элемент, например, в передаваемую по каналу вики-ссылку.
  6. ^ В старой версии дерево подшаблонов будет построено в соответствии с текущим состоянием шаблонов.
  7. ^ Они определены в функции doBlockLevels файла Parser.php.