Hilfe:Seiten einbinden

aus Wikipedia, der freien Enzyklopädie
(Weitergeleitet von Hilfe:Transklusion)
Zur Navigation springen Zur Suche springen

Diese Hilfeseite beschreibt, wie Text aus einer Seite innerhalb einer anderen erscheinen kann. Diese Art der Übernahme von einem elektronischen Dokument oder Teilen davon in ein anderes wird auch als Transklusion bezeichnet, in der deutschsprachigen Wikipedia meist als Einbindung.

In erster Linie werden kleinere Textbausteine (Vorlagen) in andere Seiten eingebunden, um dieses Textstück zentral warten zu können. Dabei können immer auch Parameter angegeben werden, die das Ergebnis einheitlich und teilweise sehr komplex abwandeln, während der Parameter ein einfacher Schalter sein kann.

Die vollständige Einbindung einer ganzen Seite in eine andere Seite, jedoch nur diese, ist absolut unerwünscht.

  • Grund: Die Versionsgeschichte des wirklichen Textes ist auf der vorgetäuschten Seite nicht mehr nachvollziehbar, die Autoren bleiben im Dunkeln.
  • Der tatsächliche Name der Seite wird verschleiert.
  • Hier ist eine Weiterleitung zu verwenden.

Die Syntax lautet

{{Seitenname}}

Es darf durch Seitenname nicht zu einem Konflikt mit dem Namen einer Parserfunktion oder dergleichen kommen.

Wirkung: An genau dieser Stelle wird die Textsequenz eingefügt, die sich durch Auswertung der eingebundenen Seite unter den momentanen Bedingungen ergibt.

Optional können Parameter angegeben werden, die von Seitenname durch Pipe-Symbole | getrennt werden:

  • {{Seitenname|Parameterliste}}

Außerdem gibt es zwei spezielle Parser-Funktionen; siehe unten:

  • {{#lst:SeiteX|sectionY}}
  • {{#lstx:SeiteX|sectionZ}}

Grundsätzlich kann jede reguläre (statische) Seite (des eigenen Wiki) in eine andere eingebunden werden. Zu den verschiedenen Namensräumen gibt es Besonderheiten.

Die bei weitem überwiegende Menge an eingebundenen Seiten entstammt dem Vorlagen-Namensraum. Die Seiten in diesem Namensraum sind von vornherein dazu gedacht, irgendwo eingebunden zu werden.

Wenn beim Namen der eingebundenen Seite kein Namensraum angegeben wird, dann erwartet die Software diese Seite im Vorlagen-Namensraum.

Technisch könnte ein Namensraum-Präfix Vorlage: zwar vorangestellt werden; das verwirrt jedoch nur, stört bei Suchvorgängen und soll deshalb unterbleiben. In den sehr frühen Jahren der Wiki-Software war das einmal erforderlich.

Innerhalb der Vorlagenprogrammierung selbst ist es üblich, in die für andere Seiten bestimmte Vorlagenseite eine Unterseite namens /Doku einzubinden. Diese Unterseite erscheint jedoch nicht in anderen Seiten. Das soll einheitlich nur mittels der Vorlage:Dokumentation erfolgen. Näheres siehe Hilfe:Vorlagendokumentation #Dokumentation auf Unterseite.

In der Regel ist es unerwünscht, Seiten aus dem Artikel-Namensraum in andere einzubinden.

Es gibt einige Ausnahmefälle, bei denen man Artikel im Rahmen einer übergeordneten Systematik dafür vorsieht, in anderen Artikeln eingebunden zu werden. Der bekannteste und häufigste Fall ist die Einbindung von Begriffsklärungsseiten zu Vorname Familienname in eine übergeordnete Seite zu Familienname.

Beispiel:

  • Petra Müller ist die Seite, die eingebunden wird.
  • In der Seite Müller (Familienname) erscheint der Inhalt dieser Seite. Die Syntax unter „P“ lautet dort:
    • {{:Petra Müller}}
  • Diese Methode hat den Vorteil, dass die Angaben zu den Petra Müller nur an einer Stelle aktuell gehalten werden müssen.

Die eingebundene Seite wird meist auf bestimmte Bereiche eingegrenzt.

Auch hier muss der Namensraum vorangestellt werden; fehlende Angaben werden als Vorlage: interpretiert. Der Name des Artikel-Namensraums ist (leer) – demzufolge muss der Seitenname mit einem vorangestellten Doppelpunkt beginnen.

Wenn außer im allgemein bekannten Fall der Familiennamen die Einbindung von Artikeln beabsichtigt ist, sollte man im Quelltext der eingebundenen Seite einen versteckten Kommentar anbringen. Darin soll auf die einbindende Seite hingewiesen sowie der Zweck erklärt werden (welche Inhalte in der Einbindung erwünscht sind oder gerade nicht).

Vor dem Einbinden fremder Benutzerseiten sollte die Zustimmung dieses Benutzers eingeholt werden; es sei denn, die Seite ist ihrer Art nach (Linksammlung, Hilfestellung, Vorlagen-ähnlich) von vornherein dafür vorgesehen, an anderen Stellen verwendet zu werden, oder wird gar dazu angeboten.

Datei, Kategorie

[Bearbeiten | Quelltext bearbeiten]

Es wird die Beschreibung der Kategorie oder Datei eingebunden; nicht aber die Liste aller momentanen Mitglieder der Kategorie oder das Bild selbst. Zur Anzeige von Bildern und anderen Dateien im Artikel siehe Hilfe:Bilder, zur Verwendung von Kategorien siehe Hilfe:Kategorien.

  • Bei Dateibeschreibungsseiten muss daran gedacht werden, dass diese häufig nur im Commons-Projekt hinterlegt sind. Die dann hier lokal sichtbaren virtuellen Dateibeschreibungsseiten lassen sich nicht einbinden.

Es wird der Lua-Quelltext angezeigt.

Der Inhalt eines ganzen Moduls kann farbig dargestellt werden mit:

{{#tag:syntaxhighlight | {{Modul:Hello}} | lang=lua}}

Neben der Einbindung des Quelltextes eines Moduls zählt auch die Verwendung der Funktionen #invoke sowie require() und mw.loadData() als Einbindung im weiteren Sinn.

Sonstige Projektseiten

[Bearbeiten | Quelltext bearbeiten]

Mit Seiten auf Wikipedia: oder Hilfe: und Portal: werden Einbindungen gelegentlich benutzt.

Das ist insbesondere dann sinnvoll, wenn die eingebundenen Seiten nicht für den allgemeinen Gebrauch gedacht und geeignet sind, sondern nur auf einer einzelnen oder wenigen bestimmten Seiten verwendet werden. Oft werden sie dann als Unterseite der einbindenden Seite angelegt, wodurch die Zuordnung offensichtlich ist.

Die Technik wird öfters verwendet, um Einleitungsabschnitte gesondert abzulegen, meist unter dem Namen /Intro als Unterseite.
Das hat folgende Vorteile:

  • Der Quelltext der Diskussion wird übersichtlicher.
  • Die Datenbank wird etwas entlastet vom tausendfach wiederkehrenden Speichern statischer Texte.
  • Es werden nicht aus Versehen einzelne Zeilen aus der Einführung durch Diskutanten gelöscht.
  • Bei gefährdeten Seiten kann die Intro teil- oder vollgeschützt werden.

Zu beachten ist:

  • Eine Archivierung muss auf der eigentlichen Seite konfiguriert sein, da die Bots nur den Quelltext derselben Seite analysieren, von der aus dann auch Abschnitte archiviert werden.
  • Auf der Seite /Intro müssen Kategorien, Schalter und Shortcuts mit includeonly unwirksam gemacht werden, weil sie nicht in der Intro-Seite, sondern nur auf der eigentlichen Seite greifen dürfen.

Die Einbindung von Spezialseiten ist nur eingeschränkt möglich. Teilweise hängt es vom aktuellen Inhalt ab (ggf. ohne Treffer kein sinnvoll darstellbares Ergebnis), teilweise geht es überhaupt nicht. Grund ist deren dynamische Generierung.

Diejenigen Spezialseiten, bei denen eine Einbindung möglich ist, sind in der Liste aller Spezialseiten markiert.

Weiterhin ist es auch hier möglich, die URL-Parameter als „Vorlagenparameter“ anzugeben. So erzeugt

{{Spezial:Präfixindex/Hilfe:Seite|hideredirects=1}}

die nachstehende Ausgabe:

Relative Seiten

[Bearbeiten | Quelltext bearbeiten]

Bei Verlinkungen ist der Bezug auf Unter- und Schwesterseiten möglich:

  • [[/Unterseite|Titel für Unterseite]]
  • [[../|Titel für Oberseite]]
  • [[../Schwesterseite|Titel für Schwesterseite]]

Bei deren Einbindung geht das im Prinzip auch; jedoch muss in einigen Fällen mittels der Funktion #rel2abs der Seitenbezug hergestellt werden:

  • {{/Unterseite}}
  • {{{{#rel2abs:..}}#}}
  • {{{{#rel2abs:..}}/Schwesterseite}}

Der Parser-Funktion #rel2abs können nur Punkte und Schrägstriche als Parameter übergeben werden; dies muss mit einem Punkt beginnen und enden.

Vorsicht: Bei Nutzung in einer einbindenden Seite zählt die momentane äußerste (angezeigte) Seite als Bezug für den relativen Pfad. Die Seite . ist die Seite, die dem Leser angezeigt wird und in der URL steht. Die Parserfunktionen beziehen sich ebenfalls auf die oberste (angezeigte) Seite, die in der URL benannt ist, und nicht auf die eingebundene Seite.

Wenn zu erwarten ist, dass die einbindende Seite durch eine andere Seite eingebunden wird, sollte man deshalb vollständige Pfade verwenden.

Grundsätzlich kann jede Seite mit Parametern eingebunden werden. Das ist aber nur bei Vorlagen (Quellseite im Vorlagen-Namensraum) üblich; ansonsten höchstens bei speziellen Unterseiten bestimmter Projektseiten.

  • {{Seitenname|Parameterliste}}

Zu Einzelheiten siehe Vorlagen.

Bereiche der Quellseite eingrenzen

[Bearbeiten | Quelltext bearbeiten]

Häufig soll in der resultierenden Seite (Zielseite) nicht alles wirken, was in der Quellseite enthalten ist.

noinclude, includeonly, onlyinclude

[Bearbeiten | Quelltext bearbeiten]

Wikisyntax: <tag>

<noinclude>

Wikisyntax: <tag>

<includeonly>

Wikisyntax: <tag>

<onlyinclude>

Mit den folgenden drei Tags kann das Verhalten gesteuert werden:

<noinclude></noinclude>
Damit umschlossene Bereiche werden beim Einbinden in der Zielseite nicht berücksichtigt, sind aber bei der normalen Darstellung der Quellseite wirksam.
So kann zum Beispiel die Quellseite kategorisiert werden, die Zielseite wird aber nicht kategorisiert.
<includeonly></includeonly>
Damit umschlossene Bereiche sind in der Einbindung wirksam; aber nicht bei der normalen Anzeige der Quellseite.
So kann zum Beispiel die einbindende Seite kategorisiert werden, die Quellseite kommt jedoch nicht in die Kategorie.
Dadurch werden in Vorlagen Darstellungen der Vorlagenseite selbst ausgeschlossen, die nur bei Einbindung mittels Parametern sinnvoll sind, ansonsten aber Fehlermeldungen und Syntaxbruchstücke zeigen würden.
<onlyinclude></onlyinclude>
In der Quellseite wird alles wirksam.
In die einbindende Seite wird nur der eingeschlossene Wikitext übernommen. Alle anderen Bereiche werden für die Einbindung ignoriert.
Es ist der sicherste Weg, genau den beabsichtigten Teil einer Vorlagenprogrammierung einzubinden, nicht aber irrtümlich noch Leerzeichen oder gar Zeilenumbrüche anzuhängen.
Auf diese Weise werden Vorlagen dokumentiert.
Üblich ist das auch bei Artikeln; etwa bei Personennamen-(BKS) in den zugehörigen Familiennamen: Der zentrale Inhalt von Artikel Hans Meier soll in den Zielartikel eingebunden werden, hier Meier (Familienname).
Es können auch mehrere nicht-verschachtelte <onlyinclude>-Blöcke in einer Quellseite stehen.

Mehr dazu unter Hilfe:Vorlagen #Bedingtes Einbinden von Quelltextblöcken.

  • Die <> müssen unmittelbar kodiert in demselben Seitenquelltext stehen, in dem sie wirksam werden sollen; als Resultat von Vorlageneinbindungen sind sie wirkungslos, auch mit {{#tag:}}.

<section> – Abschnitte einbinden

[Bearbeiten | Quelltext bearbeiten]

Wikisyntax: <tag>

<section>

Eine Entwicklung von 2012 ermöglicht, identifizierbare Abschnitte einer Quellseite einzubinden. Die vorstehenden include-Tags gelten gleichermaßen für alle Einbindungen.

<section /> – beliebige Bereiche

Wenn unterschiedliche Zielseiten nur bestimmte unterschiedliche Abschnitte benutzen sollen oder ein und dieselbe Quellseite auf der Zielseite mehrfach mit verschiedenen Sequenzen vorkommen soll, können Abschnitte adressiert werden.

Wikisyntax: {{:}}

{{#lst:}}

Pflicht: 1 2

Wikisyntax: {{:}}

{{#lstx:}}

Pflicht: 1 2

  1. In der Quellseite sind mit paarweisen Markierungen Bereiche zu definieren:
    • <section begin="MarkeX" />Textinhalt für Abschnitt X<section end="MarkeX" />
  2. In der einbindenden Seite wird mittels der Parser-Funktion #lst oder umgekehrt #lstx die Einbindung vorgenommen:
    • {{#lst:Quellseite|MarkeX}}
    0aller Text im von MarkeX umschlossenen Bereich
    • {{#lstx:Quellseite|MarkeX}}
    0aller Text außer dem durch MarkeX definierten

Für „Quellseite“ ist der Name der Quellseite (z. B. Artikelname, Lemma) einzusetzen, für „MarkeX“ ist ein sinnvoller Name zu wählen bzw. einzusetzen. Auch die {{#tag}}-Syntax wird für <section> unterstützt.

Den Mit-Autoren ist durch geeignete versteckte Kommentare oder eine Dokumentationsseite zu verdeutlichen, wie das funktionieren soll und welche Inhalte im Abschnitt erwartet werden.

Die Bereiche der <section /> werden ignoriert, wenn dieser Bereich der Seite ausgeschlossen ist: Falls <onlyinclude> vorhanden ist, müssen die <section /> auch in deren Bereich liegen; innerhalb von <noinclude> werden sie ebenfalls ignoriert.

Anders als bei der normalen Seiteneinbindung können keine Parameter übergeben werden.

Es fällt auf, dass nicht die gewohnte Tag-Abfolge <section id="MarkeX">Textinhalt</section> verwendet wird. Grund ist, dass hierbei keine überlappenden Bereiche möglich wären. Bei der normalen Syntax mit einem end-Tag </section> müsste ein anderer Bereich vollständig im Inneren eines anderen verschachtelt sein, oder diesen komplett umschließen.

Rätselhaft bleibt, warum man mit section einen Tag-Namen einführte, den es bereits in HTML5 gab.[1]

Hinweis für Vorlagenprogrammierer:
Die <section> müssen in demselben Seitenquelltext stehen, in dem sie wirksam werden sollen; als Resultat von Vorlageneinbindungen sind sie wirkungslos, auch mit {{#tag:}}. Dies gilt übrigens auch für alle onlyinclude includeonly noinclude – der <section>-Bereich darf nicht von Einbindungen ausgeschlossen sein.

Einbindung des Abschnittsinhalts unterhalb einer Überschrift

Wikisyntax: {{:}}

{{#lsth:}}
  • Pflicht: 1
  • Optional: 2 …

Neben der Möglichkeit, selbst spezifizierte Bereichsgrenzen zu verwenden, lassen sich auch mit der Parser-Funktion {{#lsth:}} (list headline) Abschnittsinhalte aus Seiten einbinden:

  • {{#lsth: Quellseite}}
    0bindet nur den Text aus dem Einleitungsabschnitt einer Seite ein (also bis zur ersten Überschrift)
  • {{#lsth: Quellseite |Name der Überschrift}}
    0erster Abschnitt mit dieser Überschrift, jedoch ohne die Überschriftszeile
  • {{#lsth: Quellseite |Überschrift1 |Überschrift2 |Überschrift3}}
    0mehrere Abschnittsinhalte

Die Abschnittsüberschriften müssen in Wikitext-Syntax == Titel == (oder tieferen Ebenen) explizit angegeben werden, also nicht in von dieser eingebundenen Seiten, nicht über Vorlagen generiert und nicht mittels <h2> usw. in HTML-Syntax.

  • Wenn die Seite existiert, die Abschnittsüberschrift jedoch nicht, dann wird schlicht nichts gezeigt.

Sonstiges

Sichtungsnamensräume

[Bearbeiten | Quelltext bearbeiten]

In den Namensräumen Artikel, Datei, Vorlage, Kategorie und Module sind Veränderungen an den Inhalten von Sichtungen abhängig, damit sie als verlässlich gelten.

Wenn in eine Seite aus einem solchen „Sichtungsnamensraum“ eine Seite aus einem Namensraum eingebunden ist, der nicht als Sichtungsnamensraum konfiguriert ist, und diese letztere wird verändert, dann ist auch die einbindende Seite nicht mehr gesichtet. Damit soll verhindert werden, dass unbemerkt unzuverlässige Inhalte auf dem Umweg über Seiten verändert werden, die nicht überwacht werden.

Das bedeutet, dass Veränderungen der eingebundenen Seite durch noch nicht sehr lange angemeldete Benutzer bestätigt werden müssen. Das wird auf der einbindenden Seite mit einem Sichtungshinweis (Kasten) signalisiert.

Eigenes Wiki-Projekt
Es können immer nur aus dem eigenen Wiki Seiten eingefügt werden; es ist nicht möglich, mit einem Interwiki-Link auf andere Projekte zuzugreifen.
Schachtelungstiefe
Es können maximal 40 Seiten ineinander verschachtelt werden; bei dieser Berechnung zählen auch umschließende Funktionen.
Seitengröße
Es gibt bestimmte Größenbeschränkungen für eine entstehende Gesamt-Seite und den Entstehungsprozess.
Selbstreferenz
Keine Seite kann sich direkt oder indirekt selbst einbinden.
Kategorie:Wikipedia:Seite mit Vorlagenschleife listet entsprechende Fehlkonstruktionen auf.

Siehe auch Hilfe:Vorlagenbeschränkungen zu Einzelheiten.

Jede reguläre Seite (ausgenommen die spontan und dynamisch zusammengestellten Spezialseiten) wird in ihrem Inhaltsbereich als HTML-Code vorbereitet und dieser Schnipsel in einem Seiten-Cache auf dem Server gespeichert. Bei Angabe von Parametern gilt dies trotz gleicher Seite im Regelfall als unterschiedliche Einbindung. Der sonstige Zustand wird bis auf wenige ausgesuchte Variablen für Datum/Zeit sowie Zählerstände im Moment der Auswertung eingefroren. Mit {{int:}} eingebettete Systemnachrichten erscheinen gemäß der aktuellen Spracheinstellung der Leser; dafür wird im Cache ein Platzhalter eingefügt.

Wenn jemand die Seite lesen möchte, wird die Textsequenz dieses Inhaltsbereichs mit dem festen HTML-Code des Wiki-Portals (der Skin) zusammengeführt und dem Leser gezeigt. Genauso wird dieselbe Textsequenz eingefügt, wenn die Seite irgendwo eingebunden ist.

Wenn sich eine Seite verändert, werden bei allen anderen Seiten, die diese eingebunden haben, die vorbereiteten Cache-Schnipsel ungültig, weil sich deren Bestandteile verändert haben könnten. Das kann insbesondere bei häufig eingebundenen Vorlagen dazu führen, dass es eine Weile dauert, bis für Zehntausende von einbindenden Seiten die Textsequenzen im Cache neu ermittelt wurden.

Mit dem Purge-Befehl oder einem Null-Edit kann derselbe Effekt wie durch eine Veränderung der eingebundenen Seite erreicht werden.

  1. Bei <source> war es umgekehrt: Das Wiki-Tag existierte vor der Definition in HTML5.