Трансклюзія

From MediaWiki.org
Jump to navigation Jump to search
This page is a translated version of the page Transclusion and the translation is 65% complete.
Other languages:
English • ‎français • ‎português • ‎українська • ‎中文 • ‎日本語

Трансклюзія загалом є включенням умісту документу в інший документ за посиланням. У контексті вікі, це використання функціональності шаблону MediaWiki для включення того самого вмісту в кілька документів без необхідності редагувати ці документи окремо.

Як працює трансклюзія

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

Для трансклюзії будь-якої початкової сторінки (в єдиному проекті MediaWiki, як-от Вікіпедії) всередині іншої, цільової сторінки, включіть наступний код: {{SOMEPAGE}}

Щоразу, коли цільова сторінка А рендериться, весь уміст початкової сторінки Б (в даному випадку, SOMEPAGE), рендеритиметься у місці, де розміщено тег трансклюзії.

Наприклад, ви можете вирішити розмістити вітальне повідомлення на кожній сторінці обговорення новоприбулого. Трансклюзія створює «живе» посилання між шаблоном-сторінкою та цільовою сторінкою (сторінками), на яких повідомлення повинно з'явитися. Коли шаблон редагується, всі цільові сторінки також редагуються.

Ви також можете вирішити створити сторінку (шаблону) зі своєю поштовою адресою та включити, що шаблон на ній на тільки вашої сторінки, але й також усіх сторінок ваших друзів. Коли ви переміщуєте свій телевізор і диван до іншої квартири, ви можете змінити шаблон своєї адреси, і ця нова інформація автоматично оновиться на всіх сторінках ваших друзів.

Етимологія

Тед Нельсон закарбував термін «transclusion», а також «гіпертекст» і «гіпермедіа», у своїй книзі 1982 року Literary Machines.

Часткова трансклюзія

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

Розмітка трансклюзії

  • noinclude. The markup <noinclude>...</noinclude> means that the text between the tags will not be transcluded onto another page and will appear only on the page itself. This is useful for template documentation and categories.
  • includeonly. The markup <includeonly>...</includeonly> means that the text between the tags will only be used when the page is transcluded onto another page, and will not appear on the page itself. This can be useful, for example, for adding categories to pages transcluding a template, without adding the template itself to these categories.
  • onlyinclude. The markup <onlyinclude>...</onlyinclude> indicates that only text surrounded by "onlyinclude" markup should be transcluded onto another page, but will appear on the page itself if not accompanied by "includeonly" tags as well. This is the most subtle of the partial transclusion tags because it often overrules the others. If there is at least one pair of "onlyinclude" tags on a page, then whenever this page is transcluded, it is only the material within the "onlyinclude" tags which gets transcluded. There can be several such sections, and within each such section, some material might be further excluded by "noinclude" tags, and might also be surrounded by "includeonly" tags so that it does not appear on the original page itself. But material outside the "onlyinclude" tags will be ignored when the page is transcluded onto another page. This can be useful, for example, to repeat a small part of one page on a second one: just surround the small part by onlyinclude tags, and transclude it onto the second page. Note that unlike <noinclude> and <includeonly>, <onlyinclude> will take precedence over enclosing <nowiki> tags. In other words, <nowiki><onlyinclude>My content</onlyinclude></nowiki> produces only "My content" when transcluded.

Підсторінки

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.

Спеціальні сторінки

See also:w:Wikipedia:Transclusion#Special pages and Manual:$wgAllowSpecialInclusion

Some pages on Special:Specialpages can be transcluded, such as Special:AllPages, Special:PrefixIndex, Special:NewFiles, Special:NewPages, Special:RecentChanges and 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.

Семантичний 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

Шаблони

Див. також