Включение

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

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

Механизм включения

Transclusion(wtd-ck).png

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

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

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

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

Transclusion Markup & Syntax

Если источник находится в пространстве имён Шаблон (англ. Template) (например, шаблон приветствия "Welcome" (Template:Welcome на английском в MediaWiki или "Добро пожаловать" в русской версии Википедии)), просто вставьте это имя / название шаблона само по себе: {{Welcome}}

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

Если источник находится в любом другом пространстве имён (например, участников "User:Example" "Участник:Такой-то"), требуется указать полное название страницы, включая пространство имён, где она находится: {{User:Example}}

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

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

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

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

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

Examples of when to use full versus partial transclusion

Use full transclusion when you want to include the full content of a source page in a target page. For example, you could include the full content of a page about apples in a page about tree fruits. Use partial transclusion when you only want to include part of a source page in a target page. For example, you could include only information about Granny Smith apples from a page about apples in a page about ingredients commonly used in baking.

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

  • noinclude - Постановка ‎<noinclude>...‎</noinclude> означает, что текст между тегами не будет отображаться на другой странице и появится только на текущей. Это требуется для документации шаблонов и их категорий.
  • includeonly - Постановка ‎<includeonly>...‎</includeonly> означает, что текст между тегами не будет отображаться на текущей странице и появится только на другой. Это может пригодиться, например, для простановки категорий на страницы, содержащие тот или иной шаблон,без включения страницы самого шаблона в эти категории.
  • onlyinclude - Теги ‎<onlyinclude>...‎</onlyinclude> указывают, что только текст между ними "$2" отобразится на другой странице, но будет виден на самой странице, если не снабжены еще и тегами "$3". Этот тег частичной трансклюзии самый тонкий, так как нередко отменяет действие других. Если на странице есть хоть одна пара тегов "onlyinclude", то когда мы задаем ее трансклюзию, только материал между тегами "onlyinclude" выводится на целевую страницу. There can be several such "onlyinclude" sections on a page. Это может пригодиться для повторения небольшой части одной страницы на другой: просто заключите эту небольшую часть между тегами onlyinclude, и она отобразится на нужной другой странице.
‎<noinclude>, ‎<includeonly>, and ‎<onlyinclude> behave differently inside ‎<nowiki> tags. nowiki tags enable escaping special markup, and does this for ‎<noinclude> and ‎<includeonly> tags. However, ‎<onlyinclude> tags within ‎<nowiki> tags produces only the content inside the ‎<onlyinclude> tag.
Разметка Output when transcluded
<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 nest all three transclusion types within each other, which enables you to refine exactly what content is displayed on the current page and is visible on transcluded pages.

Подстраницы

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:AllPages, Special:PrefixIndex, Special:NewFiles, Special:NewPages, Special:RecentChanges м Special:RecentChangesLinked.

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

Шаблоны

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