Трансклюзия

From mediawiki.org
Jump to navigation Jump to search
This page is a translated version of the page Transclusion and the translation is 59% complete.
Outdated translations are marked like this.
Other languages:
Deutsch • ‎English • ‎español • ‎français • ‎português • ‎русский • ‎українська • ‎العربية • ‎अवधी • ‎中文 • ‎日本語

Трансклюзия - это включение содержимого одного документа в другой с помощью простановки ссылки (reference). В Вики это использование шаблонов от MediaWiki для включения одного контента в несколько документов без необходимости редактировать каждый из них по отдельности.

Механизм трансклюзии

Transclusion-simple.png
Transclusion-multiple-twit.png

Для трансклюзии любой страницы - "источника" (внутри какого-либо одного проекта MediaWiki, такого как Википедия) на другую страницу вставьте в эту другую следующий код: {{SOMEPAGE}}, где вместо SOMEPAGE подставьте название исходной страницы.

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

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

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

Происхождение термина

Термин "трансклюзия" "transclusion" придумал Тед Нельсон наряду с терминами "Гипертекст" и "Гипермедиа " в своей книге 1982 "Литературные машины".

Частичная трансклюзия

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

Разметка трансклюзии

  • noinclude - Постановка <noinclude>...</noinclude> означает, что текст между тегами не будет отображаться на другой странице и появится только на текущей. Это требуется для документации шаблонов и их категорий.
  • includeonly - Постановка <includeonly>...</includeonly> означает, что текст между тегами не будет отображаться на другой странице и появится только на текущей. Это может пригодиться, например, для простановки категорий на страницы, содержащие тот или иной шаблон,без включения страницы самого шаблона в эти категории.
  • onlyinclude - Теги <onlyinclude>...</onlyinclude> указывают, что только текст между ними "onlyinclude" отобразится на другой странице, но будет виден на самой странице, если не снабжены еще и тегами "includeonly". Этот тег частичной трансклюзии самый тонкий, так как нередко отменяет действие других. Если на странице есть хоть одна пара тегов "onlyinclude", то когда мы задаем ее трансклюзию, только материал между тегами "onlyinclude" выводится на целевую страницу. Таких участков текста может быть несколько, и внутри каждой часть текста может дополнительно исключаться тегами "noinclude" и может также окружаться тегами "includeonly", чтобы не отображаться на самой исходной странице. Но текст за пределами тегов "onlyinclude" будет игнорироваться при трансклюзии страницы на другую. Это может пригодиться для повторения небольшой части одной страницы на другой: просто заключите эту небольшую часть между тегами onlyinclude, и она отобразится на нужной другой странице. Заметьте, что в отличие от <noinclude> и <includeonly>, <onlyinclude> имеет приоритет над окружающими тегами <nowiki>. Другими словами, <nowiki><onlyinclude>Мой текст</onlyinclude></nowiki> покажет при трансклюзии только "Мой текст".

Подстраницы

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.

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

Sample: {{Special:Newpages/3}} gives 3 new pages.

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. An extension with a somewhat similar function is PageVariableExtension.

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.

Pages related to MediaWiki transclusion

Шаблоны

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