Hilfe:Seiten einbinden

aus Wikipedia, der freien Enzyklopädie
Zur Navigation springen Zur Suche springen

Diese Hilfeseite beschreibt, wie man den Text einer Seite innerhalb einer anderen erscheinen lässt. Das nennt man auch Transklusion, hier meist aber „Einbindung“.

Zweck[Bearbeiten | Quelltext bearbeiten]

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 einer anderen 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 Hilfe:Weiterleitung zu verwenden.

Syntax[Bearbeiten | Quelltext bearbeiten]

Die Syntax lautet

{{Seitenname}}

Es darf durch Seitenname nicht zu einem Konflikt mit dem Namen einer Variablen, Funktion 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 durch Pipe-Symbole | getrennt noch Parameter angegeben werden:

  • {{Seitenname|Parameterliste}}

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

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

Namensräume[Bearbeiten | Quelltext bearbeiten]

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

Vorlagen[Bearbeiten | Quelltext bearbeiten]

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 gewesen.

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.

Artikel[Bearbeiten | Quelltext bearbeiten]

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).

Benutzer[Bearbeiten | Quelltext bearbeiten]

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 und 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.

Modul[Bearbeiten | Quelltext bearbeiten]

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 Wikipedia: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.

Spezialseiten[Bearbeiten | Quelltext bearbeiten]

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 Variablen 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.

Parameter[Bearbeiten | Quelltext bearbeiten]

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 ist es nicht erwünscht, dass in der resultierenden Seite alle Bestandteile des Quelltextes sichtbar werden.

noinclude, includeonly, onlyinclude[Bearbeiten | Quelltext bearbeiten]

Drei spezielle Tags ermöglichen ein differenziertes Verhalten:

  • Mit <noinclude></noinclude> umschlossene Bereiche werden beim Einbinden in der Zielseite nicht gezeigt, sind aber bei der normalen Darstellung der Quellseite sichtbar.
    • Oft werden auf diese Weise die Kategorien deaktiviert, weil diese nicht bei der Einbindung wirksam sein sollen, sondern nur für die eingebundene Seite gelten.
  • Mit <includeonly></includeonly> umschlossene Blöcke sind in der Einbindung sichtbar; aber nicht bei normaler Seitenanzeige des Quelltextes.
    • Damit 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.
  • Wenn durch <onlyinclude></onlyinclude> eingeschlossene Textsequenzen vorkommen, werden nur diese für die Einbindung benutzt, während das auf die normale Anzeige der Quellseite keinen Einfluss hat.

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

<section> – Abschnitte einbinden[Bearbeiten | Quelltext bearbeiten]

Eine Entwicklung von Ende 2012 ermöglicht, identifizierbare Abschnitte einer Quellseite einzubinden. Die vorstehenden include-Tags gelten gleichermaßen für alle Einbindungen. 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.

  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-Funktionen #lst und #lstx die Einbindung vorgenommen:
    • {{#lst:Quellseite|MarkeX}}
      • Aller Text im von MarkeX umschlossenen Bereich.
    • {{#lstx:Quellseite|MarkeX}}
      • Aller 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]

Neben der Möglichkeit, selbst spezifizierte Bereichsgrenzen zu verwenden, gibt es auch mittels {{#lsth:}} die Möglichkeit, auf die durch Überschriften getrennten Abschnitte vollständig zuzugreifen:

  • {{#lsth:pagename}} – Einleitungsabschnitt
  • {{#lsth:pagename|sectionX}} – Erster Abschnitt mit dieser Überschrift, jedoch ohne die Überschriftenzeile
  • {{#lsth:pagename|sectionX|sectionY|sectionZ}}

Mehr: mw:Extension:Labeled Section Transclusion (englisch)

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.

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.

Begrenzungen[Bearbeiten | Quelltext bearbeiten]

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.

Cache[Bearbeiten | Quelltext bearbeiten]

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.

Weitere Informationen[Bearbeiten | Quelltext bearbeiten]

Anmerkungen[Bearbeiten | Quelltext bearbeiten]

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