Шаблоны
(→Вставка шаблона в момент сохранения) |
|||
(не показаны 15 промежуточных версий 4 участников) | |||
Строка 1: | Строка 1: | ||
− | + | '''Шаблонами''' называется класс особых страниц, содержимое которых можно вставить в другие страницы. Причём это содержимое считывается при каждой загрузке страницы: изменения в шаблоне проявятся на страницах, их применяющих. Страницы шаблонов — полноценные вики-документы, для которых отведено своё пространство имён «Шаблон:». Вызывается шаблон пометкой <code><nowiki>{{</nowiki>Имя_шаблона<nowiki>}}</nowiki></code>. При отображении страницы на место этого будет помещено '''содержимое''' страницы «Шаблон:Имя шаблона». Если её ещё нет, то пометка будет отображена как ссылка на несуществующую статью.<br> | |
+ | Как обычно, имя статьи или шаблона чувствительно к регистру, а пробел эквивалентен подчёркиванию. Возможно также включение шаблона в шаблон, то есть вызов одного шаблона из другого.<br> | ||
+ | Любую страницу можно использовать как шаблон: <code><nowiki>{{</nowiki>:Имя_страницы<nowiki>}}</nowiki></code><br> | ||
+ | Список ссылок на используемые в тексте страницы шаблоны показывается ниже окна редактирования статьи.<br> | ||
+ | === Параметры === | ||
+ | Параметры шаблона могут быть поименованными:<br> | ||
+ | <code><nowiki>{{Имя_шаблона|parname1=parvalue1|parname2=parvalue2}}</nowiki></code>, тогда в теле шаблона надо ссылаться на <code><nowiki>{{{parname1}}}</nowiki></code>, <code><nowiki>{{{parname2}}}</nowiki></code>;<br> | ||
+ | Или пронумерованными:<br> | ||
+ | <code><nowiki>{{Имя_шаблона|parvalue1|parvalue2}}</nowiki></code>, тогда в теле шаблона нужно использовать <code><nowiki>{{{1}}}</nowiki></code>, <code><nowiki>{{{2}}}</nowiki></code>.<br> | ||
+ | Лишние (не используемые в теле шаблона) параметры игнорируются. Переменные шаблона вычисляются после вставки шаблона в вызывающую его статью, то есть если в шаблоне содержится подстановка <code><nowiki>{{PAGENAME}}</nowiki></code>, то она будет развёрнута в имя вызывающей статьи, а не в имя этого шаблона.<br> | ||
+ | Имена параметров чувствительны к регистру символов. Желательно использовать в именах параметров только латинские буквы, цифры, дефис. Остальные символы не рекомендуются к использованию.<br> | ||
+ | Таким образом, механизм шаблонов выполняет два типа подстановок: | ||
+ | * вызов шаблона (двойные фигурные скобки) заменяется содержимым шаблона; | ||
+ | * параметры шаблона (тройные фигурные скобки) заменяются параметрами шаблона.<br> | ||
+ | Параметром шаблона может быть ссылка на другую статью. Пусть, например, у нас есть такой шаблон: | ||
+ | <nowiki>Эта страница: {{{1}}} моя самая любимая.</nowiki><br> | ||
+ | и он называется <code>Тест</code>. Тогда его вызов<br> | ||
+ | <nowiki>{{Тест|[http://www.letopisi.ru/index.php/Шаблоны]}}</nowiki><br> | ||
+ | будет развёрнут в:<br> | ||
+ | Эта страница: [http://www.letopisi.ru/index.php/Шаблоны] моя самая любимая.<br> | ||
+ | === Неопределённые и пустые параметры === | ||
+ | Если какой-либо параметр шаблона не задан, то он останется нераскрытым и на странице использующей шаблон Вы увидите примерно такой текст: <code><nowiki>...{{{1}}}...</nowiki></code>.<br> | ||
+ | Если Вы используете вызов переменных не по именам, а по номерам, то вызов <code><nowiki>{{Шаблон||что_то}}</nowiki></code> делает первый параметр определённым, но равным пустой строке. Если, напротив, нужно задать второй параметр, никак не определяя первый, то для этого следует использовать вызов <code><nowiki>{{Шаблон|2=что_то}}</nowiki></code>. Этот синтаксис следует использовать также и в том случае, когда значение параметра содержит знак равенства (например, «что_то=чему_то»): <code><nowiki>{{Шаблон|1=что_то=чему_то|2=еще_что_то}}</nowiki></code>.<br> | ||
+ | Если для некоторого параметра шаблона подразумевается определённое значение по умолчанию, то можно использовать '''условное включение''' параметра в текст шаблона. Параметр, записанный в теле шаблона в виде: <code><nowiki>{{{parameter|что_то}}}</nowiki></code> будет включён в текст шаблона либо как <code><nowiki>что_то</nowiki></code> (если параметр не был определен), либо будет фигурировать присвоенное ему значение.<br> | ||
+ | Самый простой пример: если некоторый параметр записан внутри шаблона в форме <code><nowiki>1={{{parameter|}}}</nowiki></code> (то есть если в качестве значения по умолчанию используется пустая строка), то в том случае, если этот параметр окажется не заданным, на его месте не будет ничего выводиться.<br> | ||
+ | === Просмотр содержимого шаблона === | ||
+ | Чтобы увидеть «сырое» содержимое шаблона (подстановки параметров и т. д.), нужно смотреть на шаблон в режиме редактирования, поскольку в противном случае некоторые подстановки вроде могут раскрыться.<br> | ||
+ | Для показа содержимого шаблона (без wiki-интерпретации) можно использовать кодовый «волшебный» префикс «msgnw:»: <code><nowiki>{{msgnw:Шаблон}}</nowiki></code> <br> | ||
+ | === Код шаблона === | ||
+ | Всё, что находится между тегами <code><nowiki><noinclude> ... </noinclude></nowiki></code> будет обрабатываться и показываться только в случае когда шаблон показывается непосредственно, не включенным в другую страницу. Возможные применения: | ||
+ | * категоризация шаблонов самих по себе (а не страниц которые их содержат). Т.к. если шаблон содержит код категории, то в указанную категорию помещается не только шаблон, но и все страницы, включающие его. | ||
+ | * текст, объясняющий как использовать шаблон<br> | ||
+ | Теги <code><nowiki><includeonly> ... </includeonly></nowiki></code> обладает противоположным действием. Текст будет обрабатываться и показываться только тогда когда шаблон включён в статью. Очевидное применение - включение всех статей, содержащих шаблон в категорию (при этом сам шаблон в категорию не попадёт).<br> | ||
+ | Следует отметить, что при этом есть проблема — если включить статью в категорию посредством шаблона, а потом изменить категорию в шаблоне, то статьи будут содержаться в старой категории до первого редактирования и сохранения статьи содержащей шаблон.<br> | ||
+ | === Вставка шаблона в момент сохранения === | ||
+ | Используя конструкцию <code><nowiki>{{subst:Шаблон}}</nowiki></code> Вы выполняете подстановку | ||
+ | текста шаблона в момент сохранения ссылающейся страницы.<br> | ||
+ | Например код:<br> <nowiki>{{subst:CURRENTDAY}} {{subst:CURRENTMONTHNAME}} {{subst:CURRENTYEAR}},{{subst:CURRENTTIME}} (UTC)</nowiki><br> | ||
+ | подставится при сохранении страницы:<br> | ||
+ | 3 марта 2005, 16:56 (UTC)<br> | ||
+ | в то время, как<br> | ||
+ | <nowiki>{{CURRENTDAY}} {{CURRENTMONTHNAME}} {{CURRENTYEAR}}, {{CURRENTTIME}} (UTC)</nowiki><br> | ||
+ | каждый раз будет показывать текущее время: | ||
+ | {{CURRENTDAY}} {{CURRENTMONTHNAME}} {{CURRENTYEAR}}, {{CURRENTTIME}} (UTC) | ||
− | Шаблон - обычная Вики-страница и ее тоже может редактировать любой автор. [[Механизм шаблонов]] позволяет вставлять содержимое шаблонов и вычислять параметры шаблона. | + | Шаблоны позволяют создавать образцы и повторно использовать их на страницах. Содержимое страницы можно вставлять в другие страницы. Шаблон - обычная Вики-страница и ее тоже может редактировать любой автор. [[Механизм шаблонов]] позволяет вставлять содержимое шаблонов и вычислять параметры шаблона. [[Хорошая статья]] ВикиВики содержит [[категории]] и [[шаблоны]]. |
− | + | Благодаря [[трансклюзия|трансклюзии]] любая статья ВикиВики может быть использована как шаблон. Если [[имя статьи]] записать не в квадратных, а в фигурных скобках и перед именем статьи поставить двоеточие, то текст указанной статьи будет автоматически подставлен | |
− | + | Пример использования статьи в качестве шаблона | |
− | <nowiki>{{Имя | + | <nowiki>{{:Имя статьи }}</nowiki> |
+ | см. примеры: | ||
+ | * [[Птицы водоема]] | ||
+ | * [[Нижний Новгород]] | ||
+ | Благодаря механизму шаблонов статьи МедиаВики могут использоваться как [[модуль|модули]], из которых пользователи энциклопедии могут собирать новые сложные статьи. Другая метафора - статьи как [[мим]]ы, из которых собираются более сложные мимокомплексы. | ||
[[Категория:Летопись:Справка]] | [[Категория:Летопись:Справка]] | ||
+ | <noinclude>[[Категория:Шаблоны]]</noinclude> |
Текущая версия на 12:05, 15 марта 2010
Шаблонами называется класс особых страниц, содержимое которых можно вставить в другие страницы. Причём это содержимое считывается при каждой загрузке страницы: изменения в шаблоне проявятся на страницах, их применяющих. Страницы шаблонов — полноценные вики-документы, для которых отведено своё пространство имён «Шаблон:». Вызывается шаблон пометкой {{Имя_шаблона}}
. При отображении страницы на место этого будет помещено содержимое страницы «Шаблон:Имя шаблона». Если её ещё нет, то пометка будет отображена как ссылка на несуществующую статью.
Как обычно, имя статьи или шаблона чувствительно к регистру, а пробел эквивалентен подчёркиванию. Возможно также включение шаблона в шаблон, то есть вызов одного шаблона из другого.
Любую страницу можно использовать как шаблон: {{:Имя_страницы}}
Список ссылок на используемые в тексте страницы шаблоны показывается ниже окна редактирования статьи.
Содержание |
[править] Параметры
Параметры шаблона могут быть поименованными:
{{Имя_шаблона|parname1=parvalue1|parname2=parvalue2}}
, тогда в теле шаблона надо ссылаться на {{{parname1}}}
, {{{parname2}}}
;
Или пронумерованными:
{{Имя_шаблона|parvalue1|parvalue2}}
, тогда в теле шаблона нужно использовать {{{1}}}
, {{{2}}}
.
Лишние (не используемые в теле шаблона) параметры игнорируются. Переменные шаблона вычисляются после вставки шаблона в вызывающую его статью, то есть если в шаблоне содержится подстановка {{PAGENAME}}
, то она будет развёрнута в имя вызывающей статьи, а не в имя этого шаблона.
Имена параметров чувствительны к регистру символов. Желательно использовать в именах параметров только латинские буквы, цифры, дефис. Остальные символы не рекомендуются к использованию.
Таким образом, механизм шаблонов выполняет два типа подстановок:
- вызов шаблона (двойные фигурные скобки) заменяется содержимым шаблона;
- параметры шаблона (тройные фигурные скобки) заменяются параметрами шаблона.
Параметром шаблона может быть ссылка на другую статью. Пусть, например, у нас есть такой шаблон:
Эта страница: {{{1}}} моя самая любимая.
и он называется Тест
. Тогда его вызов
{{Тест|[http://www.letopisi.ru/index.php/Шаблоны]}}
будет развёрнут в:
Эта страница: [1] моя самая любимая.
[править] Неопределённые и пустые параметры
Если какой-либо параметр шаблона не задан, то он останется нераскрытым и на странице использующей шаблон Вы увидите примерно такой текст: ...{{{1}}}...
.
Если Вы используете вызов переменных не по именам, а по номерам, то вызов {{Шаблон||что_то}}
делает первый параметр определённым, но равным пустой строке. Если, напротив, нужно задать второй параметр, никак не определяя первый, то для этого следует использовать вызов {{Шаблон|2=что_то}}
. Этот синтаксис следует использовать также и в том случае, когда значение параметра содержит знак равенства (например, «что_то=чему_то»): {{Шаблон|1=что_то=чему_то|2=еще_что_то}}
.
Если для некоторого параметра шаблона подразумевается определённое значение по умолчанию, то можно использовать условное включение параметра в текст шаблона. Параметр, записанный в теле шаблона в виде: {{{parameter|что_то}}}
будет включён в текст шаблона либо как что_то
(если параметр не был определен), либо будет фигурировать присвоенное ему значение.
Самый простой пример: если некоторый параметр записан внутри шаблона в форме 1={{{parameter|}}}
(то есть если в качестве значения по умолчанию используется пустая строка), то в том случае, если этот параметр окажется не заданным, на его месте не будет ничего выводиться.
[править] Просмотр содержимого шаблона
Чтобы увидеть «сырое» содержимое шаблона (подстановки параметров и т. д.), нужно смотреть на шаблон в режиме редактирования, поскольку в противном случае некоторые подстановки вроде могут раскрыться.
Для показа содержимого шаблона (без wiki-интерпретации) можно использовать кодовый «волшебный» префикс «msgnw:»: {{msgnw:Шаблон}}
[править] Код шаблона
Всё, что находится между тегами <noinclude> ... </noinclude>
будет обрабатываться и показываться только в случае когда шаблон показывается непосредственно, не включенным в другую страницу. Возможные применения:
- категоризация шаблонов самих по себе (а не страниц которые их содержат). Т.к. если шаблон содержит код категории, то в указанную категорию помещается не только шаблон, но и все страницы, включающие его.
- текст, объясняющий как использовать шаблон
Теги <includeonly> ... </includeonly>
обладает противоположным действием. Текст будет обрабатываться и показываться только тогда когда шаблон включён в статью. Очевидное применение - включение всех статей, содержащих шаблон в категорию (при этом сам шаблон в категорию не попадёт).
Следует отметить, что при этом есть проблема — если включить статью в категорию посредством шаблона, а потом изменить категорию в шаблоне, то статьи будут содержаться в старой категории до первого редактирования и сохранения статьи содержащей шаблон.
[править] Вставка шаблона в момент сохранения
Используя конструкцию {{subst:Шаблон}}
Вы выполняете подстановку
текста шаблона в момент сохранения ссылающейся страницы.
Например код:
{{subst:CURRENTDAY}} {{subst:CURRENTMONTHNAME}} {{subst:CURRENTYEAR}},{{subst:CURRENTTIME}} (UTC)
подставится при сохранении страницы:
3 марта 2005, 16:56 (UTC)
в то время, как
{{CURRENTDAY}} {{CURRENTMONTHNAME}} {{CURRENTYEAR}}, {{CURRENTTIME}} (UTC)
каждый раз будет показывать текущее время:
21 ноябрь 2024, 17:03 (UTC)
Шаблоны позволяют создавать образцы и повторно использовать их на страницах. Содержимое страницы можно вставлять в другие страницы. Шаблон - обычная Вики-страница и ее тоже может редактировать любой автор. Механизм шаблонов позволяет вставлять содержимое шаблонов и вычислять параметры шаблона. Хорошая статья ВикиВики содержит категории и шаблоны.
Благодаря трансклюзии любая статья ВикиВики может быть использована как шаблон. Если имя статьи записать не в квадратных, а в фигурных скобках и перед именем статьи поставить двоеточие, то текст указанной статьи будет автоматически подставлен Пример использования статьи в качестве шаблона
{{:Имя статьи }}
см. примеры:
Благодаря механизму шаблонов статьи МедиаВики могут использоваться как модули, из которых пользователи энциклопедии могут собирать новые сложные статьи. Другая метафора - статьи как мимы, из которых собираются более сложные мимокомплексы.