Thread Eingerückte hierarchische Liste (HTML) erzeugen (9 answers)
Opened by GwenDragon at 2023-12-21 11:45

haj
 2023-12-21 21:07
#195718 #195718
User since
2015-01-07
531 Artikel
BenutzerIn

user image
Wenn es bei der Anwendung um die aus einer HTML-Seite geparsten Heading-Elemente geht, dann verstehe ich auch das Beispiel: In HTML-Seiten schreiben die Autoren keineswegs ihre Überschriften-Level in einer sinnvollen Abfolge. Und manchmal findet man auch Sachen wie dieses:
Quote
<span class="title">Eingerückte hierarchische Liste (HTML) erzeugen</span>

Das sieht zwar im Browser aus wie eine Uberschrift, ist aber keine.

Da kann man dann auch bei der Erzeugung des Inhaltsverzeichnisses auf eine hierarchisch geschachtelte Liste verzichten und direkt per CSS so einrücken, wie's dem Level entspricht:
Code (perl): (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
use 5.024;
use strict;
use warnings;

my @list_data = (
    { indent => 0, text => "Test 1" },
    { indent => 2, text => "Test 2" },
    { indent => 1, text => "Test 3" }, { indent => 1, text => "Test 4" },
    { indent => 3, text => "Test 5" },
);

my $html = q(<!DOCTYPE html>);

for my $element (@list_data) {
    $html .= qq(<div style="padding-left:$element->{indent}em">$element->{text}</div>)
}

print $html;

Von einer verschachtelten Liste hat man nur dann etwas, wenn man auf der DOM-Struktur weiterarbeitet und zum Beispiel per JavaScript die Einträge unter einem vorgegebenen Level oder Eintrag ausblendet.

View full thread Eingerückte hierarchische Liste (HTML) erzeugen