WikiHelp:Шаблоны
{{#set: |HelpId=Templates |HelpOrder=800 |ParentMenuId=AdvancedMarkup |HelpContent=Справка:Шаблоны |HelpDisplay=Шаблоны }}
Шаблоны являются специальными статьями, содержимое которых предназначенно для многократного включения в другие статьи. Таким образом, можно добиваться не только ссылочной целостности и актуальности, но и текстовой, т. к. изменения в одной статье-шаблоне автоматически распространятся на все включающие ее статьи. К тому же, шаблоны можно параметризовать, добиваясь унифицированного описания однородных объектов. Далее, мы опишем, как их использовать. Общая информацияСтатьи-шаблоны располагаются в специальном пространстве имен «Template», т. е. они имеют префикс «Template:». Содержимое каждой такой статьи (вне зависимости, фиксировано ли оно, или зависит от некоторых переменных параметров) предназначено для удобства включения в другие статьи, т. е. для создания составных документов. Для того, чтобы включить статью «Template:name», нужно использовать следующий синтаксис (так называемый тэг шаблона) {{name}}. Тогда при показе статьи будет подставлено содержимое ссылаемого шаблона. Терминологически, этот процесс можно также называть
Если страница «Template:name» еще не существует, то {{name}} будет работать как [[Template:name]], т. е. как ссылка на несуществующую статью, которую можно редактировать. Таким образом, шаблоны также удобно заводить, сначала сделав на него ссылку, а затем проследовав по ней. Если статья name уже существует в обычном (не шаблонном) пространстве имен, или начинается с двоеточия (что означает ссылку на основное пространство имен), то ссылка не будет автоматически направлятся в шаблонное пространство имен «Template:». Таким образом, любую страницу можно использовать как шаблон. (Примечание: если вызывать так картинку или категорию — то будет подставлена описательная часть картинки и категории соответственно). Таким образом удобно
Напоминаем, что как обычно, имя статьи или шаблона чувствительно к регистру, и что пробел эквивалентен подчеркиванию. Возможно также рекурсивное включение. Переменные шаблона вычисляются после вставки шаблона в «вызывающую» статью, т. е. если в шаблоне содержится подстановка {{PAGENAME}}, то она будет развернута в имя вызывающей статьи, а не имя шаблона. Список ссылок на использованные на странице шаблоны показывается на странице редактирования статьи, причем показываются все шаблоны, даже если редактируется только раздел документа, который не содержит шаблонов. ПараметрыПараметры шаблона могут быть поименованные или пронумерованные. Синтаксис использования может быть
Лишние (не используемые в теле шаблона) параметры игнорируются. Имена параметров чувствительны к регистру, пробелы, подчеркивание и остальные символы не из набора [a-z\-A-Z0-9] недопустимы.
Т.е. механизм шаблонов выполняет два типа подстановок:
Параметром шаблона может быть ссылка на другую статью. Пусть например у нас есть Шаблон: Начало {{{1}}} Конец. Тогда {{Шаблон| [[Main_Page|Главная страница]]}} будет развернуто в Начало Главная страница Конец. Если какой-то параметр «someparameter» не задан, то он остается нераскрытым текстом {{{someparameter}}}, что позволит раскрыть его, если вызвавшая шаблон статья, также включается куда-то, где этот параметр задан.
Просмотр содержимого шаблонаЧтобы правильно увидеть содержимое шаблона, нужно смотреть на шаблон в режиме редактирования, т. к. некоторые подстановки, типа {{PAGENAME}}, могут раскрыться. msgnwДля показа содержимого шаблона (без wiki-интерпретации) можно использовать кодовый «волшебный» префикс u «msgnw:». Т.е. {{en}} и {{msgnw:en}} будут показаны как Шаблон:En и [[:Шаблон:En]] соответственно. Ссылка на редактирование шаблона«Редактирующая» ссылка на каждой странице-статье не позволяет редактировать текст используемого шаблона, а иногда желательно иметь такую ссылку (приглашающую поправить шаблон, например, если шаблон еще не устоялся, или если его содержимое может часто изменяться). Такую ссылку можно «зашить» внутрь самого шаблона, даже более того, сделать шаблоном, который можно использовать внутри других шаблонов. См. template:edit.
Ограничения и возможностиИспользование вложенных двойных или тройных фигурных скобок внутри двойных вложенных скобокНе получиться вызывать шаблоны в зависимости от содержимого других шаблонов. Допустим, у нас есть шаблон «tctc» с содержимым «tc», и шаблон «tc» с содержимым «Ура». Тогда вызов {{{{tctc}}}} даст текст {{{{tctc}}}}, а не «Ура». Не получится использовать значение раскрытого шаблона при вызове другого шаблона. Зато можно использовать значения переданных переменных, при указании значений переменных для вызываемого шаблона.
Тэг категории в шаблоне. Проблема с кэшированиемЕсли шаблон содержит код категории, то в указанную категорию помещается не только шаблон, но и все страницы, включающие его, поэтому удобно использовать шаблоны для рубрикации статей. Но может возникнуть проблема с кэшированием — если поменять категорию у шаблона, то категория у включающих него страниц поменяется только после выполнения каких-либо правок этих страниц (не обязательно при этом что-либо менять, т.е. операция правка может быть чисто формальной). КэшированиеПравка шаблона автоматически сбрасывает кэширование всех статей, напрямую использующих этот шаблон. Однако в случае с косвенными зависимостями (шаблоны зависящие от параметров и т. п.), внутренний кэш системы не сбрасывается и стандартный «Refresh» броузера может не помочь. В таких случаях используйте «action=purge», т. е. вызывайте URL типа http://lib.custis.ru/index.php?title=CustisWiki&action=purge substИспользуя «subst:» после двойных фигурных скобок заставляет выполнять подстановку текста шаблона или даже переменной в момент сохранения ссылающейся страницы. Например «timestamp»: {{subst:CURRENTDAY}} {{subst:CURRENTMONTHNAME}} {{subst:CURRENTYEAR}}, {{subst:CURRENTTIME}} (UTC) подставится при сохранении, как: 3 March 2005, 16:56 (UTC)
Альтернатива subst
ПеренаправленияКогда страница, вызванная для включения, является страницей-перенаправлением, то включается содержимое страницы, на которую указывает перенаправление. Страница, которая ничего не содержит, кроме включения другой страницы, в общем схожа со страницей-перенаправлением, но имеет и множество различий, например:
Ссылки на шаблонОтметим, что если ссылаться (в смысле гиперссылок) на шаблоны, как на обычные статьи, то нельзя передать им параметры (что, в общем, очевидно). Однако, иногда это может быть полезно, например, ссылка на увеличенное изображение.
История изменений для страниц содержащих шаблоныПри просмотре исторических версий статей, содержащих шаблоны и/или картинки, всегда используется текущая версия шаблонов (и картинок), т. е. невозможна автоматическая «абсолютная» реконструкция исторических версий композитных текстов, чтобы также содержались ссылки на соответствующие картинки и шаблоны.
Функции парсераВ CustisWiki установлено расширение ParserFunctions, позволяющее выполнить нетривиальное препроцессирование разметки. Более подробно см. RuPedia:Википедия:Функции парсера. Ссылки
Любые правки этой статьи будут перезаписаны при следующем сеансе репликации. Если у вас есть серьезное замечание по тексту статьи, запишите его в раздел «discussion».
Статья реплицируется в SMWiki, SBWiki, RDWiki, GZWiki, DPWiki, HRWiki, CBWiki, ORWiki, RAWiki. Статья реплицируется в Wiki4IntraNet. |
{{#ask: ParentMenuId::Top |
?HelpId | ?HelpOrder | ?ParentMenuId | ?HelpDisplay | ?HelpContent | ?#=Link | sort=HelpOrder | format=template | named args=yes | template=WikiHelp/SideMenu/TopLevel
}} |