From: Dobrica Pavlinusic Date: Wed, 13 May 2009 20:16:30 +0000 (+0000) Subject: added table of contents X-Git-Url: http://git.rot13.org/?p=sysadmin-cookbook-html;a=commitdiff_plain;h=bace34e122e1331e987af50ddad063ce136416a5;ds=sidebyside added table of contents git-svn-id: file:///home/dpavlin/private/svn/sysadmin-cookbook-html@2 3e18072f-9615-4e06-9d3a-648eafba3f8d --- diff --git a/bin/html.pl b/bin/html.pl index 0436565..cd9485d 100755 --- a/bin/html.pl +++ b/bin/html.pl @@ -7,8 +7,7 @@ my $recepies = '/srv/sysadmin-cookbook/recepies'; use File::Find; use File::Slurp; - -my $in_ul = 0; +use Data::Dump qw/dump/; my @html; sub html { push @html, @_ } @@ -21,7 +20,10 @@ sub file { my $content = read_file $path; $content =~ s{[\n\r\s]+$}{}s; $content =~ s/($escape_re)/$escape{$1}/gs; - return $content; + return '' + . "
" . `svn log $path` . "
" + . "
$content
" + ; } my @names; @@ -29,24 +31,42 @@ find({ follow => 0, no_chdir => 1, wanted => sub { push @names, $_ unless m{/\.}; }}, $recepies ); +my $last_level = 0; +my $toc_html = ''; +sub header { + my ($level, $content) = @_; + html qq||; + html qq|$content|; + + if ( $last_level > $level ) { + $toc_html .= ""; + } elsif ( $last_level < $level ) { + $toc_html .= "" if $in_ul++; - html "

$name

" if $in_ul; +$toc_html .= "" foreach ( 1 .. $last_level ); print qq| @@ -55,12 +75,17 @@ print qq| --> | + . "
$toc_html
" , join("\n", @html) , "" ;