map: don't create useless </ul><ul> sequences
With the previous logic, same-level items would go down one level and then again up one level closing and re-opening UL tags each time. The resulting redundant lists caused whitespace layout issues in the rendered pages. Adjust the "moving up?" logic to check if the current item base is different from the previous item _base_. Adjust the "going down?" logic by moving it to an earlier phase and checking for (1) parent item not being what it should be and (2) remaining bits; the root is grown unconditionally as long as (2) is verified.master
parent
7fef6fdc38
commit
2d5c2f301c
|
@ -94,8 +94,9 @@ sub preprocess (@) {
|
|||
if defined $common_prefix && length $common_prefix;
|
||||
my $depth = ($item =~ tr/\//\//) + 1;
|
||||
my $baseitem=IkiWiki::dirname($item);
|
||||
while (length $parent && length $baseitem && $baseitem !~ /^\Q$parent\E(\/|$)/) {
|
||||
$parent=IkiWiki::dirname($parent);
|
||||
my $parentbase=IkiWiki::dirname($parent);
|
||||
while (length $parentbase && length $baseitem && $baseitem !~ /^\Q$parentbase\E(\/|$)/) {
|
||||
$parentbase=IkiWiki::dirname($parentbase);
|
||||
last if length $addparent && $baseitem =~ /^\Q$addparent\E(\/|$)/;
|
||||
$addparent="";
|
||||
$indent--;
|
||||
|
@ -113,14 +114,10 @@ sub preprocess (@) {
|
|||
}
|
||||
my @bits=split("/", $item);
|
||||
my $p="";
|
||||
$indent++ unless length $parent;
|
||||
$p.="/".shift(@bits) for 1..$indent;
|
||||
while ($depth > $indent) {
|
||||
$indent++;
|
||||
if ($indent > 1) {
|
||||
$map .= "<ul>\n";
|
||||
}
|
||||
if ($depth > $indent) {
|
||||
$p.="/".shift(@bits);
|
||||
if (@bits && !(length $parent && "/$parent" eq $p)) {
|
||||
$addparent=$p;
|
||||
$addparent=~s/^\///;
|
||||
$map .= "<li>"
|
||||
|
@ -133,6 +130,11 @@ sub preprocess (@) {
|
|||
else {
|
||||
$openli=0;
|
||||
}
|
||||
$indent++;
|
||||
$p.="/".shift(@bits) if @bits;
|
||||
if ($indent > 1) {
|
||||
$map .= "<ul>\n";
|
||||
}
|
||||
}
|
||||
$map .= "</li>\n" if $openli;
|
||||
$map .= "<li>"
|
||||
|
|
Loading…
Reference in New Issue