Трансклюзія

From mediawiki.org
This page is a translated version of the page Transclusion and the translation is 47% complete.
Outdated translations are marked like this.

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

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

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

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

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

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

Transclusion Markup & Syntax

Якщо джерело у просторі назв Шаблон (наприклад, «Template:Welcome»), просто використовуйте саму його назву: {{Welcome}}

Якщо джерело в Основному просторі статей (наприклад, «VisualEditor»), то двокрапка (:) повинна бути додана перед назвою: {{:VisualEditor}}

Якщо джерело в будь-якому іншому просторі (наприклад, «User:Example»), то слід використовувати повну назву, включно з простором: {{User:Example}}

Якщо джерело є підсторінкою цільової сторінки, (наприклад «Transclusion/ja»), то можна просто вказати назву підсторінки незалежно від простору назв: {{/ja}}

Етимологія

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

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

За допомогою розмітки «noinclude», «onlyinclude» та «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.
Markup 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.

Підсторінки

Ви можете вирізати та вставити текст, який трансклюзуватиметься, на підсторінку, тоді використовуйте назву підсторінки в шаблоні трансклюзії. Цей підхід може бути використаний тільки, де увімкнені підсторінки; наприклад, в Англійській Вікіпедії підсторінки можуть бути використані тільки від сторінок Користувач, Обговорення чи Вікіпедія; наразі підсторінки не можуть бути створені від основних сторінок статей.

Приклад: ви хочете обговорити вилучення чи перенаправлення Кицька на Кіт. Спочатку, створіть підсторінку Обговорення:Кицька/Вилучімо Кицьку!, напишіть свій коментар на ній, потім трансклюзуйте її на Обговорення:Кицька та Обговорення:Кіт, використовуючи шаблон {{Обговорення:Кицька/Вилучімо Кицьку!}}. Коментарі, розміщені на будь-якій сторінці обговорення, показуватимуться на обох.

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

Some pages on Special:Specialpages can be transcluded, e.g.:

Зразок: {{Спеціальна:Нові сторінки/3}} дає 3 нові сторінки.

Параметри URL можуть даватися як параметри шаблону, наприклад {{Special:RecentChanges|namespace=10|limit=5}}.

Альтернативи трансклюзії шаблоном

Вряди-годи ви можете захотіти використати шаблон, але з тієї чи іншої причини можете не хотіти використовувати трансклюзію. Автоматичне одноразове копіювання коду чи тексту шаблону в місце тегу шаблону називається підстановкою шаблону чи підклюзією (підстановка + трансклюзія). Для підклюзії коду чи тексту шаблону, тег шаблону модифікується зі стандартного тегу трансклюзії на тег підстановки простим додаванням підст:, створюючи тег із формою: {{subst:назва шаблону}}.

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.

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


Шаблони

Див. також