Inhaltsverzeichnis

für die Liste aller Seiten

Autoren (Grundlagen)

Ein einfaches Inhaltsverzeichnis (TOC) und nummerierte Überschriften sind in PmWiki 2.2.119 enthalten und können mit dem folgenden Eintrag in der config.php-Datei aktiviert werden:

  $PmTOC['Enable'] = 1;

Verwendung

Dieser Zusatz basiert auf dem Rezept Cookbook:AutoTOC, ist aber ein wenig vereinfacht.

  • Das Inhaltsverzeichnis erscheint automatisch, das Einfügen eines Markups ist dafür nicht nötig.
  • Es wird noch vor der ersten Überschrift eingefügt.
  • Voreingestellt ist, dass nur Seiten mit drei oder mehr Überschriften ein Inhaltsverzeichnis erhalten.
  • Sie können das Inhaltsverzeichnis anzeigen oder verbergen lassen, Ihre letzte Wahl wird von Ihrem Browser im lokalen Speicher gespeichert. Diese Wahl wird dann auch auf andere Seiten angewendet. Und die Einstellung wird auch bei einem späteren Besuch des Wikis angewendet, solange nicht zwischenzeitlich der lokale Speicher im Browser gelöscht wurde.
  • Der Zusatz kann die Überschriften in der Seite automatisch nummerieren.
  • Überschriften in verborgenen Abschnitten ("comment" wikistyle, "display:none") werden nicht in das Inhaltsverzeichnis aufgenommen.
  • Überschriften der %block notoc%-Klasse werden nicht in das Inhaltsverzeichnis aufgenommen.
  • Überschriften in (:markup:)-Blöcken werden ignoriert.

Die folgenden Direktiven können den obigen Zusatz beinflussen:

  • (:toc:) : Das Inhaltsverzeichnis wird an dieser Position (anstatt an der voreingestellten) eingefügt, selbst bei weniger als drei möglichen Einträgen.
  • (:notoc:) : Das Inhaltsverzeichnis wird unterdrückt, selbst wenn es drei oder mehr Überschriften gibt oder eine (:toc:)-Direktive. Wenn Sie eine Seite mit nur einer Überschrift haben, könnten Sie (:notoc:) einsetzen, um die Nummerierung zu unterdrücken.

Das Inhaltsverzeichnis nutzt Anker oder IDs der Überschriften der Seite, wenn sie existieren, anderenfalls werden IDs (Hash) auf Grund der Seitenstruktur erzeugt. Folgende Markups erzeugen alle einen Link mit dem Anker in der Form PageUrl#here:

  • !! Überschrift mit einer ID %block id=here%
  • !! Überschrift mit einem Inline-Anker [[#here]], oder
  • !! [[#here]] Überschrift mit einem Inline-Anker
  • [[#here]]
    !! Der Anker geht der Überschrift voraus

Wenn es keine ID oder keinen Anker an der Überschrift gibt, wird der Anker in der Form #toc-1.2.1 erzeugt, wobei 1.2.1 der strukturelle Pfad zu dem Abschnitt mit der Überschrift ist, in diesem Beispiel "Abschnitt 1, Unterabschnitt 2, Unter-Unterabschnitt 1".

Konfiguration

Die folgende Konfiguration (in der local/config.php-Datei) kontrolliert die Voreinstellungen:

  • $PmTOC['Enable'] = 1; # aktiviere TOC und/oder nummerierte Überschriften, Voreinstellung ist 'beides ist deaktiviert'.
  • $PmTOC['MaxLevel'] = 6; # Überschriftenebenen, die in das Inhaltsverzeichnis aufgenommen werden, voreingestellt sind <h1> bis <h6>. Setzen Sie den Wert auf 3, um nur die Überschriftenebenen <h1> bis <h3> einzuschließen.
  • $PmTOC['MinNumber'] = 3; # minimale Anzahl von Überschriften in der Seite, um ein Inhaltsverzeichnis zu erzeugen. Seiten mit wenig Überschriften sind gewöhnlich kurz und brauchen kein Inhaltsverzeichnis.
    • $PmTOC['MinNumber'] = 2; # Seiten mit 2+ Überschriften bekommen ein TOC
    • $PmTOC['MinNumber'] = 9999999; # Das Verzeichnis wird nicht automatisch angelegt, nur die explizite (:toc:)-Direktive wird ein Inhaltsverzeichnis in die Seite einfügen.
  • $PmTOC['NumberedHeadings'] = '1.1.1.1.1.1'; # die Überschriften werden nummeriert (normalerweise deaktiviert).
    • Sie können hier die Ziffern der verschiedenen Überschriftenstufen setzen, nämlich 1 (arabische Ziffern), I or i (römische Ziffern), A or a (Buchstaben A-Z oder a-z). So setzt zum Beispiel die Wahl von
      $PmTOC['NumberedHeadings'] = 'I.1.a';
      die Nummerierung der höchsten Stufe auf römische Ziffern (Großbuchstaben: I, II, ...), die der zweithöchsten Stufe auf arabische Ziffern und die der dritthöchsten Stufe auf Kleinbuchstaben (a, b, ...). Die übrigen Stufen, falls vorhanden, werden mit arabischen Ziffern nummeriert.
    • $PmTOC['MinNumber'] = 9999999; # aktiviere nur die Nummerierung der Überschriften, ohne dass ein Inhaltsverzeichnis angelegt wird. Sie müssten aber dennoch $PmTOC['Enable'] = 1; setzen.
  • $PmTOC['EnableBacklinks'] = 1; # fügt nach den Überschriften "↑"-Pfeile ein, die zurückverweisen auf das Inhaltsverzeichnis (normalerweise deaktiviert).
  • $PmTOC['ParentElement'] = "#wikitext"; # Der Abfrage-Wähler (query selector) des HTML-Elements, in das das Inhaltsverzeichnis eingefügt wird (und das dadurch zu dessen Elternelement wird). Standardmäßig wird das Inhaltsverzeichnis vor der ersten Überschrift eingefügt. Hier können Sie ein anderes Element auswählen. Wenn das Element mit dieser Konfigurationszeile ausgewählt wird, wird das Inhaltsverzeichnis ganz am Anfang dieses Elements eingefügt.

Internationalisierung

Die folgenden Zeichenketten können in der XLPage übersetzt werden, z. B. in Französisch:

  "Contents" => "Sommaire",
  "show"     => "afficher",
  "hide"     => "masquer",

Stile

Wenn Sie das Inhaltsverzeichnis lieber oben rechts angesiedelt sehen möchten, können Sie in die Datei $PubDirUrl/css/local.css das Folgende eintragen:

.PmTOCdiv {
    float: right;
    margin-left: 5px;
  }

Sie können die Schriftgröße des Inhaltsverzeichnisses und die maximale Tabellenhöhe beeinflussen, indem Sie das Folgende in Ihrer $PubDirUrl/css/local.css-Datei eintragen:

.PmTOCdiv { 
    font-size: 15px; 
    max-height: 600px;
  }

Die Standardschriftgröße ist 13px und die Standardtabellenhöhe ist 500px, Sie können Ihre eigenen Werte definieren. Wenn die Tabellenhöhe den Wert von max-height übersteigt, erscheint ein Schiebebalken (overflow:auto).

Siehe auch: Cookbook:AutoTOC. Wenn Sie davor AutoTOC benutzt haben, müssen sie es deaktivieren, wenn Sie $PmTOC aktivieren. für die Liste aller Seiten


Übersetzung von PmWiki.TableOfContents,   Originalseite auf PmWikiDe.TableOfContents   —   Rückverweise

Zuletzt geändert:   PmWikiDe.TableOfContentsam 20.08.2020
 PmWiki.TableOfContentsam 20.08.2020