Jump to content

Transkluze

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

"Transkluze" je proces, při které se kód stránky zahrne do kódu stránky jiné, tím že se zavolá prostřednictvím odkazu. V kontextu wiki to znamená, že lze úpravou kódu šablony, vytvořené v rámci MediaWiki a natahované do wiki kódu mnoha dalších stránek, měnit jejich obsah, aniž by bylo nutné každou z nich editovat zvlášť.

Jak funguje transkluze

Chcete-li vložit jakoukoli zdrojovou stránku (v rámci jednoho projektu MediaWiki, jako je Wikipedie) do jiné cílové stránky, vložte následující kód: {{SOMEPAGE}}

Kdykoli je vykreslena cílová stránka A, celý obsah zdrojové stránky B (v tomto případě SOMEPAGE) se vykreslí v místě, kde byl umístěn transkluzní tag.

Můžete se například rozhodnout umístit uvítací zprávu na diskusní stránku každého nováčka. Transclusion vytváří "živé" spojení mezi stránkou šablony a cílovou stránkou (stránkami), na kterých by se zpráva měla objevit. Když je šablona upravena, upravují se také všechny cílové stránky.

Můžete se také rozhodnout vytvořit stránku (šablony) se svou poštovní adresou a zahrnout tuto šablonu nejen na svou stránku, ale také na stránky všech vašich přátel. Když přestěhujete televizi a pohovku do jiného bytu, můžete změnit šablonu adresy a nové informace se automaticky aktualizují na stránkách všech vašich přátel.

Značky a syntaxe transkluze

Pokud je zdroj ve jmenném prostoru šablony (např. "Template:Welcome"), použijte pouze samotný název: {{Welcome}}

Pokud je zdroj ve jmenném prostoru hlavního článku (např. "VisualEditor"), musí být před název přidána dvojtečka (:): {{:VisualEditor}}

Pokud je zdroj v jakémkoli jiném jmenném prostoru (např. "User:Example"), musíte použít celé jméno, včetně jmenného prostoru: {{User:Example}}

Pokud je zdrojem podstránka cílové stránky (např. "Transclusion/ja"), můžete jednoduše zadat název podstránky bez ohledu na jmenný prostor: {{/ja}}

Etymologie

Výraz "Transkluze " se poprvé objevil roku 1981 v knize Literary Machines (Literární stroje) Teda Nelsona, stejně jako výrazy "hypertext" a "hypermédia".

Částečná transkluze

Transkluze umožňuje sestavit do jedné stránky obsah z mnoha dalších stránek a podstránek, ale není nutné aby se při tom natahoval pokaždé celý wiki kód volané stránky. Značky "noinclude", "onlyinclude" a "includeonly" umožňují ovlivnit proces zpracování kódu při transkluzi. V některých případech je dokonce vložení kompletního kódu nežádoucí, typicky u šablon je potřeba kromě dokumentace odfiltrovat i kategorizační odkazy.

Efekt částečné a plné transkluze na konkrétních příkladech

Úplnou transkluzi použijte, pokud chcete do cílové stránky zahrnout celý obsah zdrojové stránky. Například obsah stránky o jabloních můžete zahrnout do stránky věnované ovocným stromům. Ale tam, kde chcete zahrnout jen část zdrojové stránky, se vám bude hodit částečná transkluze. Například chcete-li zahrnout do stránky, která pojednává o pečení jablečného štrůdlu, informace ze stránky věnované odrůdě Granny Smith.

Značky, jimiž se dá proces transkluze ovlivnit

  • noinclude - Značka ‎<noinclude>...‎</noinclude> znamená, že text, umístěný mezi značkami má být viditelný jen na zdrojové stránce a do jiné stránky se vložit nesmí. Tato značka se obvykle využívá k odfiltrování kategorizace šablony a její dokumentace.
  • includeonly - Značka ‎<includeonly>...‎</includeonly> signalizuje, že text který je mezi značkami se má zobrazovat jen pokud je obsah vložen do jiné stránky, ale na zdrojové stránce ne. To se hodí například v situaci, kdy používáte šablonu, která má kategorizovat do určité kategorie všechny stránky kde je použitá. Pokud byste ji nepoužili, spadla by do stejné kategorie i ta šablona.
  • onlyinclude - Značka ‎<onlyinclude>...‎</onlyinclude> signalizuje, že kód mezi značkami bude viditelný na výchozí stránce, i na všech stránkách do kterých bude vložena. Toto je nejjemnější z tagů částečné transkluze, protože často převažuje nad ostatními. Pokud je na stránce alespoň jeden pár tagů "onlyinclude", pak vždy, když je tato stránka transkludována, je transkludován pouze materiál v rámci tagů "onlyinclude". Na stránce může být několik takových sekcí "onlyinclude". To může být užitečné například pro opakování malé části jedné stránky na druhé: Stačí obklopit malou část tagy onlyinclude a přenést ji na druhou stránku.
Značky ‎<noinclude>, ‎<includeonly>, a ‎<onlyinclude> se chovají jinak, pokud jsou uzavřeny do tagu ‎<nowiki>. Značka tagu nowiki umožňuje vypnout u značek ‎<noinclude> a ‎<includeonly> jejich zpracování během první transkluze. A u značky ‎<onlyinclude>, má ‎<nowiki> ten efekt, že odfiltruje během první transkluze značku ‎<onlyinclude>.
Označení Výsledný efekt při transkluzi
<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

Tyto značky můžete zahnízdit do sebe dle libosti a tak, ovlivnit nejenom to co se bude zobrazovat na aktuální stránce, ale i to, co se bude zobrazovat na stránkách sestavených s využitím transkluze.

Podstránky

Text, který se má převést, můžete vyjmout a vložit do podstránky a poté použít název podstránky v šabloně transkluze. Tento přístup lze použít pouze tam, kde jsou povoleny podstránky. Například na anglické Wikipedii lze podstránky používat pouze ze stránek User, Talk nebo Wikipedia. V současné době nelze podstránky vytvářet z hlavních stránek článků.

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.

Speciální stránky

Viz také:w:Wikipedia:Transclusion#Special pages a Manual:$wgAllowSpecialInclusion

Některé stránky na Special:Specialpages lze převést, např.:

Ukázka: {{Special:Newpages/3}} dává 3 nové stránky.

Parametry URL lze zadat jako parametry šablony, např.  {{Special:RecentChanges|namespace=10|limit=5}}.

Alternativy k transkluzi podle šablony

Občas možná budete chtít použít šablonu, ale z toho či onoho důvodu možná nebudete chtít použít transkluzi. Automatické jednorázové zkopírování kódu/textu šablony do umístění značky šablony se nazývá náhrada šablony nebo subclusion (substituce + transkluze). Chcete-li podřadit kód/text šablony, změní se značka šablony ze standardní značky transkluze na značku náhrady, jednoduše přidáním subst: a vytvořením značky ve tvaru: {{subst:template name}}.

Označená sekce Transclusion

Rozšíření nazvané Labeled Section Transclusion umožňuje transkludovat označené části textu.

Scribunto

Obsah stránky nebo dokonce její části můžete převést pomocí Lua s příponou Scribunto . Viz Module:Transcluder pro příklad na této wiki.

Sémantická MediaWiki

Rozšíření Semantic MediaWiki používá k dotazování a zobrazení sémantických dat vložené dotazy. V současné době existují dva způsoby, jak provést transkluzi nebo něco podobného:

  1. Správná transkluze. Formát zobrazení "embedded" zajišťuje, že vybrané stránky (články hlavního prostoru, šablony atd.) budou transkludovány. Stejně jako u šablon budou sekce umístěné mezi tagy noinclude vynechány.
  2. Vybraným pasážím na stránce lze přiřadit vlastnost typu 'Text'. Tyto výběry lze vyžádat spuštěním vloženého dotazu pro tento typ vlastnosti.

Další informace viz inline dotazy.

Stránky související s transkluzí MediaWiki

Šablony

Související odkazy