Вики/Шаблоны

Материал из Викиучебника — открытых книг для открытого мира

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

Первое знакомство[править]

Страницы шаблонов — полноценные вики-документы, для которых отведено своё пространство имён "Шаблон: ". Вызывается шаблон с использованием кода {{Имя_шаблона}}. При отображении страницы на место этого будет помещено содержимое страницы «Шаблон: Имя шаблона». Если её ещё нет, то пометка будет отображена как ссылка на несуществующую статью. Например, при помощи кода {{Задание}} вы можете разместить следующий шаблон:

Задание

{{{1}}}

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

Задание

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

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

Задание

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

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

Параметры[править]

Параметры шаблона могут быть поименованными:

{{Имя_шаблона|Имя_параметра_1=Значение_параметра_1|Имя_параметра_2=Значение_параметра_2}}, тогда в теле шаблона надо ссылаться на {{{Имя_параметра_1}}}, {{{Имя_параметра_2}}}.

Или пронумерованными:

{{Имя_шаблона|Значение_параметра_1|Значение_параметра_2}}, тогда в теле шаблона нужно использовать {{{1}}}, {{{2}}}.

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

Имена параметров чувствительны к регистру символов. Желательно использовать в именах параметров только латинские буквы, цифры, дефис. Использовать остальные символы не рекомендуется.

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

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

Параметром шаблона может быть ссылка на другую статью. Пусть, например, у нас есть такой шаблон: Эта страница — {{{1}}} — моя самая любимая.

и он называется Тест. Тогда его вызов

{{Тест|[http://ru.wikipedia.org/wiki/Википедия:Песочница]}}

будет развёрнут в:

Эта страница — [1] — моя самая любимая.

Задание

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

Неопределённые и пустые параметры[править]

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

Если вы используете вызов переменных не по именам, а по номерам, то вызов {{Шаблон||что_то}} делает первый параметр определённым, но равным пустой строке. Если, напротив, нужно задать второй параметр, никак не определяя первый, то для этого следует использовать вызов {{Шаблон|2=что_то}}. Этот синтаксис следует использовать также и в том случае, когда значение параметра содержит знак равенства (например, что_то=чему_то): {{Шаблон|1=что_то=чему_то|2=ещё_что_то}}.

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

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

Задание

Настройте погодный параметр таким образом, что бы в случае его отсутствия всегда прописывалась какая-либо универсальная оценка погоды (отличная, клёвая, отстойная и так далее).

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

Чтобы увидеть «сырое» содержимое шаблона (подстановки параметров и так далее), нужно смотреть на шаблон в режиме редактирования, поскольку в противном случае некоторые подстановки могут раскрыться.

Для показа содержимого шаблона (без wiki-интерпретации) можно использовать кодовый «волшебный» префикс msgnw:: {{msgnw:Шаблон}}

Задание

На своей личной страничке под своей парадной подписью разместите её код.

Код шаблона[править]

Специально для шаблонов есть три специальных тега: <noinclude>, <onlyinclude> и <includeonly>.

  • <noinclude> — Всё, что находится между тегами будет обрабатываться и показываться только в случае, когда шаблон показывается непосредственно, не включенным в другую страницу. Полезно при категоризации страниц, добавлении документации и т. д.
  • <onlyinclude> — антипод <noinclude>. При его добавлении на страницу, импортироваться на страницу будет только код, который обёрнут этим тегом. Может быть полезен при малом размере кода самого шаблона и обширной документации к нему.
  • <includeonly> — код, который обёрнут этим тегом, будет импортироваться на страницу, но не будет обрабатываться движком на странице самого шаблона. Полезен, если, например, при добавлении категории на страницу с помощью шаблона, но когда категория не должна содержать страницу шаблону.

Вставка шаблона в момент сохранения[править]

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

Например код:

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

подставится при сохранении страницы:

5 мая 2010, 10:38 (UTC)

в то время, как

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

каждый раз будет показывать текущее время:

28 март 2024, 13:54 (UTC)

Задание

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

История изменений для страниц, содержащих шаблоны[править]

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

Колонки[править]

Колонки не следует путать с таблицами: это — другой механизм. Вывод текста в 2 или 3 колонки осуществляется с помощью шаблонов {col-2} и {col-3}; начало и конец текста, выводимого в колонку, задаётся шаблонами {col-begin} и {col-end}.

Более подробно этот способ оформления описан в разделе «Колонки» статьи Википедия: Оформление статей.