Основная статья: Викимультия:Шаблоны

Шаблоны в Викимультии является специальным классом страниц их содержание динамично подставляется в текст других страниц при каждом их просмотре.

Общая информация[править]

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

Вики-разметка для вызова шаблона в статье:

{{Имя шаблона}}

При просмотре страницы, вместо этого тега вставляется текст шаблона Шаблон:Имя шаблона. Если шаблон еще не существует, то тег будет отображаться как «красная» ссылка на несуществующую статью: Шаблон:Несуществующий шаблон. Чтобы избежать этого, убедитесь перед сохранением страницы что все используемые Вами шаблоны существуют. Сделать это можно воспользовавшись функцией предварительного просмотра.

Если в главном пространстве имен существует статья с таким же названием, что и имя шаблона, её можно использовать как шаблон с помощью следующей синтаксической конструкции:

{{:Название_статьи}}

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

Помните, что название статьи или шаблона чувствительно к регистру.

Допускается рекурсивное включение шаблонов.

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

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

Параметры шаблонов[править]

Параметры шаблона применяют в том случае, когда необходимо предусмотреть возможность дописать в шаблон сведения, оригинальные данные для каждой статьи. Шаблон может и не использовать параметры (например Шаблон:Без иллюстраций), или использовать один параметр (например Шаблон:Lang-en) или использовать много параметров (например Шаблон:Изображение).

Параметры шаблона могут быть именованными или нумерованными. варианты синтаксиса

  • {{templatename|parname1=parvalue1|parname2=parvalue2}}, тогда в тексте шаблона следует ссылаться на {{{parname}}};
  • {{templatename|parvalue1|parvalue2}}, тогда в тексте шаблона следует использовать {{{1}}}, {{{2}}}.

Лишние параметры (не используются в тексте шаблона) игнорируются. Имена параметров чувствительны к регистру, пробелам, подчеркиваниям и другим символам не из набора [az\-A-Z0-9].

Обратите внимание на тройные фигурные скобки при использовании параметров!

Таким образом, механизм шаблонов выполняет два типа подстановок:

  • Вызов шаблона (двойные фигурные скобки) подменяется содержанием шаблона
  • Параметры шаблона (тройные фигурные скобки) подменяются значениями параметров шаблона.

Параметром шаблона может быть ссылка на другую статью. Пусть например у нас есть Шаблон: Начало {{{1}}} Конец.

Тогда {{Шаблон|[[Заглавная_страница|Заглавная страница]]}} будет развернут в

Начало Заглавная страница Конец.

Если один параметр someparameter не определен, он передается нераскрытым текстом {{{someparameter}}} в вызывающую статью, в случае рекурсивного вызова его можно раскрыть на следующем уровне.

Заметьте следующую разницу в вызовах: вызов {{Шаблон||a}} устанавливает значение первого параметра равным пустой строке. Чтобы присвоить значение второму параметру не определяя значение первого воспользуйтесь вызовом {{Шаблон||2=a}}.

Также вызов {{Шаблон|a=b|c}} определит параметр «a» и не установит параметр «1», чтобы правильно определить оба параметра, воспользуйтесь следующей синтаксической конструкцией {{Шаблон|1=a=b|2=c}}.

Условное включение параметров[править]

Если появление нераскрытого текста не желательна, можно использовать условное включение параметра в текст шаблона. Параметр, записанный в форме {{{parameter|альтернативный текст}}} будет включен в текст шаблона только в том случае, если значение параметра задано, иначе вместо значения параметра появится альтернативный текст. Этот способ уместен тогда, когда для некоторого параметра шаблона предполагается определенное значение по умолчанию. Простейший пример: если некоторый параметр parameter записан внутри шаблона в форме {{{parameter|}}} (т.е. если в качестве альтернативного текста используется пустая строка), на его месте не будет выводиться вообще ничего (даже {{{parameter}}}), если этот параметр окажется заданным.

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

  {{#if:  проверяемая-переменная-или-параметр  
| текст-для-случая, когда-либо-значение-test-не пустое  
| текст-для-случая, когда-либо-значение-test-пустое  
   }}

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

  {{#if:  переменная-проверки-или-параметр  
| текст-для-случая, когда-либо-значение-test-не пустое  
   }}

Демонстрационный пример употребления:

  {{#if: {{{sample|}}}
 |параметр '''sample'''определено! 
 |параметр'''sample'''пустой! 
    }}

Реальный пример применения {{#if}} вы можете найти в коде шаблона {{Карточка}}.

Эффект пустых строк[править]

Рассмотрим пример работы комбинации из трех условных операторов:

{{#if: {{{sample1|}}}|'''sample1'''! }}
 {{#if: {{{sample2|}}}|'''sample2'''! }}
{{#if: {{{sample3|}}}|'''sample3'''! }} 

Если все операторы определены, то значение выстраиваются в одну строку. Однако, когда второй оператор не определен, между первым и третьим оператором появляется лишняя строка:

Ситуация Код при вызове шаблона Код Результат
Все операторы определены
|sample1=sample1
|sample2=sample2
|sample3=sample3
{{#if: {{{sample1|sample1}}}|'''sample1'''! }}
{{#if: {{{sample2|sample2}}}|'''sample2'''! }}
{{#if: {{{sample3|sample3}}}|'''sample3'''! }}

sample1! sample2! sample3!

Второй оператор не определен
|sample1=sample1
|sample2=
|sample3=sample3
{{#if: {{{sample1|sample1}}}|'''sample1'''! }}
{{#if: {{{sample2|}}}     |'''sample2'''! }} 
{{#if: {{{sample3|sample3}}}|'''sample3'''! }}

sample1!

sample3!


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

'''sample1'''! 
< пустая строка > 
'''sample3'''! 

Такой эффект может проявляться в шаблонах-карточках, когда на месте неопределенных параметров появляется пустое пространство. Чтобы не допустить подобного эффекта, необходимо не допускать переноса строки между условными операторами. Этого можно добиться несколькими способами:

Способ Код Результат
Писать все условные параметры в одну строку
{{#if: {{{sample1|sample1}}}|'''sample1'''! }}{{#if: {{{sample2|}}}|'''sample2'''! }}{{#if: {{{sample3|sample3}}}|'''sample3'''! }}

sample1!sample3!

Включать комментарии для исключения знака переноса
{{   #if: {{{sample1|sample1}}}|'''sample1'''! }}<!--разделитель 
-->{{#if: {{{sample2|}}}      |'''sample2'''! }}<!--разделитель
-->{{#if: {{{sample3|sample3}}}|'''sample3'''! }}

sample1!sample3!

Делать переносы внутри условных операторов, а не между ними
{{
#if: {{{sample1|sample1}}}|'''sample1'''! 
}}{{
#if: {{{sample2|}}}     |'''sample2'''! 
}}{{
#if: {{{sample3|sample3}}}|'''sample3'''! 
}}

sample1!sample3!

Просмотр содержимого шаблона[править]

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

Теги noinclude и includeonly[править]

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

Для размещения в шаблоне дополнительной информации — например правил использования шаблона или категории шаблона, которая не должна отражаться в статьях, в которую включается данный шаблон, такую ​​информацию следует разместить следующим образом: <noinclude>Дополнительная информация (''например '':шаблон используется ...) </noinclude>. В противном случае - если мы должны заложить в шаблон информацию, которая должна отражаться в статьях, в которых этот шаблон включается, но не должна влиять на сам шаблон (чаще всего это - категоризация статьи) - следует писать <includeonly>Дополнительная информация (''например:'' [[Категория статьи]])</includeonly>

He допускайте пустых строк вокруг конструкций <noinclude> и <includeonly>, так как пустая строка будет толковаться как перенос строки и будет добавлено шаблоном в статью.

Ссылка на редактирование шаблона[править]

Иногда желательно иметь ссылку на страницу редактирования шаблона в тексте самого шаблона (например, если его содержание может часто меняться). Такую ссылку можно «зашить» внутри самого шаблона, более того, сделать именно шаблоном. См. Шаблон:ed, пример использования: {{ed|{{PAGENAMEE}}|{{NAMESPACE}}{{PAGENAME}}}} даст ред. Викимультия Механизм шаблонов.

Ограничения и возможности[править]

Использование вложенных двойных или тройных фигурных скобок внутри двойных вложенных скобок[править]

Из-за использования двойных и тройных скобок смысл выражения может быть неопределенным. Например вместо

{{{{{abra}}}}} 

следует использовать или

{{{{{abra}}}}}

— возвращено шаблону abra значение является названием параметра данного шаблона или

{{{{{abra}}}}}

— значение параметра abra является названием шаблона, вложенного в настоящее. Избегайте, лишних пробелов.

Тэг категории в шаблоне. Проблема кэширования[править]

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

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

Рекомендуется использовать категории шаблонах типа {{TODO}} для «маркировки» статей типа, и не рекомендуется использование в навигационных шаблонах.

Кэширование[править]

Редактирование шаблона автоматически очищает кэш сервера от всех статей непосредственно его использующих. Однако в выпадах косвенного вызова (рекурсивный вызов, шаблоны которые зависят от параметров и т. д.), внутренний кэш системы не очищается и стандартный «Refresh» браузера может не работать. В таких случаях используйте «action=purge», т.е. переходите по URL типа:

[{{SERVER}}{{localurl:{{NAMESPACE}}:{{PAGENAMEE}}|action=purge}} Очистить кэш страницы]

что будет отражено как

Очистить кэш страницы

Или Вы можете просто воспользоваться готовым шаблонам: Шаблон:Purge очистить кэш {{Очистить кэш}} очистить кэш.

Подстановка (subst)[править]

Основная статья: Викимультия:Подстановка Использование «subst:» после двойных фигурных скобок чревато подстановку текста шаблона или значение переменной на момент сохранения страницы в которой они используется.

Например «timestamp»:

{{subst:CURRENTDAY}} {{subst:CURRENTMONTHNAME}} {{subst:CURRENTYEAR}}, {{subst:CURRENTTIME}} (UTC)

подставится при сохранении, как:

13 сентября 2005, 16:24

Тогда как

{{subst:Welcome}}

используемый для приветствия новых пользователей, отразится так:

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

Обратите внимание на основные принципы участия: правьте смело и предполагайте добрые намерения.

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

На своей странице участника вы можете сообщить некоторые сведения о себе — например, владение языками или интересы.

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

И ещё раз, добро пожаловать!


Правьте смело, но для тестирования, пожалуйста, используйте «песочницу».

См. также[править]