Wikipedia:Transklusjon

Transklusjon betyr at innholdet i et dokument inkluderes i et annet dokument ved hjelp av en referanse til det første dokumentet. Når det første dokumentet endres, vil referansen fra det andre dokumentet til det første dokumentet gjøre at det andre dokumentet oppdateres automatisk. I Wikipedia refererer transklusjon til en funksjon i MediaWiki-programvaren som som gjør at man kan inkludere innholdet fra et dokument i et annet dokument ved å legge inn en referanse i wikiteksten til målsiden. Endringer i kildesiden gjenspeiles automatisk på alle sider den har blitt transkludert på. En side som er beregnet på å bli transkludert på en annen side kalles en mal.

Basissyntaksen som brukes til å transkludere i wikitekst er {{Navnerom:Navn}}, som vil bli erstattet av innholdet i siden ved navn Navnerom:Navn når den genereres på brukerens skjerm. Hvis den refererte siden ikke begynner med en navneromsangivelse (Navnerom:), antas den å ligge i Mal-navnerommet. For å referere til en side i "Hovednavnerommet" (artikkelnavnerommet), er det nødvendig med et kolon før navnet (:). Eksempler:

Det er også mulig å sende parametere til en mal, ved å bruke den utvidede syntaksen beskrevet på Hjelp:Maler, som kan påvirke hvilken tekst i malen som vil bli generert. For eksempel, for å fremheve tekst slik som dette, er teksten som skal fremheves sendt som en parameter til markeringspenn-malen: {{markeringspenn|slik som dette}}.

Et alternativ til transklusjon er substitusjon, hvor det nåværende innholdet av malen blir automatisk kopiert til wikiteksten i målsiden når man lagrer, og det kopierte innholdet vil da bli en del av den lagrede siden, uavhengig av eventuelle senere endringer i malen. Syntaksen for dette er {{subst:Malnavn}}

Hvordan transklusjon virker rediger

For å transkludere en hvilken som helst kildeside (innen ett enkelt MediaWiki-prosjekt, slik som no:Wikipedia), legg inn følgende kode i målsiden:

{{ENELLERANNENSIDE}}

Når målsiden A med denne koden blir generert, vil programvaren inkludere hele innholdet av kildesiden B på det stedet {{ENELLERANNENSIDE}} står, og ikke bare selve ordet {{ENELLERANNENSIDE}}


Anvendelser av transklusjon rediger

Den mest vanlige anvendelsen av transklusjon er bruken av maler. Andre sider transkluderes imidlertid også, hovedsakelig innen prosjektnavnerommet, dvs. navnerommet Wikipedia:

Komposittsider rediger

Wikiteksten på en side kan (delvis eller fullstendig) bestå av merker (referanser) for inklusjon av komponentsider. Disse komponentsidene er vanligvis ikke i malnavnerommet, og er ofte fullstendige og selvstendige sider. Sidene som komponentsidene blir transkludert på kalles komposittsider, og er beregnet på å samle materiale på et sentralt sted.

Et eksempel er:

Dette gjør det mulig å velge mellom å se komponentsidene separat eller samlet. Å se på en komposittside er bekvemt når det er mange små, relaterte komponentsider, i og med at man får en oversikt over alle komponentene uten å måtte følge massevis av lenker.

Generelt sett blir hver komponentside og komposittside behandlet separat. Mens de faktiske endringene på komponentsidene vil bli transkludert på komposittsidene, vil ikke redigeringshistorikken, siste enringer, overvåkningslister, "lenker hit" og andre funksjoner bli gjenspeilet på komposittsiden. Komposittsiden er en selvstendig side.

Man kan redigere en et avsnitt på en komponentside direkte fra komposittsiden, se Hjelp:Avsnitt#Redigere avsnitt på inkluderte maler. Etter lagring ender man opp på komponentsiden som avsnittet hører til på.

På prosjekter med interwikilenking viser komposittsiden de kombinerte interwikilenkene for alle komponentsider, og dermed muligens flere lenker for samme språk.

Sider med et felles avsnitt rediger

Når to sider trenger å omfatte det samme materialet på samme måte, kan de dele et avsnitt. Dette involverer å lage en tredje side og transkludere den siden på begge sider. Denne tredje siden kan være en selvstendig side eller en underside av en av de to. Hvis den er en selvstendig side, kan den plasseres i det samme navnerommet som de andre sidene eller i malnavnerommet. Vanlige avsnitt som dette bør merkes med en forklarende tekst og/eller spesielt oppsett, for å informere leseren om at dette avsnittet på siden er et annet sted. De kan lett forvirre bidragsytere og lesere hvis det ikke blir forklart.

Gjentagelse innen en side rediger

På sider der det er mye gjentagende informasjon – vanligvis forskjellige slags lister – er det noen ganger nyttig å lage en mal som inneholder den gjentatte teksten og kalle den opp mange ganger.

Enkel gjentagelse av den samme teksten kan tas hånd om ved repetisjon av en parameter i en enkelt mal, f.eks. {{3x}}, der {{3x| god dag!}} gir god dag! god dag! god dag!

Det er ingen virkelig løkkefunksjonalitet (kjent i BASIC som FOR...NEXT) bygd inn i MediaWiki-programvaren for tiden (2012), men det finnes noen triks for å etterligne dem. For eksempel kan man etterligne en dobbel løkke ved å kalle opp en mal gjentatte ganger som i sin tur kaller opp forskjellige maler.

Se også Hjelp:Rekursiv konvertering av wikitekst.

Delvis transklusjon rediger

Ved å bruke markup som "noinclude", "onlyinclude" og "includeonly", er det mulig å transkludere deler av en side snarere enn hele siden. Slike delvise transklusjoner kan også oppnås ved å transkludere fra andre sider slik som undersider. Det er ofte nyttig å transkludere noe informasjon, slik som maldokumentasjon.

Markup rediger

Det finnes tre par tagger som kan brukes i wikitekst for å kontrollere hvordan transklusjon påvirker elementene av en mal eller artikkel. De avgjør hvorvidt tekst vil bli generert, enten i en egen artikkel, som vi kaller "her" eller i en annen artikkel, som vi kaller "der".

  • <noinclude> dette innholdet vil ikke genereres der </noinclude>. Disse taggene har ingen virkning her.
  • <includeonly> dette innholdet vil bare genereres der, og vil ikke genereres her </includeonly> (som f.eks. usynlig lenke gjort synlig ved hjelp av transklusjon).
  • <onlyinclude> dette innholdet vil genereres her og vil genereres der </onlyinclude> men resten av artikkelen vil bli utelatt fra generering der.

Det kan finnes mange slike avsnittselementer. De kan også nestes. Alle mulige genereringer er oppnåelige. For eksempel, for å generere ett eller flere avsnitt av sider der, bruk <onlyinclude>-tagger. For å legge til tekst der, omgi tilføyelsen med <includeonly>-tagger over, inni eller under avsnittet. For å utelate deler av avsnittet, nest <noinclude>-tagger i det.

Som en huskehjelp, sett inn frasen in transclusion mellom de to ordene for å få "noInTransclusionInclude", "includeInTransclusionOnly" og "onlyInTransclusionInclude".

Undersider rediger

Teksten som skal transkluderes kan klippes og limes inn i en underside, og så kan man bruke navnet på undersiden i transklusjonsmaler. Denne tilnærmingen kan bare brukes med undersider fra navnerommene Bruker, Diskusjon eller Wikipedia. For tiden (2012) kan ikke undersider lages fra hovednavnerommet.

Spesialsider rediger

Noen sider på Spesial:Spesialsider kan transkluderes, slik som Spesial:Alle sider, Spesial:Prefiksindeks, Spesial:Nye filer, Spesial:Nye sider, Spesial:Siste endringer og Spesial:Relaterte endringer. Eksempler:

  • {{Spesial:Alle sider/General}} – en liste over sider som begynner med "General"
  • {{Spesial:Prefiksindeks/General}} – en liste over sider med prefikset "General"
  • {{Spesial:Nye filer/4}} – et galleri med de fire siste opplastede filene
  • {{Spesial:Nye sider/5}} – en liste over de fem sist opprettede sidene
  • {{Spesial:Siste endringer/5}} – de fem nyligste endringene
  • {{Spesial:Relaterte endringer/General}} – siste endringer til sidene lenket fra "General"

Bortsett fra Spesial:Relaterte endringer kan skråstreken og ordet/tallet etter skråstreken utelates, og man får da en liste uten et bestemt begynnelsespunkt eller en liste med standard lengde.

Merk: Transklusjon av visse spesialsider (slik som Spesial:Nye sider) kan endre viste tittelen for siden.

Se også rediger

Denne siden er referert til fra listen over Wikipedia-termer.