Трансклузия (transclusion) — дефиниция и употреба във Вики и уеб

Научете какво е трансклузия — динамично вмъкване на съдържание в Уики и уеб чрез шаблони ({{}}), употреба, примери и добри практики за актуализирано съдържание.

Автор: Leandro Alegsa

Трансклузията е начин за използване на съдържание от един електронен документ в друг, без да се налага копиране. Ако оригиналното съдържание бъде променено, промяната автоматично се отразява във всички места, където то е включено. Двата документа са свързани чрез хипертекст. Думата произлиза от латинската/английската конструкция trans (през, отвъд) и inclusion (включване) и буквално означава „пренесено включване“ — добавяне на съдържание от друго място.

В Уикипедия и други сайтове, работещи с MediaWiki софтуер, трансклузията най-често се използва за вмъкване на съдържание от специална страница, наречена шаблон, в други статии. Методът обаче е приложим и към други типове страници и блокове съдържание.

Технически, когато в изходния код на уики страница се поставят двойни фигурни скоби {{ }} около име на страница или шаблон, парсерът прочита изходния код на уикито, преобразува го в HTML и вмъква получения HTML на мястото на трансклузията, преди да преобразува останалата част от страницата за показване в браузъра. По този начин съдържанието се „включва“ в реално време при всяко зареждане или при обновяване на кеша.

Как се използва във Вики (основни сведения и синтаксис)

  • За да включите шаблон или страница, обикновено се използва синтаксисът {{Име на шаблон}}.
  • Шаблоните могат да приемат параметри: {{Име на шаблон|параметър1|ключ=стойност}}, което позволява да се генерира различно съдържание при едно и също основно тяло на шаблона.
  • За да се вмъкне страница от основното пространство (а не от пространството на шаблоните), във някои случаи се използва префикс :, например {{:Име на страница}}, или се посочва име с котва за раздел: {{:Име на страница#Раздел}}, когато е възможно да се трансклузира само даден раздел.
  • Ако искате да копирате окончателно съдържание на шаблона в статията (без да бъде динамично свързано със шаблона в бъдеще), можете да използвате subst:, например {{subst:Име на шаблон}}. Това вмъква съдържанието при запазване и след това вече не се обновява при промяна на оригинала.

Контрол върху това, което се трансклузира

В страниците, които се трансклузират, могат да се използват специални тагове, за да се определят кои части да бъдат включвани или изключвани:

  • <noinclude>...</noinclude> — съдържанието в тези тагове не се трансклузира; полезно за документация или категории, които трябва да са само на оригиналната страница.
  • <includeonly>...</includeonly> — съдържанието в тези тагове се вижда само когато страница е трансклузирана; когато страницата се преглежда самостоятелно, тези части не се показват.
  • <onlyinclude>...</onlyinclude> — ако се използва, само съдържанието между тези тагове се включва при трансклузия; всичко останало се игнорира при вмъкване.

Влагане и ограничения

Страницата, която е трансклузирана, от своя страна може да съдържа трансклузии на други страници — това се нарича влагане (nesting). Възможно е влагането да се случи няколко нива надолу, но системата налага ограничение на дълбочината (брой нива), за да предотврати случайни или злонамерени безкрайни цикли, които да доведат до зацикляне на парсера или претоварване на сървъра.

Ползи и недостатъци

  • Предимства: намалява дублирането на съдържание (DRY), улеснява поддръжката — промяна на едно място се отразява навсякъде; позволява централно управление на общи елементи (напр. информационни полета, навигационни блокове, предупреждения).
  • Недостатъци и рискове: повишена сложност на шаблоните; трудности при дебъгване, когато множество шаблони се включват един в друг; възможни проблеми с производителността и кеширането при голям брой трансклузии; риск от непреднамерени промени на множество статии при редактиране на общ шаблон.

Алтернативи и други форми на трансклузия в уеб

Извън уики средите, в уеб разработката има различни техники за постигане на подобен ефект:

  • Сървърно включване (Server-Side Includes, SSI) — част от съдържанието се вмъква от сървъра преди изпращане към клиента.
  • ТEMPLATE системи и рендериране на сървъра (напр. чрез шаблонни енджини), които генерират страницата от множества компоненти.
  • Клиентско включване чрез JavaScript (AJAX), iframe или — съдържание се зарежда от отделни източници в браузъра.

    Практически съвети

    • Използвайте трансклузия за съдържание, което се променя често и се използва на много места (напр. предупреждения, стандартни полета, общи пояснения).
    • Документирайте шаблоните добре; използвайте <noinclude> за документация и категории, за да не се появяват в трансклузиите.
    • Проверявайте ефекта на промяната на шаблоните върху страниците, които ги използват, преди да правите широкомащабни редакции.

    Трансклузията е мощна техника за структуриране и поддържане на общо съдържание в уики и по-широко в уеб, но изисква дисциплина в дизайна на шаблоните и внимание към производителността и управлението на версиите.

    Въпроси и отговори

    Въпрос: Какво представлява трансмазнината?


    О: Трансклузията е начин за използване на съдържание от един електронен документ в друг документ, без да се налага копиране на съдържанието. Двата документа са свързани с хипертекст и когато около името на страница се поставят двойни скоби {{ }}, софтуерът ще я прочете и ще добави съдържанието на тази страница в този момент, преди да продължи с преобразуването на изходния код на оригиналната страница.

    Въпрос: Как работи преключването в Уикипедия?


    О: В Уикипедия трансклузията обикновено се използва за поставяне на съдържание от специална статия, наречена шаблон, в други статии, но работи и за други видове статии. Когато около името на страница се поставят двойни скоби {{ }}, софтуерът ще я прочете и ще добави съдържанието на тази страница в този момент, преди да продължи с преобразуването на изходния код на оригиналната страница.

    Въпрос: Какво се случва, ако в оригиналния документ бъдат направени промени?


    О: Ако в оригиналния документ бъдат направени промени, те автоматично ще се появят във всяка статия, използваща прехвърлено съдържание от този документ.

    В: Има ли ограничение за броя на нивата на трансклузия, които могат да бъдат направени?


    О: Да, има ограничение за броя на нивата на транскрипция, които могат да бъдат направени, за да се предотвратят случайни или умишлени безкрайни цикли, които биха причинили проблеми при превода на програми.

    Въпрос: Какво наричате препращане, когато използвате трансклузия?


    О: Препращането при използване на трансклузия означава именуване на страници в скоби {{ }}, така че съдържанието им да може да се добавя в определени точки в друг документ.

    Въпрос: Възможно ли е да изключите части от транслирана страница?


    О: Да, възможно е да се изключат части от трансклудирана страница, както и да се включи само част от нея като само един раздел.

    Въпрос: Може ли транслираната страница да включва други транслирания? О: Да, това се нарича влагане и може да се прави до достигане на зададения лимит, като се предотвратяват случайни или умишлени безкрайни цикли, които биха могли да причинят проблеми с програмите за превод.


    обискирам
    AlegsaOnline.com - 2020 / 2025 - License CC3