Jump to content

Erweiterung:Labeled Section Transclusion

From mediawiki.org
This page is a translated version of the page Extension:Labeled Section Transclusion and the translation is 100% complete.
MediaWiki-Erweiterungen
Labeled Section Transclusion
Freigabestatus: stabil
Einbindung Tag , Parser-Funktion
Beschreibung Erlaubt das Transkludieren markierter Abschnitte eines Texts.
Autor(en) Steve Sanbeg
Kompatibilitätspolitik Snapshots werden zusammen mit MediaWiki veröffentlicht. Der Master ist nicht abwärtskompatibel.
MediaWiki 1.45+
Datenbankänderungen Nein
Lizenz GNU General Public License 2.0 oder neuer
Herunterladen
Übersetze die Labeled Section Transclusion-Erweiterung, wenn sie auf translatewiki.net verfügbar ist
Probleme Offene Aufgaben · Einen Fehler melden

Die Erweiterung Labeled Section Transclusion ermöglicht das teilweise Transkludieren markierter Textabschnitte. Die Funktionalität ähnelt der erweiterten Version des ‎<onlyinclude> Tags mit gewöhnlicher Transklusion, die Abschnitte für das Inkludieren auswählt. Diese Erweiterung ist bei allen Wikimedia-Wikis aktiviert.

Während die normale Transklusion hauptsächlich für die Transklusion großer Teile kleiner Vorlagen bestimmt ist, ist die Abschnittstransklusion für die Einbindung kleiner Teile von großen Seiten bestimmt.

Es gibt jedoch einige Unterschiede. In der nativen Vorlagen-Transklusion sind Abschnitte durch Verhalten gekennzeichnet; Du kannst daher nur einen (möglicherweise nicht zusammenhängenden) Abschnitt aufnehmen oder überspringen.

Hier werden Abschnitte nach Namen gekennzeichnet und das Verhalten wird vom Anrufer ausgewählt, der nach Bedarf Abschnitte einbeziehen oder überspringen kann. Verschiedene Seiten können ausgewählte Abschnitte enthalten oder ausschließen; es kann eine willkürliche Anzahl von Abschnitten geben, die sich auch willkürlich überlappen können.

Die Markierung von Abschnitten nach Namen und nicht nach Verhalten ermöglicht es, die Verknüpfungen zu bearbeiten, um Auszüge aus größeren Texten zu erhalten, da die Erweiterung jetzt Abschnitte berücksichtigen kann, die am Anfang der Seite übersprungen werden, sodass transkludierte Abschnitte angemessen versetzt werden können.

Installation

  • Die Erweiterung herunterladen und die Datei(en) in ein Verzeichnis namens LabeledSectionTransclusion im Ordner extensions/ ablegen.
    Entwickler und Code-Beitragende sollten stattdessen die Erweiterung von Git installieren, mit:
    cd extensions/
    git clone https://gerrit.wikimedia.org/r/mediawiki/extensions/LabeledSectionTransclusion
    
  • Folgenden Code am Ende deiner LocalSettings.php -Datei einfügen:
    wfLoadExtension( 'LabeledSectionTransclusion' );
    
  • Yes Erledigt – Navigiere zu Special:Version in deinem Wiki, um zu überprüfen, ob die Erweiterung erfolgreich installiert wurde.

Es gibt auch ein Helferlein bei Wikisource.org-Wikis im Einsatz, das es ermöglicht, Abschnitte mit einer vereinfachten ## label ##-Syntax zu definieren. Der Code dafür findest du unter Wikisource:MediaWiki:Gadget-Easy_LST.js.

Funktionen

Markierte Abschnitte Transkludieren

Schritt 1: Abschnitte markieren

Markiere Abschnitte mit dem ‎<section> Tag wie folgt:

<section begin="chapter1" />this is chapter 1<section end="chapter1" />

Beachte, dass diese Tags kein HTML/XML sind und daher nicht die normale Syntax verwenden. Aus diesem Grund und weil die Marker begin und end individuell sind, anstatt normaler XML-Open/Close-Tags, werden verschachtelte oder überlappende Abschnitte ermöglicht. So können die Abschnitte ohne Sorge, dass andere Abschnitte beeinträchtigt sind, getaggt werden.


Schritt 2a: Transklusion des Bereichs

Benutze die Parserfunktion #lst, um sie zu transkludieren, d. h. um einen Abschnitt namens chapter1 von einer Seite namens articleX zu transkludieren:

{{#lst:articleX|chapter1}}

Der transkludierende Artikel definiert so den Ort des Abschnitts, sein Verhalten bestimmt die Parser-Funktion.

Schritt 2b: Transklusion einer Seite ohne spezifischen Abschnitt

Um eine Seite zu transkludieren, aber einen bestimmten Abschnitt auszuschließen, verwende die #lstx-Funktion:

{{#lstx:articleX|chapter1}}

Optional kann dem ausgeschlossenen Abschnitt Ersatztext hinzugefügt werden.

{{#lstx:articleX|chapter1|replacement_text}}

Beispiel:

{{#lstx:articleX|chapter1|See chapter 1 in [[articleX]].}}

Der Ersatztext wird in dem Bereich angezeigt, in dem der Abschnitt übersprungen ist (excluded).

Unterbrochene Bereiche

Es ist möglich, mehrere Abschnitte mit demselben Namen zu haben; in diesem Fall wird jeder Abschnitt mit diesem Namen eingeschlossen/ausgeschlossen. Dies ist besonders nützlich, um verschiedene Diskussionen zu markieren.

Abschnittsbereiche

Diese Funktionen verfügen über ein zusätzliches, optionales Argument zur Angabe eines Abschnittsbereichs, z. B. {{#lst:articleX|chapter1|chapter3}}, um alles vom Anfang von Kapitel 1 bis zum Ende von Kapitel 3 einzuschließen. Dies ermöglicht die Verwendung leerer Markierungspaare, um ein Ende des Abschnitts zu markieren, möglicherweise in einer Vorlage. Ein ähnlicher Mechanismus wird derzeit bei der französischen Wikisource verwendet.

Ersetzung

Dies funktioniert auch mit Substitution; es ist sogar möglich, dass ein Artikel einen Abschnitt von sich selbst ersetzt. Ein möglicher Einsatz ist, eine ordentliche Art und Weise zu bieten, Gesprächsseiten zu archivieren: Markiere den zu archivierenden Text mit <section begin=archive />, etc. Dann erstelle eine Archivseite mit dem Text, mit {{subst:#lst:talk_page|archive}}, die archivierte Abschnitte kopiert. Zuletzt ersetzt du den Inhalt von talk_page durch {{subst:#lstx:talk_page|archive}}, um diese Abschnitte zu entfernen.

Es gibt eine optionale Unterstützung für die Transklusion von Textabschnitten, die mit den Standardüberschriften gekennzeichnet sind, d. h. ==this section==. Wenn diese Option installiert ist, erfolgt dies mithilfe der Funktion lsth.

Vor der ersten Überschrift transkludieren

Um die Einführung einer Seite (d. h. den Inhalt vor der ersten Überschrift) zu transkludieren, verwende

{{#lsth:pagename}}

Einen bestimmten Abschnitt transkludieren

Du kannst auch den gesamten Inhalt des sectionX (der alle Unterabschnitte enthält, aber die Überschrift des sectionX selbst ausschließt) transkludieren.

{{#lsth:pagename|sectionX}}

Zu beachten:

  1. Nur das erste Auftreten von sectionX wird transkludiert, wenn es mehr als einen Abschnitt mit dem gleichen Namen gibt.
  2. Stelle sicher, dass die Überschrift von sectionX so eingegeben wird, wie sie im WikiText eingegeben wurde und nicht wie sie dargestellt wird. Wenn zum Beispiel die Überschrift ==List of [[Extension]]== ist, solltest du „List of [[Extension]]“ nutzen und nicht „List of Extension“.
  3. Wenn ein Abschnitt von einer für Übersetzung markierten Seite mit der Übersetzungs-Erweiterung übersetzt wird, transkludiere den Abschnitt aus der jeweiligen Sprachversion der Seite. Z. B. von „Seite/en“ anstelle von „Seite“.
  4. Bei der Zuordnung wird die Groß-/Kleinschreibung nicht berücksichtigt, um zu verhindern, dass Links aufgrund von Änderungen der Groß-/Kleinschreibung nicht mehr funktionieren.

Mehrere Abschnitte transkludieren

Du kannst auch vom ersten Vorkommen von sectionX (mit Ausnahme der Überschrift von sectionX selbst) bis zum nächsten Vorkommen von sectionY transkludieren. Beachte, dass sectionY als Endpunkt fungiert, sodass die Transklusion nicht den Inhalt von sectionY enthält.

{{#lsth:pagename|sectionX|sectionY}}

Hinweise zu übersprungenen Überschriften

Da die traditionelle Transklusion in MediaWiki nicht dazu bestimmt ist, Abschnitte zu transkludieren, berücksichtigt sie keine übersprungenen Überschriften. Wenn eine Vorlage mit mehreren Überschriften transkludiert wird und die erste Überschrift übersprungen, weisen alle Links der Bearbeitungsbereiche auf den falschen Abschnitt der Vorlage hin.

Wenn diese Erweiterung verwendet wird (mit MediaWiki 1.9 oder höher), zählen die Funktionen #lst und #lsth die Überschriften im „übersprungenen” Anfangsteil und versetzen die transkludierten Überschriften entsprechend. Dadurch können diese Links im einfachen Fall auf den richtigen Abschnitt verweisen.

Beachte, dass #lstx übersprungene Überschriften nicht zählt und dass übersprungene Überschriften innerhalb nicht zusammenhängender Abschnitte nicht versetzt werden. Aber es scheint, dass es jetzt behoben wurde (wahrscheinlich, wenn es auf den neuen Preprozessor von MediaWiki übertragen wird). Die überschriebenen Überschriften können mit den richtigen Abschnitten verknüpft werden..

Lokalisierung

Intern benutzen die Parser-Funktionen alle das lst-Präfix, um dem Namen der Erweiterung zu entsprechen. Da dieses Akronym für Nichtentwickler verwirrend sein kann, wurden lesbare englische Varianten eingeführt, die es ermöglichen, die Funktionen von beiden Namen aus zu nennen.

Funktion Englisch Deutsch Hebräisch (RTL) Portugiesisch
#lst #section #Abschnitt
#קטע
#trecho
#lstx #section-x #Abschnitt-x
#בלי קטע
#trecho-x
#lsth #section-h

Außerdem kann das Label jetzt lokalisiert werden; derzeit: Englisch, Deutsch, Hebräisch, Portugiesisch; z.B.:

Englisch
<section begin=x/> ... <section end=x/>
Deutsch
<Abschnitt Anfang=x/> ... <Abschnitt Ende=x/>
Hebräisch (RTL)
<קטע התחלה=א> ... <קטע סוף=א> („Start“ Code rechts und „End“ Code links)
Portugiesisch
<trecho começo=x/> ... <trecho fim=x/>

Jede Lokalisierung ist nur dann aktiviert, wenn die Seite der jeweiligen Inhaltssprache entspricht.

Beschränkungen

  • {{#lsth:pagename|sectionX}} funktioniert nur im ersten Abschnitt, wenn mehrere Abschnitte den Namen „sectionX“ haben. Nur das erste Vorkommen von „sectionX“ wird transkludiert, wenn ein Artikel mehr als einen Abschnitt mit demselben Namen hat.
  • Es ist zwar möglich, diese Erweiterung namensraumübergreifend zu verwenden, Interwiki-Verweise werden jedoch nicht aufgelöst. Es ist zum Beispiel noch nicht möglich, einen Teil einer Wikisource-Seite in eine Remote-MediaWiki-Installation einzubeziehen.
  • Abschnittstags können nicht selbst transkludiert werden, um auf anderen Seiten zu funktionieren. {{#lst:}} and {{#lstx:}} funktioniert nur, wenn Abschnittstags direkt im Wikitext der transkludierten Seite erscheinen. Das bedeutet beispielsweise, dass diese Tags nicht mithilfe von Vorlagenparametern und Parserfunktionen in eine Vorlage eingebettet werden können. Das magische Wort #tag funktioniert nicht mit Abschnittstags.
  • Seit 2014 haben Abschnittstags keine Wirkung mehr, wenn sie innerhalb eines Vorlagenparameters verwendet werden. Wenn Seite A den Text {{B|X}} enthält, kann {{#lst:A|…}} nicht auf X zugreifen.

Beispiele

Siehe auch