Из Википедии, бесплатной энциклопедии
Перейти к навигации Перейти к поиску

Некоторые пользователи обеспокоены тем , что шаблон включение особенность двигателя MediaWiki не всегда может быть использована с умом. Включение - это простая идея, но все ее последствия могут не сразу стать очевидными для пользователей с менее техническим образованием. Хотя шаблоны упрощают многие задачи, их использование, как и любой другой инструмент, сопряжено с рисками. Это своего рода цена, которую мы платим за преимущества шаблонов. Кроме того, существуют прямые затраты с точки зрения машинных ресурсов, как и для любого компьютерного инструмента. Следовательно, существуют ограничения шаблона. Даже в этих пределах есть цена. Он может быть представлен в простых долларовых терминах; если деньги не потрачены, стоимость проявляется как ухудшение характеристик двигателя. Эта статья объясняет эти затраты и преимущества.

Чтобы включить любую исходную страницу (в рамках одного проекта MediaWiki, например en: Wikipedia), включите в целевую страницу следующий код :

{{SOURCEPAGE}}

Всякий раз, когда целевая страница с этим кодом ( {{SOURCEPAGE}}) отображается, движок будет включать все содержимое SOURCEPAGEцелевой страницы.

В приведенном ниже примере, давайте начнем с целевой страницы A и SOURCEPAGE B .
Если B включен в A , то движок будет включать в это место не сам code ( {{B}}), а содержимое исходной страницы B (которая состоит только из одного слова, foo).

Верхняя строка показывает, как отображается целевая страница A , а нижняя строка показывает код, необходимый для включения исходной страницы в целевую страницу. Обратите внимание, что положение кода определяет, как будет отображаться каждая из целевых страниц A , P и Q.

Содержимое исходной страницы foo не будет выделено или заключено в рамку на целевой странице.

Включение-множественный-foo.svg

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

Включение создает «живую» ссылку между страницей шаблона и целевой страницей, на которой должно отображаться содержимое шаблона. Когда шаблон редактируется, отображение этого шаблона на целевых страницах также обновляется. Допустим, вы создали (шаблонную) страницу в Википедии с адресом местного события Викимедиа. Затем вы включаете этот шаблон на свою страницу обсуждения, а также на страницы обсуждения всех приглашаемых местных редакторов. Через неделю мероприятие перенесут в немного большее место. Затем вы обновите шаблон адреса, и измененный адрес автоматически появится на страницах всех остальных участников.

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

Затраты и выгоды [ править ]

Включение - это инструмент, который, как и любой другой инструмент, приносит пользу и требует затрат. Точные значения этих затрат и выгод варьируются в зависимости от мудрого или глупого дизайна и использования и являются предметом споров. Невозможно сделать вид, будто кто-то может дать совершенно нейтральное заявление об этих затратах и ​​выгодах; оба в значительной степени субъективны и чрезвычайно трудны для измерения.

Соцсети [ править ]

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

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

Если большой объем текста, появляющийся на многих страницах, хранится в шаблоне и включается во все целевые объекты, тогда есть некоторая экономия на хранении, но обычно есть небольшая, если вообще есть, выгода для машины, предоставляемая включением.

Пользователи, однако, могут счесть включение очень полезным, а некоторые из них во многих отношениях весьма неожиданными. Можно включить практически любой тип текста, разметки, HTML или CSS-кода; если этот текст или код используется в нескольких местах, шаблоны значительно упрощают ручной труд. Не только это, но и уменьшая количество ошибок, связанных с повторяющимся набором текста, шаблоны помогают снизить уровень Wikistress и уменьшить объем работы по уборке.

Сравнение [ править ]

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

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

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

Двойное включение [ править ]

TC-dbl.PNG
TC-dbl-twit.PNG

Поскольку почти любую страницу можно включить, почему мы не можем включить одну страницу в другую, а затем включить эту страницу в третью? Ответ: мы можем.

Некоторые мастер - шаблоны будут предназначены для использования с другими подшаблонами . Когда мастер-шаблон B включается в целевую страницу A , подключаемый подшаблон C также включается.

Поскольку обе ссылки «живые», при редактировании подшаблона целевая страница также изменяется. Это могло быть продолжено еще дальше; страница C может включать некоторую страницу D , а контент на странице A может быть экземпляром тройного включения . Когда страница D редактируется, страница C изменяется, поэтому страница B изменяется, поэтому страница A изменяется - прямо на следующей строке.

Геометрический эффект множественного включения [ править ]

Затраты и преимущества двойного включения возрастают геометрически (в широком смысле этого слова). Скажем, шаблон X включен в 5 других шаблонов; и скажем, что каждый из этих шаблонов сам включен на 5 целевых страниц. Шаблон X дважды размещен на 25 страницах. Редактирование X появляется в общей сложности на 31 странице: X , 5 шаблонах и 25 целевых объектах.

TC-dbl-graph.PNG

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

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

TC-subst.PNG
TC-subst-twit.PNG

MediaWiki предоставляет subst:команду, которая просто заменяет одну страницу другой. Это сильно отличается от включения, хотя разница обычно не видна при первом редактировании.

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

{{subst:SOMEPAGE}}

(Применяется тот же синтаксис, что и в случае включенных страниц.)

При предварительном просмотре страницы, содержащей замену, вы все равно увидите код в поле редактирования; Вы можете изменить его, если хотите. Но когда вы сохраняете целевую страницу, движок заменяет код тем, что находится на исходной странице. Если вы снова отредактируете цель , вы увидите, что код замены исчез; содержимое исходной страницы заменило его напрямую.

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

Замещение и включение можно использовать вместе, и часто это хорошая идея . Вместо использования двойного включения вы можете заменить одну страницу другой, а затем включить эту страницу в целевую страницу. Или вы можете обнаружить, что одна страница включает другую; вы выбираете замену включающей страницы в целевую, а не форсируете двойное включение.

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

Добавление тегов [ править ]

Очень распространенное использование шаблонов - «пометить» страницу - вставить на нее какой-нибудь фрагмент текста, часто помещенный в рамку, часто видимый в самом верху или внизу страницы. Тег содержит не контент, а метаконтент: информацию о самой странице.

Например, {{ FAC }} вставляет следующий тег:

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

Страницы статей редко включаются в список, поэтому их тегирование создает несколько проблем - то же самое касается страниц обсуждения, страниц пространства имен Википедии и, вообще, большинства страниц. Когда страница помечена таким образом, этот тег появляется только в этом месте; если это относится к «этой странице» , понятно, что имеется в виду.

Однако страницы пространства имен Template предназначены для включения и замены, поэтому их тегирование - по любой причине - проблематично.

Xiong-pfd.PNG
  • Какой бы тег ни применялся к странице шаблона, он применяется ко всем целевым объектам, в которых используется шаблон. Если подставить шаблон с тегами, то код включения тега «выпадет» в разметку целевой страницы, включая любую ссылку на категорию. Это приводит к такой бессмысленности, что пользователей выдвигают на удаление . Обратите внимание, что современный дизайн шаблона в значительной степени устраняет эту проблему.
  • Независимо от того, включен ли шаблон с тегами или заменен, он может быть видим на цели для всеобщего обозрения. Это может смущать, деструктивно, раздражать или просто казаться ребяческим. В зависимости от текста шаблона, помеченного таким образом, при взгляде на цель может быть совершенно невозможно увидеть, что было помечено. В общем, случайный читатель не поймет, что имеется в виду.
  • Любой текст или разметка могут быть включены в очень широких пределах; а некоторые шаблоны носят сугубо технический характер, особенно те, которые предназначены в качестве подчиненных или главных шаблонов, с вложенными вызовами параметров или используются для управления другими шаблонами. Изменение даже одного символа в таком шаблоне может не только привести к его поломке, но и вызвать каскад неработающих шаблонов и поврежденных страниц. Пометка такого шаблона почти гарантирует, что он больше не будет работать должным образом.
  • Шаблоны тегов - это как минимум класс двойного включения; если тег или шаблон уже задействованы в двойном включении, результатом - как видно на целевой странице - может быть тройное или четырехкратное включение. В этих случаях применяются все затраты на двойное включение, которые могут быть увеличены.

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

Следовательно: Большинство тегов не следует размещать в большинстве тел страниц пространства имен шаблонов. Если какой-то тег кажется применимым к шаблону, существуют различные варианты: иногда тег может быть размещен на связанной с ним странице обсуждения или странице / doc (если есть) , или это может быть <noinclude> d в шаблоне. Некоторые теги, такие как {{ tfd }}, специально предназначены для видимого включения в шаблоны, чтобы привлечь внимание редакции.

Другие виды включения [ править ]

Другие типы разметки и функции движка также приводят к включению содержимого в отображаемую страницу, аналогично включению или замене:

Wiki.png
  • Изображения включаются в обработанные страницы.
  • Подписи и отметки даты (сгенерированные с помощью нескольких тильд ) заменяются на страницах при сохранении.
    Если разметка подписи содержит вызов шаблона, вызов шаблона заменяется, и содержимое шаблона включается при каждом появлении подписи. Если разметка подписи содержит вызов изображения, изображение включается при каждом появлении. В настоящее время (2011 г.) вызовы шаблонов не могут быть включены в подписи конфигурацией программного обеспечения.
  • Логотип основного сайта Изображение: Wiki.png находится на каждой странице, отрендеренной с помощью некоторых скинов. Все страницы включают некоторые стандартные ссылки и текст.

См. Также [ править ]

  • Википедия: Включение
  • {{ User transclusion }} и {{ User transclusion no }} - ящики пользователей для объявления своей позиции по включению.
  • Википедия: Избегайте использования мета-шаблонов
  • Предыдущие обсуждения по этой теме
    • Wikipedia_talk: Пространство имён шаблона / Архив 1 #, включая прозу
  • Википедия: subst
  • Википедия: ограничения шаблона
  • Википедия: не беспокойтесь о производительности