Включение

This page is a translated version of the page Transclusion and the translation is 73% complete.

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

Как работает включение

 

Чтобы включить любую страницу-источник (внутри одного проекта MediaWiki, такого как Википедия) на другой целевой странице, вставьте следующий код: {{НАЗВАНИЕ}}

Когда целевая страница A будет отображена, всё содержимое страницы-источника B (в этом случае НАЗВАНИЕ) будет отображено на позиции, где находится код включения.

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

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

Разметка и синтаксис включения

Если источник расположен в пространстве имён «Шаблон» (например, «Template:Welcome»), просто используйте название шаблона: {{Welcome}}

Если источник расположен в основном (статейном) пространстве имён (например, «VisualEditor»), перед названием требуется добавить двоеточие (:): {{:VisualEditor}}

Если источник расположен в любом другом пространстве имён (например, «User:Example»), требуется использовать полное название страницы вместе с пространством имён: {{User:Example}}

Если источник является подстраницей целевой страницы, (например, «Transclusion/ja»), можно также просто указать название подстраницы, независимо от пространства: {{/ja}}

Этимология

Тед Нельсон придумал английский термин «Включение » («включение», «трансклюзия»), наряду с терминами «гипертекст» и «гипермедиа», в книге 1982 года «Литературные машины».

Частичное включение

Через теги разметки «noinclude» («не включать»), onlyinclude («только включать») и «includeonly» («включать только») появляется возможность включить часть страницы, а не всю страницу. Такое частичное включение может быть также использовано при включении с других страниц, например, подстраниц. Часто невключение части информации является желательным, например, документации шаблона и его категорий.

Примеры, когда использовать полное или частичное включение

Используйте полное включение, когда вы хотите включить содержимое страницы-источника на целевую страницу целиком. Например, вы можете включить полное содержимое страницы о яблоках на страницу о плодовых деревьях. Используйте частичное включение, когда вы хотите включить только часть страницы-источника на целевую страницу. Например, вы можете включить только информацию о сорте яблок «Гренни Смит» со страницы о яблоках на страницу об ингредиентах, часто используемых в выпечке.

Разметка частичного включения

  • noinclude - Разметка ‎<noinclude>...‎</noinclude> означает, что текст между тегами видим исключительно на странице-источнике и не может быть включён на другую страницу. Это полезно для документаций шаблонов и категорий.
  • includeonly - Разметка ‎<includeonly>...‎</includeonly> означает, что текст между тегами будет скрыт на странице-источнике и отображён только при включении на другую страницу. Это может быть полезно, например, для простановки категорий на страницы, содержащие тот или иной шаблон, без добавления самого шаблона в эти категории.
  • onlyinclude - Разметка ‎<onlyinclude>...‎</onlyinclude> означает, что текст между тегами будет видимым на странице-источнике и видимым при включении на другую страницу. Этот тег частичного включения наиболее сложный, так как он часто отменяет действие других. Если на странице есть хоть одна пара тегов «onlyinclude», то при включении этой страницы будет показан только контент между тегами «onlyinclude». На странице может быть несколько таких тегов «onlyinclude». Это может быть полезным, например, для повторения небольшой части одной страницы на другой: просто заключите небольшую часть в теги «onlyinclude» и включите её на другую страницу.
‎<noinclude>, ‎<includeonly> и ‎<onlyinclude> ведут себя по-разному внутри тегов ‎<nowiki>. Теги nowiki позволяют отключить работоспособность специальной разметки и это работает для тегов ‎<noinclude> и ‎<includeonly>. Однако теги ‎<onlyinclude> внутри тегов ‎<nowiki> выводят только содержимое внутри тегов ‎<onlyinclude>.
Разметка Вывод при включении
<nowiki><noinclude> My content </noinclude></nowiki> <noinclude> My content </noinclude>
<nowiki><includeonly> My content </includeonly></nowiki> <includeonly> My content </includeonly>
<nowiki><onlyinclude>My content</onlyinclude></nowiki> My content

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

Подстраницы

You can cut and paste the text to be transcluded into a subpage, then use the name of the subpage in the transclusion template. This approach can be used only where subpages are enabled; for example, on the English Wikipedia, subpages can be used only from User, Talk or Wikipedia pages; currently, subpages cannot be created from main article pages.

Example: you want to discuss the deletion and redirecting of Pussycat to Cat. First, create the subpage Talk:Pussycat/Let's delete Pussycat!, write your comment into it, then transclude it in Talk:Pussycat and Talk:Cat using the template {{Talk:Pussycat/Let's delete Pussycat!}}. Comments posted in either talk page will be shown in both.

Служебные страницы

Некоторые страницы из Special:Specialpages также могут быть включены в другие, например:

Пример: {{Special:Newpages/3}} даёт три новые страницы.

URL parameters can be given like template parameters, e. g.

{{Special:RecentChanges|namespace=10|limit=5}}.

Alternatives to transclusion by template

Occasionally you may want to use a template, but for one reason or another may not want to use transclusion. The automatic one-time copying of a template's code/text to the location of a template tag is called Template substitution or subclusion (substitution + transclusion). To subclude a template's code/text, the template tag is modified from the standard transclusion tag to a substitution tag, simply by adding subst:, creating a tag with the form: {{subst:template name}}.

Labeled Section Transclusion

An extension called Labeled Section Transclusion enables marked sections of text to be transcluded.

Scribunto

You can transclude page content, or even parts of it, using Lua with the Scribunto extension. See Module:Transcluder for an example on this wiki.

Semantic MediaWiki

The Semantic MediaWiki extension uses inline queries to query and display semantic data. There are currently two ways to perform transclusion or something similar:

  1. Transclusion proper. The display format "embedded" ensures that selected pages (mainspace articles, templates, etc.) are transcluded. As with templates, sections placed between noinclude tags will be omitted.
  2. Selected passages in a page can be assigned a property of type 'Text'. These selections can be requested by running an inline query for this type of property.

See inline queries for further information.

Страницы, связанные с включениями в MediaWiki

Шаблоны

Смотрите также