Личные инструменты

Lurkmore:Шаблоны

Материал из Lurkmore

Перейти к: навигация, поиск

Шаблоны в первом приближении являются автоматизированным копипастом. Однако, они позволяют невозбранно достичь большего, чем это возможно через копипаст. А ещё говорят, что они полны по Тьюрингу. Разработчикам ПО это может что-то напоминать.

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

Содержание

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

Язык разметки, включая разметку шаблонов описан на сайте MediaWiki.org. Там описаны различные версии медиавики и различные расширения. Нас интересует наше, поэтому смотрим Служебная:Version и обнаруживаем, что версия 1.15, а из полезных для разметки расширений имеются ParserFunctions и Cite. Так-то!

Кстати, понимаете ли вы по-английски?

Шаблоны же находятся непосредственно здесь, в пространстве имён «Шаблон». Участник, даже если он Анонимус, может невозбранно создать собственный или отредактировать имеющийся шаблон. Ну, кроме тех случаев, когда он не может.

[править] Как вставлять

Шаблоны вставляются двойными фигурными скобками. Вот такое {{TeX}} вставляет в текущую страницу содержимое страницы Шаблон:TeX, и получается вот так: TeX. «Шаблон:» — пространство имён, в котором берутся шаблоны.

Можно вставлять и страницы из других пространств имён, добавив двоеточие в начало — {{:Goatse.cx/ASCII}} вставляет Goatse.cx/ASCII. Алсо, можно начинать на слеш для вставки подстраницы: на странице Goatse.cx можно написать просто {{/ASCII}}. Обычно нет причин держать шаблон не в пространстве имён «Шаблон».

На примере goatse и TeX был рассмотрен просто копипаст, но шаблоны могут быть контекстнозависимыми через параметры и магические слова.

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

Могут иметь либо порядковый номер, либо имя. Например, {{delete|хуита|todo=апстена >>}}. Здесь «хуита» — параметр с номером 1, а «апстена >>» — параметр с именем todo. В самом шаблоне они используются как {{{1}}} и {{{todo}}} соответственно. Или чаще {{{1|}}} и {{{todo|написать нормальную статью}}}. То что после вертикальной черты подставляется, если параметр не задан. В одном шаблоне тот же параметр можно использовать любым способом любое число раз.

ACHTUNG: не заданый параметр и пустой параметр — две большие разницы. {{xyz|}} — первый параметр пустой, {{xyz}} первый параметр на задан, {{xyz||abc}} — второй параметр abc, первый пустой, {{xyz|2=abc}} второй параметр abc, первый не задан.

[править] Магические слова

много их. Некоторые из:

[править] Имя страницы

{{PAGENAME}}, {{SUBPAGENAME}}, etc. — эти позволяют получить имя текущей страницы в разных форматах.

Не шаблона, а именно текущей. Если шаблон foo вставлен в шаблон bar, и всё это вставлено в страницу FUBAR, то {{PAGENAME}}, который находится на foo, выдаст на странице FUBAR не foo и не bar, а именно FUBAR.

Варианты этого магического слова с примерами, как оно работало бы, находясь на странице Участник:Test/Testspace вот:

РазметкаРезультат
{{FULLPAGENAME}} Участник:Test/Testspace/Place
{{PAGENAME}} Test/Testspace/Place
{{BASEPAGENAME}} Test/Testspace
{{SUBPAGENAME}} Place
{{SUBJECTPAGENAME}} Участник:Test/Testspace
{{TALKPAGENAME}} Обсуждение участника:Test/Testspace
{{NAMESPACE}} Участник

[править] Дата и время

{{CURRENTYEAR}}, {{CURRENTMONTH}}, etc.

[править] Форматировние

  • {{lc:БуКаВкИ}} — букавки,
  • {{uc:БуКаВкИ}} — БУКАВКИ.
  • {{lcfirst:БуКаВкИ}} и
  • {{ucfirst:БуКаВкИ}} изменяют только первую букву.

[править] Арифметика и логика

  • {{#expr:выражение}} — умеет делать арифметические и логические действия, округлять, возводить в степень, находить логарифм, применять тригонометрические функции. Не умеет делить на ноль и находить арксинус четырёх. Очень нужная вещь.
  • {{#if:текст|что выдать если непусто|что выдать если пусто}} — проверяет пустой ли текст. Разумеется, с неизменной строкой не очень полезно, и туда как текст обычно запиливают параметры или магические слова. Например {{#if:{{NAMESPACE}}|Это хуита|Это основное пространство}} — реально используется в {{notcrap}}.
  • {{#ifeq:что|чему|если равно|если не равно}} — проверяет равенство строк что и чему. Регистрозависимое, что позволяет юзать вместе со всякими lcfirst. Пример в {{Языки}}, {{Девайс}}.
  • #switch
{{#switch: что
| равно-чему1=выдать1
| равно-чему2
| равно-чему3=выдать3
|#default = выдать в остальных случаях}}

Сравнивает что с вариантами равно-чемуn и выдаёт соответствующий результат. В случаях, где нет знака равно, как здесь с равно-чему2, берётся следующий, то есть выдать3. равно-чемуn или выдатьn вполне может быть пустой строкой. Применяется дохуя где.

Больше луркать здесь

[править] Тэги

Некоторые тэги имеют отношение к шаблонам:

  • <nowiki></nowiki> — отключает обработку шаблонов, как и всю остальную обработку викиразметки.
  • <noinclude></noinclude> — позволяет включить в шаблон что-то, что не будет включено при его подстановке. Полезно для включения шаблона в категорию, документации шаблона, плашек для шаблона.
  • <includeonly></includeonly> — позволяет включить в шаблон что-то, что будет включено при его подстановке, но не в самой странице шаблона. На первый взгляд бесполезно, однако, может быть нужно прописать категорию к месту включения шаблона, но не к шаблону.

Внимание! Вики-теги очень чувствительны к переносу строки, поэтому их желательно не отрывать от содержимого.
Например:

<includeonly><b>Here be dragons.</b></includeonly>

будет нормально;

<includeonly><b>
Here be dragons.
</b></includeonly>

тоже будет нормально;

<includeonly>
<b>Here be dragons.</b>
</includeonly>
а это даст пустой параграф (

) до и после Here be dragons.

[править] Фичи

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

В вике используются html'ные комментарии:

<!-- Здесь был Вася. -->

При создании своего премудрого шаблона обязательно надо писать как он работает! Для юзеров есть шаблон {{doc}}, а для интересующихся есть комменты. Хорошие комменты растят карму, я гарантирую это!

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

[править] Плашки

Основная статья: ЛМ:плашки

[править] Шаблоны-списки

Версия «см. также», обладающая большей функциональностью. Также, её проще поддерживать — достаточно добавить ссылку в шаблон, а не искать все статьи, куда её нужно добавить. Алсо, навязывает категории, которые обычно лень проставлять. Словом, кошерная вещь.

[править] Прочие полезности

  • {{tp}} — кошерно сослаться на шаблон
  • {{NSFW}} — скрывает NSFW-контент, типа Гуро, Goatse, tubgirl. На самом деле, NSFW чаще скрывает говно, на которое не стоит тратить время.
{{NSFW|title=высер|content={{хуита}}}} — здесь плашка сломается, первый символ после равно не должен быть {. Вот так, например, обходится: {{NSFW|title=высер|content=<nowiki>ХУИТА</nowiki> …}}
[[Файл:Example.jpg|thumb|NSFW]] — скрывает изображение с шок-материалом, вместо него пишется надпись «not safe for work». Изображение становится видно, если на него один раз кликнуть.
  • {{Spoiler}}(спойлер: да, таки действительно спойлер).
  • {{video}} — вставка видео с YouTube и не только.
  • {{ET}} -
  • {{note}} — вставка висящей справа свёрнутой заметки.
  • {{Q}}, {{Цитата}} — цитирование. Первый параметр цитата, второй автор, автор по умолчанию Анонимус.
  • {{Acronym}}, {{Укроним}}, {{Acr}} — тултип. Acronym для JAFA, Укроним для Інших мов.
  • {{ascii}} — для оформления ASCII-арта моноширинным шрифтом на чёрном фоне.
  • {{Lj comm}}, {{Lj user}} — ссылки на ЖЖшку.
  • {{lolwhat}}, {{prooflink}}, {{proofpic}} — выражает сомнение[ЩИТО?] в достоверности информации[пруфлинк?]
  • {{r}} — moar дурацких запросов, в том числе и совсем кастомных.
  • {{doc}} — для описания к шаблонам. Идея в том, что doc к залоченному шаблону может редактировать даже анонимус.
  • {{Main}} — ссылается на основную статью. Как здесь в #Плашки.
  • и другие…