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}} — ссылается на основную статью. Как здесь в #Плашки.
- и другие…
[ + ] У Луркоморья нуб зелёный.
|
|||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|