Transclusie — definitie en toepassing: dynamisch hergebruik van wiki-inhoud
Transclusie: heldere uitleg van definitie, werking en toepassingen voor dynamisch hergebruik van wiki-inhoud, sjablonen, transcluderen en geneste content.
Transclusie is een techniek om inhoud uit het ene elektronische document in een ander document weer te geven zonder die inhoud fysiek te kopiëren. Wordt de originele inhoud aangepast, dan verschijnt die wijziging automatisch in elk ander document dat de inhoud getranscludeerd heeft. De twee documenten zijn met elkaar verbonden door middel van hypertekst. Het woord is afgeleid van trans (overzetten) en opnemen, en betekent dus letterlijk: iets vanuit een andere plaats opnemen.
Op Wikipedia en andere MediaWiki-sites wordt transclusie veel gebruikt om inhoud uit speciale pagina's, zoals een sjabloon, in meerdere artikelen te hergebruiken. Dezelfde techniek kan ook toegepast worden op gewone artikelen, pagina-onderdelen of op pagina's die programmeerbare modules (bijv. Lua) bevatten.
Hoe transclusie werkt
In de meeste wikis geeft een speciale notatie aan dat de inhoud van een andere pagina moet worden ingevoegd. Wanneer de software de transclusie tegenkomt, leest zij de bron van de genoemde pagina, converteert die naar HTML en voegt die HTML in op de plaats van de transclusie voordat de rest van de pagina wordt verwerkt en naar de gebruiker gestuurd (in een browser). Dit betekent dat de getoonde pagina altijd de meest recente versie van de getranscludeerde inhoud bevat.
Gebruiksgemak en voorbeeld: door in de bron van een pagina de paginanaam tussen dubbele accolades te zetten (bijv. {{Paginanaam}}), geef je aan dat de inhoud van "Paginanaam" moet worden opgenomen. De software vergelijkt en combineert de renderstappen op het moment van weergave zodat de geïntegreerde inhoud zichtbaar wordt.
Veelgebruikte tags en opties
- <noinclude> — tekst binnen deze tag wordt niet opgenomen wanneer een pagina getranscludeerd wordt; nuttig voor discussies of categorieën die alleen op de bronpagina moeten verschijnen.
- <includeonly> — tekst binnen deze tag verschijnt alleen in de getranscludeerde weergave (dus niet op de bronpagina zelf wanneer die direct bekeken wordt).
- <onlyinclude> — als delen van een pagina zijn omgeven door deze tag, wordt alleen dat deel opgenomen bij transclusie; alle andere inhoud wordt genegeerd.
Transclusie op delen van pagina's en uitsluitingen
Naast het opnemen van hele pagina's bestaan er manieren om slechts bepaalde delen te transcluderen of juist delen uit te sluiten. De hierboven genoemde tags maken dit mogelijk zonder dat de broninhoud aangepast hoeft te worden op alle plaatsen waar die gebruikt wordt. Zo houd je sjablonen en herbruikbare teksten overzichtelijk en beheersbaar.
Nesting, limieten en performance
Een getranscludeerde pagina kan op zijn beurt weer transclusies bevatten; dit noemt men nesting. Nesting kan meerdere niveaus diep gaan, maar wikis stellen doorgaans een limiet aan het aantal toegestane niveaus om te voorkomen dat er oneindige lussen ontstaan die de render-engine doen vastlopen. Daarnaast kan veelvuldige en diepe transclusie invloed hebben op de laadtijd en serverbelasting; daarom bevatten veel implementaties cachingmechanismen zodat pagina's niet bij iedere request volledig opnieuw moeten worden opgebouwd.
Voor- en nadelen
- Voordelen: beter onderhoud door één enkele bron voor herbruikbare inhoud, consistente presentatie, snelle updates voor alle pagina's die de inhoud gebruiken.
- Nadelen: grotere afhankelijkheid tussen pagina's (wijzigingen kunnen onverwachte gevolgen hebben), complexere debugging wanneer inhoud niet verschijnt zoals verwacht, en potentieel hogere serverbelasting bij complexe transclusies.
Praktische tips
- Gebruik sjablonen voor vaste stukjes tekst of herhalende opmaak; dat houdt artikelen kort en uniform.
- Markeer duidelijk welke delen van een sjabloon bedoeld zijn voor transclusie met <onlyinclude>, <includeonly> of <noinclude>.
- Houd nesting beperkt en documenteer afhankelijkheden zodat andere editors weten waar wijzigingen impact op hebben.
- Houd rekening met cachegedrag: soms duurt het even voordat veranderingen van een getranscludeerde pagina zichtbaar zijn op alle transcluderende pagina's.
Door transclusie verstandig in te zetten, kun je inhoud dynamisch hergebruiken, consistentie bewaren en het redactionele werk op grotere wiki-projecten veel efficiënter maken.
Vragen en antwoorden
V: Wat is transclusie?
A: Transclusie is een manier om inhoud van een elektronisch document te gebruiken in een ander document zonder de inhoud te hoeven kopiëren. De twee documenten zijn verbonden door hypertekst, en wanneer dubbele accolades {{ }} rond een paginanaam worden geplaatst, zal de software deze lezen en de inhoud van die pagina op dat punt toevoegen, alvorens verder te gaan met het converteren van de broncode van de oorspronkelijke pagina.
V: Hoe werkt transclusie op Wikipedia?
A: Op Wikipedia wordt transclusie meestal gebruikt om inhoud van een speciaal artikel, een sjabloon genaamd, in andere artikelen te plaatsen, maar het werkt ook voor andere soorten artikelen. Wanneer dubbele accolades {{ }} rond een paginanaam worden geplaatst, zal de software deze lezen en de inhoud van die pagina op dat punt toevoegen, alvorens verder te gaan met het omzetten van de broncode van de oorspronkelijke pagina.
V: Wat gebeurt er als er wijzigingen worden aangebracht in een origineel document?
A: Als er wijzigingen worden aangebracht in een origineel document, worden deze automatisch weergegeven in elk artikel waarin de getranscludeerde inhoud van dat document wordt gebruikt.
V: Is er een limiet aan het aantal niveaus van transcluderen?
A: Ja, er is een limiet aan het aantal transclusieniveaus dat mogelijk is, om te voorkomen dat er per ongeluk of opzettelijk oneindige lussen ontstaan die problemen zouden veroorzaken bij het vertalen van programma's.
V: Hoe noemt u verwijzingen bij het gebruik van transclusie?
A: Verwijzen bij het gebruik van transclusie betekent het benoemen van pagina's tussen accolades {{ }}, zodat de inhoud ervan op bepaalde punten in een ander document kan worden toegevoegd.
V: Is het mogelijk om delen van een getranscludeerde pagina uit te sluiten?
A: Ja, het is mogelijk om delen van een getranscludeerde pagina uit te sluiten, maar ook om slechts een deel ervan op te nemen, zoals slechts één sectie.
V: Kan een uitgelichte pagina ook andere uitgelichte pagina's bevatten? A: Ja, dit wordt nesting genoemd en kan gedaan worden tot de ingestelde limiet bereikt is, om te voorkomen dat er per ongeluk of opzettelijk oneindige lussen ontstaan, die problemen zouden kunnen veroorzaken bij het vertalen van programma's.
Zoek in de encyclopedie