Lurkmore:Шаблоны

Материал из Lurkmore
Перейти к навигации Перейти к поиску

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

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

Как луркать

Язык разметки, включая разметку шаблонов, описан на сайте MediaWiki.org. Там описаны различные версии медиавики и различные расширения. Наша версия 1.40.0 (берётся из магического слова, см. код страницы), а из полезных для разметки расширений имеются ParserFunctions и Cite. Так-то!

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

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

Как вставлять

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

Можно вставлять и страницы из других пространств имён, добавив двоеточие в начало — {{: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}} Участник

Чтобы использовать имена страниц в ссылках, надо на конце добавлять ещё одно E, например, {{TALKPAGENAMEE}}.

Дата и время

{{CURRENTYEAR}}, {{CURRENTMONTH}}, etc. Используются системные настройки. Если нужны ваши дата и время, заданные в настройках пользователя, то CURRENT заменяется на LOCAL.

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

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

  • {{#ifexpr:условие|если выполняется|если не выполняется}} — очень полезная функция для проверки выполнения условия. В условие можно поставить, например, {{значение1}} < {{значение2}}, то есть все условия, в которых можно применить арифметическую проверку.

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

Теги

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

  • <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.

Мнемоники

Чтобы не пихать всё время тег <nowiki>, особенно если нужно сослаться лишь на одиночный тег или символ без обработки или вставить юникод-символ, который с клавы сложно набрать, достаточно произвести замену спецсимвола на его аналог. Например:

Символ Назначение Мнемоника Код
[ левая квадратная скобка &#91;
] правая квадратная скобка &#93;
< левая угловая скобка, знак меньше &lt; &#60;
> правая угловая скобка, знак больше &gt; &#62;
неразрывный пробел &nbsp; &#160;
& амперсанд &amp; &#38;
« левая угловая кавычка &laquo; &#171;
» правая угловая кавычка &raquo; &#187;
' одинарная кавычка &apos; &#39;
" двойная кавычка &quot; &#34;
одиночная левая кавычка-лапка &lsquo; &#8216;
одиночная правая кавычка-лапка &rsquo; &#8217;
двойная левая кавычка-лапка &ldquo; &#8220;
двойная правая кавычка-лапка &rdquo; &#8221;
́ аку́т, знак ударения &#769;
£ фунт &pound; &#163;
евро &euro; &#8364;
¥ иена &yen; &#165;
ƒ знак функции &fnof; &#402;
всё множество &forall; &#8704;
существует &exist; &#8707;
пустое множество &empty; &#8709;
частичный дифференциал &part; &#8706;
сумма &sum; &#8721;
квадратный корень или радикал &radic; &#8730;
интеграл &int; &#8747;
угол &ang; &#8736;
бесконечность &infin; &#8734;
Æ заглавная латинская лигатура &AElig; &#198;
æ строчная латинская лигатура &aelig; &#230;

Мнемоники и коды взаимозаменяемы. Обратите внимание, что мнемоники игнорируют любое вики-форматирование. Больше луркать здесь.

Фичи

Комментарии

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

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

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

Какие шаблоны есть

Плашки

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


Шаблоны-списки

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

Прочие полезности

  • {{tp}} — кошерно сослаться на шаблон
  • {{NSFW}} — скрывает NSFW-контент типа Гуро, Goatse, tubgirl. На самом деле NSFW чаще скрывает говно, на которое не стоит тратить время. Параметр title можно опустить. Используются также неименованные значения.
{{NSFW|title=высер|content={{хуита}}}} — здесь плашка сломается, первый символ после знака равенства не должен быть {. Вот так, например, обходится: {{NSFW|title=высер|content=<nowiki>

ХУИТА

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