stringtranslate.com

Помощь:Шаблон

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

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

Help:A quick guide to templates дает краткое введение в тему. Дополнительная помощь от MediaWiki и Wikimedia доступна на mw:Help:Templates, m:Help:Template и m:Help:Advanced templates.

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

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

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

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

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

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

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

Общий

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

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

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

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

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

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

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

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

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

Параметры

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

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

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

Значение параметра может быть пустой строкой , например, когда за вертикальной чертой ( |) или знаком равенства сразу следует следующая вертикальная черта или закрывающие фигурные скобки. Например, {{Template name|1=|2=test}}выводит тот же результат, что и {{Template name||2=test}}. Это отличается от неуказания параметра вообще, что приводит к значению по умолчанию, хотя шаблоны часто кодируются так, чтобы вести себя одинаково в обоих случаях.

Если вызов шаблона указывает параметр, который не определен в шаблоне, он не имеет никакого эффекта. Иногда редакторы указывают параметр, который, как они знают, не определен в шаблоне. Например, редакторы иногда включают параметр, например, <reason>чтобы добавить краткое объяснение в исходный текст в виде скрытого комментария . (Но некоторые шаблоны, такие как Requested move , запрограммированы на отображение параметра reason, если он указан). Некоторые шаблоны, особенно сложные, такие как infoboxes , могут использовать модуль проверки неизвестных параметров , чтобы предупреждать редакторов о любых нераспознанных параметрах , чтобы помочь избежать непреднамеренных ошибок.


Если параметр указан как пустой (например, |1=), он рассматривается как пустая строка, что отличается от его полного исключения (в этом случае применяется значение по умолчанию). Однако шаблоны часто кодируются так, чтобы действовать одинаково в обоих случаях.

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

Начальные и конечные пробелы вокруг именованных параметров и значений автоматически обрезаются и удаляются, но пробелы в середине значения сохраняются. Например, {{ ... | myparam = this is a test }}имеет тот же вывод, что и {{ ... |myparam=this is a test}}. Однако с неименованными параметрами все пробелы сохраняются, как и в выводе.

Списки параметров переменной длины

В MediaWiki шаблоны не могут автоматически обрабатывать неизвестное или неограниченное количество параметров. Каждый возможный параметр обычно должен быть предопределен в коде шаблона. Например, шаблон может быть настроен на использование трех определенных параметров, таких как 1, 2, и 3. Если кто-то включит дополнительные параметры сверх этих, они не повлияют на расширение шаблона.

Однако есть несколько способов обойти эту проблему:

Однако модули могут обойти это ограничение. Для более простых случаев модуль Separated Entry расширяет все последовательные параметры и позволяет вам устанавливать пользовательские разделители. Для более продвинутого использования модуль Params позволяет подсчитывать, перечислять, отображать, фильтровать и обрабатывать переменное количество параметров без предварительного знания точного количества.

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

Примеры

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

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

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

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

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

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

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

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

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

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

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

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

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

Шаблоны написания

Процесс

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

Создание

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

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

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

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

Модифицирующий

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

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

Удаление

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

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

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

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

Меташаблоны

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

Параметры обработки

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

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

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

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

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

Пример

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

{| id = "Матрица выплат" style = "background:white; float: {{{ Float | right }}} ; clear:right; text-align:center;" align = {{{ Float | right }}} cellspacing = 0 cellpadding = 8 width = {{{ Width | 225 }}} |- | style = "width:33%; " | | style = "width:33%; border-bottom: solid black 1px;" | {{{ 2L | Left }}} | style = "width:33%; border-bottom: solid black 1px;" | {{{ 2R | Right }}} |- | style = "border-right: solid black 1px; text-align: right; " | {{{ 1U | Up }}} | style="border-right: сплошной черный 1px; border-bottom: сплошной черный 1px; background: {{{ ULc | white }}} ; font-size:120%; "| {{{ UL | 0, 0 }}} | style="border-right: сплошной черный 1px; border-bottom: сплошной черный 1px; background: {{{ URc | white }}} ; font-size:120%; "| {{{ UR | 0, 0 }}} |- | style = "border-right: сплошной черный 1px; text-align: right; " | {{{ 1D | Down }}} | style="border-right: сплошной черный 1px; border-bottom: сплошной черный 1px; background: {{{ DLc | white }}} ; font-size:120%; "| {{{ DL | 0, 0 }}} | style="border-right: сплошной черный 1px; border-bottom: сплошной черный 1px; фон: {{{ DRc | белый }}} ; размер шрифта:120%; "| {{{ DR | 0, 0 }}} |- | style = "размер шрифта:90%;" диапазон столбцов = 3             | '' {{{ Имя |{{ ИМЯ СТРАНИЦЫ }}}}} '' |}

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

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

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

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

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

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

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

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

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

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

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

Шаблоны вложенности

  • ВП:ГНЕЗДО

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

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

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

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

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

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

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

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

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

Контроль включения: noinclude, includeonly и onlyinclude

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

По умолчанию, когда страница вызывает шаблон, 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" пишется заглавной буквой, поскольку слово "Wiktionary" таково, но перенаправление (со строчной "w") существует, поскольку редакторы могут ошибочно запомнить его как последнее.{{See Wiktionary}}{{See wiktionary}}

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

  • WP:INCLUDELIMIT

Ограничение "Post-expand include size". Когда шаблоны визуализируются или расширяются в HTML для просмотра в вашем браузере, они используют память. Это называется "post-expand include size" и имеет ограничение в 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 будет просто:

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

Язык программирования Lua

Язык программирования 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;

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

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

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

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

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

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

Например:

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

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

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

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

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

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

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

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

Примечания

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