home · Automad · Bludit · ChatGPT · CMS · GetSimple · GRAV · Handlebars · htaccess · Java · Jira · PHP · Pico · Smarty · Typemill · WonderCMS · WordPress · Yellow ·
FlightCMS Plugin Table of Content für automatischen Kapitel-Index

FlightCMS Plugin Table of Content für automatischen Kapitel-Index

Automatische Inhaltsverzeichnisse sind in elektronischen Dokumentationen zum Standard geworden, in diesem Code ein einfacher Ansatz.

Das TOC Plugin für FlightCMS

Um ein automatisches Inhaltsverzeichnis im Beitrag zu erzeugen, gibt es verschiedene Möglichkeiten. Der nachfolgende Code ist eine sehr einfache Variante für das FlightCMS.

echo '<ul class="toc">';
foreach(explode("

",$content) as $value) { if (preg_match('(<h[1-6].id=)', $value) && preg_match('(</h[1-6]>)', $value)) { $link = explode('"',explode('id="', $value)[1])[0]; $title = strreplace(array('-',''),' ',$link); $kapitel = strip_tags($value); echo '

  • '; echo ''.$kapitel.''; echo '
  • '; } else { if (preg_match('(<h[1-6])', $value) && preg_match('(</h[1-6]>)', $value)) { echo '
  • '; echo strip_tags($value); echo '
  • '; } } } echo ''; Code

    Code-Beschreibung

    Zunächt offensichtlich, das gesamte Codesegment ist mit einem Listen Tag <ul>...</ul> umrahmt, damit eine geschlossene Liste erzeugt werden kann. Im Inneren werden dann Schritt für Schritt die Listenelemente <li>...</li> aus dem Beitragsinhalt $content extrahiert.

    Der zentrale RegEx beginnt mit dem Start-Pattern (<h[1-6].id=) und bedingt das Ende-Pattern (</h[1-6]>), dadurch soll sichergestellt werden, das sich in einer aktuellen Zeile der foreach() ein öffnendes und schließendes Überschriften Tag befindet. Das Tag darf die Ziffern von 1 bis 6 enthalten, während das öffnende Tag noch auf den Passus id= untersucht wird.

    Dafür ist Bedingung, das der Beitragsautor oder der Redakteur eine Überschrift in der Form ## Überschrift ## {#Name-der-ID} verfasst. In diesem Fall wird das Inhaltsverzeichnis mit klickbaren Links erzeugt.

    Der Linkname bzw. ID-Name muss HTML-Konform ohne Leerzeichen und Sonderzeichen abgefasst werden. Ideal sind Bindestriche oder Unterstriche, die durch das Plugin für die Anzeige problemlos in Leerzeichen umgewandelt werden können.

    Ist dies nicht der Fall, wird die verschachtelte if-Klausel aktiv und prüft ebenfalls auf das eingangs beschriebene Pattern, lässt jedoch die Maskierung auf id= weg, da keine ID vom Redakteur vorgesehen ist. Es wird ein Inhaltsverzeichnis ohne Links angezeigt.

    Damit auch noch ein alternatives title=-Attribut erzeugt wird, extrahiert str_replace() den Link-Text des Autors und wandelt Bindestriche und Unterstriche in Leerzeichen um.

    Dieser Leitartikel besitzt keine untergeordneten Beiträge.

    Affiliate

    WordPress 6 - Das umfassende Handbuch. Fast 1.000 Seiten Wissen zu WordPress inkl. Themes, Plug-ins, WooCommerce, SEO und mehr. Ausgabe 2025

    Hinweis: Die Webseite ist Mitglied im Amazon.Partnernet und kann mit Affiliate-Links den Betrieb stützen. Für Sie als Leser ist das natürlich vollkommen kostenlos.

    (c) by CMSWorkbench.de