diff options
author | Simon McVittie <smcv@debian.org> | 2012-08-03 12:48:46 +0100 |
---|---|---|
committer | Simon McVittie <smcv@debian.org> | 2013-02-24 13:10:24 +0000 |
commit | 3f27a9733660c811c6b8d640ddadbd811979e24c (patch) | |
tree | fcbec073fef9f941239f337f28febac1114ee14c | |
parent | ce1c7a3eab5fb2a0bcf639171a4f2dd2ef981963 (diff) | |
download | ikiwiki-3f27a9733660c811c6b8d640ddadbd811979e24c.tar ikiwiki-3f27a9733660c811c6b8d640ddadbd811979e24c.tar.gz |
Optionally add indentation to maps
This makes them easier to debug by showing the structure. Sample output
when $spaces is set to 4 spaces:
<div class='map'>
<ul>
<li>
<a href="../alpha" class="mapparent">alpha</a>
<ul>
<li>
<a href="../alpha/1" class="mapitem">1</a>
</li>
</ul>
</li>
<li>
<a href="../beta" class="mapitem">beta</a>
</li>
</ul>
</div>
-rw-r--r-- | IkiWiki/Plugin/map.pm | 32 |
1 files changed, 19 insertions, 13 deletions
diff --git a/IkiWiki/Plugin/map.pm b/IkiWiki/Plugin/map.pm index ce3ac1d24..6567331fa 100644 --- a/IkiWiki/Plugin/map.pm +++ b/IkiWiki/Plugin/map.pm @@ -72,6 +72,9 @@ sub preprocess (@) { $common_prefix=IkiWiki::dirname($common_prefix); } + # Set this to 1 or more spaces to pretty-print maps for debugging + my $spaces = ""; + # Create the map. my $parent=""; my $indent=0; @@ -98,18 +101,18 @@ sub preprocess (@) { $parent=IkiWiki::dirname($parent); last if length $addparent && $baseitem =~ /^\Q$addparent\E(\/|$)/; $addparent=""; - $indent--; - $map .= "</li>\n"; - if ($indent > 0) { - $map .= "</ul>\n"; + $map .= ($spaces x $indent) . "</li>\n"; + if ($indent > 1) { + $map .= ($spaces x $indent) . "</ul>\n"; } + $indent--; } while ($depth < $indent) { - $indent--; - $map .= "</li>\n"; - if ($indent > 0) { - $map .= "</ul>\n"; + $map .= ($spaces x $indent) . "</li>\n"; + if ($indent > 1) { + $map .= ($spaces x $indent) . "</ul>\n"; } + $indent--; } my @bits=split("/", $item); my $p=""; @@ -117,13 +120,14 @@ sub preprocess (@) { while ($depth > $indent) { $indent++; if ($indent > 1) { - $map .= "<ul>\n"; + $map .= ($spaces x $indent) . "<ul>\n"; } if ($depth > $indent) { $p.="/".shift(@bits); $addparent=$p; $addparent=~s/^\///; - $map .= "<li>" + $map .= ($spaces x $indent) . "<li>\n"; + $map .= ($spaces x $indent) .htmllink($params{page}, $params{destpage}, "/".$common_prefix.$p, class => "mapparent", noimageinline => 1) @@ -134,8 +138,9 @@ sub preprocess (@) { $openli=0; } } - $map .= "</li>\n" if $openli; - $map .= "<li>" + $map .= ($spaces x $indent) . "</li>\n" if $openli; + $map .= ($spaces x $indent) . "<li>\n"; + $map .= ($spaces x $indent) .htmllink($params{page}, $params{destpage}, "/".$common_prefix."/".$item, @linktext, @@ -145,8 +150,9 @@ sub preprocess (@) { $parent=$item; } while ($indent > 0) { + $map .= ($spaces x $indent) . "</li>\n"; $indent--; - $map .= "</li>\n</ul>\n"; + $map .= ($spaces x $indent) . "</ul>\n"; } $map .= "</div>\n"; return $map; |