Добро пожаловать на русскоязычный раздел Справочной Gamepedia! Этот проект только ещё начинается, в нём сделана лишь мизерная часть того, чего требуется. Но он непременно будет развиваться. Если вы хотите помочь зарождающейся справочной — то смело включайтесь в дело!

Создание шаблонов

Материал из Справочная Gamepedia
Перейти к: навигация, поиск

Написание шаблонов очень похоже на написание любой другой вики-страницы, и простейшие шаблоны на самом деле не являются чем-то вроде типичной вики-страницы, которая просто отображается на других страницах. Но большинство шаблонов используют параметры, волшебные слова и функции парсера, такие как функции, предоставляемые стандартными ParserFunctions (установленные по умолчанию на всех вики-версиях Gamepedia), чтобы сделать их еще более полезными.

Написание простого шаблона[править | править код]

Если вы создаете страницу под названием "Шаблон:Добро пожаловать" с содержимым:

Привет! Добро пожаловать в вики.

вы создали свой первый шаблон! Если вы затем вставите код:

{{Добро пожаловать!}}

на любой другой странице, на этой странице появится текст "Привет! Добро пожаловать в вики". Вместо {{Добро пожаловать!}}. Содержимое шаблона "будет показоно" на другой странице, то есть он интегрируется в страницу.

Затем вы можете использовтаь {{Добро пожаловать!}} на любой страницы, где вы хотите приветствовать кого-то. Предположим, он используется на 100 страницах. Если вы затем измените содержимое шаблона на:

Всем привет! Добро пожаловать в эту замечательную вики.

и пересмотреть любую из 100 страниц, на которых использовался шаблон, вы увидите новый текст вместо оригинала. Таким образом, вы изменили содержание 100 страниц без их редактирования, так как шаблон был перенесен на эти страницы.

Это основной механизм. Существует несколько дополнительных функций трансклюзии, которые обогащают этот механизм и делают шаблоны очень полезными.

Параметры[править | править код]

Чтобы обогатить механизм трансляции, MediaWiki позволяет передавать параметры в шаблон, когда он транслируется. Параметры позволяют шаблону создавать различное содержимое или иметь разные поведения.

Предположим, вы хотите вставить небольшую благодарственную заметку на странице Обсуждение страниц других пользователей, например:

{{Спасибо тебе|за все ваши усилия|Я}}

У заметки спасибо будет причина (в данном случае "все ваши усилия") и подпись ("Я"). Ваша цель - любой пользователь может поблагодарить любого другого пользователя по любой причине.

Так что заметка будет выглядеть везде, где она используется, например, вы можете определить шаблон с именем [[Шаблон:Спасибо]]. Хотя примечание должно выглядеть похожим, когда пользователь благодарит другого пользователя, его конкретное содержимое (то есть причина и подпись) будет отличаться. По этой причине вы должны передавать их в качестве параметров. Если мы игнорируем оставшиеся элементы для форматирования блока и размещения изображения, основным содержимым шаблона будет следующее:

'''Спасибо тебе...'''
за {{{1}}}.
объятия, {{{2}}}

Обратите внимание на использование {{{1}}} и {{{2}}}. Это способ идентифицировать в шаблонах параметры, которые будут переданы при использовании шаблона. Обратите внимание, что внутри шаблона каждый параметр заключен в три фигурные скобки: {{{}}}. Это отличается от обычного использования имени шаблона.

При использовании шаблона на странице вы заполняете значения параметров, разделенных символом "pipe" (|). MediaWiki позволяет передавать параметры шаблону тремя способами:анонимно, нумерованными и именованными.

Анонимные параметры[править | править код]

Чтобы передать анонимные параметры, последовательно укажите значения этих параметров:

{{Спасибо тебе|за все ваши усилия|Я}}

В этом случае шаблон {{Спасибо тебе}} получает параметры {{{1}}}=все ваши усилия и {{{2}}}=Я, производя:

Спасибо тебе... за все ваши старания. обнимаю, Я

Порядок, в котором передаются анонимные параметры, имеет решающее значение для его поведения. Изменение порядка параметров, например:

{{Спасибо тебе|Я|за все ваши усилия}}

приведет к такому результату:

Спасибо тебе... за Я. обнимаю, все ваши старания.

Примечание: определение параметров по порядку (с{{{1}}} и т.д.) Работает только с анонимными параметрами. Если ваша страница идентифицирует любой параметр по номеру или имени, как показано ниже, этот метод больше не будет доступен шаблону, который их получает.

Нумерованные параметры[править | править код]

Чтобы передать параметры по номеру, определите каждый параметр при его передаче:

{{Спасибо тебе|2=Я|1=твой друг}}

На этот раз шаблон {{Спасибо тебе}} получает параметры {{{1}}}=твой друг и {{{2}}}=Я, хотя они были поставлены в обратном порядке и производят:

Спасибо тебе... за нашу дружбу. обнимаю, Я

Именованные параметры[править | править код]

Третий способ передачи параметров - по имени, а не по номерам. В этом случае содержимое шаблона будет изменено на:

'''Спасибо тебе...'''
за {{{причина}}}.
обнимаю, {{{подпись}}}

Внутри шаблона мы используем {{причина}}} и {{{подпись}}} для идентификации каждого параметра, а не числа. Чтобы передать эти параметры по имени, идентифицируйте каждый параметр при его передаче:

{{Спасибо тебе|подпись=Я|причина=будьте тем кто вы есть}}

В этом случае шаблон {{Спасибо тебе}} получает параметры {{{причина}}}=будьте тем кто вы есть</ code> и {{{подпись}}}=Я и выдает:

Спасибо тебе... будьте тем кто вы есть. обнимаю, Я

Преимущество использования именованных параметров в вашем шаблоне, а также гибкость в параметрах заказа могут быть переданы, в том, что он делает код шаблона намного проще для понимания, если имеется много параметров.

Значения по умолчанию[править | править код]

Если вы передадите шаблон, который ожидает параметров, но не предоставляет их, таким образом:

{{Спасибо тебе}}

в примере с пронумерованными параметрами вы получите следующее:

Спасибо тебе... за {{{1}}}. объятия, {{{2}}}

Поскольку параметры не были переданы, в шаблоне представлены сами параметры, а не их соответствующие значения. В этих случаях может оказаться полезным определить значения по умолчанию для параметров, т.е. Значения, которые будут использоваться, если не передано значение. Например, если содержимое шаблона изменяется на:

'''Спасибо тебе...'''
за {{{причина|все}}}.
объятия, {{{подпись|Я}}}

то {{{причина|все}}} определяет, что если не указан параметр {{{причина}}}, значение все будет использоваться. Аналогично, {{{подпись|Я}}}, по умолчанию использует параметр {{{подпись}}} для значения Я. Теперь, снова передавая шаблон без передачи какого-либо параметра, получим следующее:

Спасибо тебе... за все. объятия, Я

Управление шаблоном[править | править код]

По умолчанию содержимое шаблона отображается целиком, как при непосредственном просмотре, так и при его включении в другую страницу. Однако вы можете контролировать, какие части шаблона будут видны и включены с помощью <noinclude>, <includeonly></ code> и <onlyinclude>.

Отображение контента только на странице шаблона[править | править код]

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

  • Категория Ссылки при категоризации самого шаблона
  • Межъязыковые ссылки к аналогичным шаблонам на других языках
  • Пояснительный текст о том, как использовать шаблон

Альтернативно, все, что находится за пределами <onlyinclude> и </onlyinclude>, отображается только тогда, когда шаблон Страница просматривается напрямую. <onlyinclude></ nowiki></code> и <code><nowiki><noinclude> имеют одну и ту же цель, но работают противоположным образом.

Отображение контента только при трансляции или замещении[править | править код]

<onlyinclude> не следует путать с <includeonly>, который имеет другую цель. Все, что между <includeonly> и </includeonly> будет обрабатываться и отображаться только при включении страницы , но не тогда, когда страница шаблона просматривается напрямую, и полезна в таких ситуациях, как:

  • Категоризация страницы, содержащие шаблон. Примечание: при изменении категорий, применяемых шаблоном таким образом, категоризация страниц, которые включают этот шаблон, может не обновляться до некоторого времени позже: это обрабатывается очередью заданий. Чтобы принудительно повторно классифицировать определенную страницу, откройте эту страницу для редактирования и сохраните ее без изменений.
  • Обеспечение того, чтобы код шаблона не выполнялся при просмотре самой страницы шаблона. Обычно это происходит из-за того, что он ожидает параметров, а его выполнение без параметров имеет нежелательный результат.

Всегда показывать содержимое[править | править код]

Если не используются теги <onlyinclude>, все за пределами <noinclude> и <includeonly> обрабатывается и отображается нормально; то есть как при просмотре страницы шаблона, так и при ее включении в другую страницу.

В противном случае внутри тега шаблона и при его включении будут отображаться все внутри тегов <onlyinclude>, кроме тех случаев, когда <includeonly> используются внутри.

Организация шаблонов[править | править код]

Чтобы шаблоны были эффективными, пользователям нужно найти их и узнать, как их использовать.

Чтобы найти их, пользователи могут:

  1. Нажмите Спецстраницы > Все страницы
  2. В списке Пространство имен выберите Шаблон и нажмите Перейти.

Чтобы предоставить информацию об использовании, включите пример, подобный этому, на странице шаблона:

<noinclude>
== Применение ==
Приветствуем пользователей:
{{Спасибо тебе|причина=ваша причина|подпись=ваша подпись}}
</noinclude>

Затем можете просто скопировать и вставить пример для использования шаблона.

Копирование из одной вики в другую[править | править код]

Для шаблонов часто требуется CSS или другие шаблоны, поэтому пользователям часто не удается скопировать шаблоны из одной вики в другую. Шаги ниже должны работать для большинства шаблонов.

Код MediaWiki[править | править код]

Если у вас есть права на импорт в новой вики:

  1. Перейдите к Служебная:Экспорт на исходной wiki и загрузите файл .xml с полной историей всех необходимых шаблонов, как показано ниже:
    • Введите имя шаблона в большом текстовом поле, например. "Шаблон: Добро пожаловать". Обратите особое внимание на заглавные и специальные символы - если имя шаблона не совсем верно, экспорт все равно может произойти, но файл .xml не будет иметь ожидаемых данных.
    • Установите флажок "Включить шаблоны".
    • Снимите флажок "Включать только текущую версию, без полной предыстории".
    • Нажмите "Экспортировать".
  2. Перейдите в Служебная:Импорт в новой wiki и загрузите файл .xml.

Если у вас нет прав на импорт в новой вики:

  1. Перейдите к Служебная:Экспорт на исходной wiki и загрузите файл .xml с полной историей всех необходимых шаблонов, как показано ниже:
    • Введите имя шаблона в большом текстовом поле.
    • Установите флажок "Включить шаблоны".
    • Снимите флажок "Включать только текущую версию, без полной предыстории".
    • Нажмите "Экспортировать".
    • Откройте файл в текстовом редакторе и замените определенные XML entities соответствующими символами: &lt; → <, & gt; → >, &quot; → "и &amp; → &. Из-за правил синтаксиса XML эти объекты отображаются в файле XML, но они не должны отображаться в окне редактирования экземпляра MediaWiki.
    • Вручную скопируйте текст внутри тега <text> каждого из перечисленных шаблонов в шаблон с аналогичным именем в вашей wiki. В сводке редактирования каждого шаблона укажите ссылку на исходную страницу для атрибуции.

Это скопирует весь необходимый код и будет достаточным для некоторых шаблонов.

Расширения[править | править код]

Расширением, часто используемым в шаблонах, является ParserFunctions. Посетите страницу ParserFunctions и проверьте, не используется ли какая-либо из перечисленных функций в копируемых вами шаблонах. Расширение ParserFunctions устанавливается по умолчанию в Gamepedia wikis.

Код CSS и JavaScript[править | править код]

Помимо кода MediaWiki, многие шаблоны используют CSS, а некоторые полагаются на JavaScript для полноценной работы. Если скопированные шаблоны ведут себя не так, как ожидалось, это может быть причиной. Чтобы скопировать необходимые CSS и JavaScript в вашу wiki, вам, как правило, необходимо иметь права администратора, потому что вы будете редактировать системные сообщения в пространстве имен "MediaWiki:".

  1. Найдите в тексте шаблона классы CSS (такие как class="foobar"). Если эти классы отображаются в "MediaWiki:Common.css" или "MediaWiki:Monobook.css" в исходной wiki, скопируйте их в "MediaWiki:Common.css" в новой вики-версии и проверьте, в порядке ли шаблон теперь.
  2. Если скопированный шаблон по-прежнему не работает должным образом, проверьте, есть ли код в "MediaWiki:Common.js" или "MediaWiki:Monobook.js" на оригинальной wiki. Если это так, вы можете попробовать скопировать его в "MediaWiki:Common.js" на новой вики. Как правило, рекомендуется копировать код из надежных источников и сначала просматривать код, чтобы идентифицировать и выбрать нужные части. Вы можете найти комментарии, которые могут служить подсказками для определения функциональности каждой части.

Смотрите также[править | править код]