use strict;
# Add here the pages of the documentation generated by a @page doxygen macro
-my @extra_files = qw(html/index.html html/faq.html html/publis.html html/pages.html html/modules.html html/contrib.html index.php html/GRAS_tut.html);
+my @extra_files = qw(html/index.html html/faq.html html/history.html html/people.html
+ html/publis.html html/publis_core.html html/publis_extern.html html/publis_intra.html
+ html/pages.html html/modules.html html/contrib.html index.php
+ html/GRAS_tut.html);
# GRAS tutorial
map {push @extra_files, "html/GRAS_tut_$_.html"} qw (intro
$current->{'label'}="ROOT";
push @{$top->{'down'}},$current;
+print "Push $current as child of $top\n" if $debug{'parse'};
$current=$top;
-print "Push $current as child of $top\n" if $debug{'parse'};
while (<IN>) {
if (/<ul>/) {
while (<IN>) {
if (/DOXYGEN_NAVBAR_LABEL/) {
if (/DOXYGEN_NAVBAR_LABEL="([^"]*)"/) {#"
+ print "Extra info from $current->{'file'}: label=$1, not $current->{'label'}\n" if $debug{'parse'};
$current->{'label'}=$1;
} else {
die "Malformated DOXYGEN_NAVBAR_LABEL line in $current->{'file'}";
chomp($entry->{'file'});
$entry->{'up'} = $current;
push @{$current->{'down'}},$entry;
+ print "Extra info from $current->{'file'}: New child $entry->{'label'}=$entry->{'file'}\n" if $debug{'parse'};
} else {
die "Malformated DOXYGEN_NAVBAR_CHILD line in $current->{'file'}";
}
close IN;
rename("html/modules.new.html","html/modules.html") unless $debug{'rename'};
+# the publication pages deserves some special handling too
+my %pub_tabs = ("publis.html" =>"Reference publications",
+ "publis_core.html" =>"Other publication about SimGrid",
+ "publis_extern.html"=>"External papers using SimGrid",
+ "publis_intra.html"=>"Internal papers using SimGrid");
+# force ordering
+my @pub_titles = ("publis.html", "publis_core.html", "publis_extern.html", "publis_intra.html");
+sub handle_pub{
+ my $oldname = shift;
+ my $newname = $oldname;
+ $newname =~ s/\.html$/.new.html/;
+
+# print "Handle_pub($oldname -> $newname)\n";
+
+ open IN,"html/$oldname" || die "Cannot open $oldname";
+ open OUT,">html/$newname" || die "Cannot open $newname";
+ my $line;
+ while ($line = <IN>) {
+ last if $line =~ /<h1>/;
+ print OUT $line;
+ }
+
+ print OUT "<div class=\"tabs\">\n <ul>\n";
+ foreach my $page (@pub_titles) {
+ print OUT " <li".($page eq $oldname? " class=\"current\"":"" )."> <a href=\"$page\"><span>".($pub_tabs{$page})."</span></a></li>\n";
+ }
+
+ print OUT " </ul></div>\n";
+ print OUT $line;
+ while ($line = <IN>) {
+ print OUT $line;
+ }
+ close OUT;
+ close IN;
+ rename("html/$newname","html/$oldname") unless $debug{'rename'};
+}
+map {handle_pub($_)} @pub_titles;
+
+
# Operate the recursion
sub handle_page {
my $current=shift;
my $father = $iterator->{'up'};
$tabs[$lvl_it] = "<div class=\"tabs\">\n <ul>\n";
foreach my $bro (@{$father->{'down'}}) {
- $tabs[$lvl_it] .= " <li".($bro==$iterator?" id=\"current\"":"")."> <a href=\"$bro->{'file'}\"><span>$bro->{'label'}</span></a></li>\n";
+ $tabs[$lvl_it] .= " <li".($bro==$iterator?" class=\"current\"":"")."> <a href=\"$bro->{'file'}\"><span>$bro->{'label'}</span></a></li>\n";
}
$tabs[$lvl_it] .= " </ul></div>\n";
$iterator = $father;
# put them in place
open FROM,"html/$current->{'file'}" || die;
my $newname="html/$current->{'file'}";
- $newname =~ s/.html/.new.html/;
+ $newname =~ s/.html/.handlepage.html/;
open TO,">$newname" || die;
+# print "XXX Deal with html/$current->{'file'} -> $newname\n";
while (<FROM>) {
+# print "--Read $_";
# add "current" to the module API granfather page
- s|<li><a href="modules.html"><span>[^<]*</span></a></li>|<li id="current"><a href="modules.html"><span>Modules API</span></a></li>|;
- print TO $_;
- last if m|</ul></div>|;
+ s|<li><a href="modules.html"><span>[^<]*</span></a></li>|<li class="current"><a href="modules.html"><span>Modules API</span></a></li>|;
+# print "++Write $_";
+ print TO "$_";
+ last if (m|</div>|);
}
foreach (@tabs) {
- print TO $_;
+# print "TAB: $_";
+ print TO "$_";
}
while (<FROM>) {
- print TO $_;
+ print TO "$_";
}
close FROM;
close TO;
rename("$newname","html/$current->{'file'}") unless $debug{'rename'};
-# print "mv $newname html/$current->{'file'}\n";
}
# recurse on childs
### Post-processsing common to all pages
###
map {push @allfiles,$_} @extra_files;
+print "All files: ".(join(", ",@allfiles))."\n" if $debug{'parse'};
foreach my $file (@allfiles) {
+ $file =~ s/.html/.handlepage.html/ if $debug{'rename'}; # Take right name if debugging
+
open FROM,"$file" || die;
my $outfile = "$file";
$outfile =~ s/.(html|php)$/.new.$1/;
# Rework the navbar
if (m,<li><a href="(doc/)?index.html"><span>Main\ Page</span></a></li>,) {
- print TO '<li><a href="'.$1.'index.html"><span>Overview</span></a></li>'."\n";
- print TO '<li><a href="'.$1.'faq.html"><span>FAQ</span></a></li>'."\n";
+ print TO ' <li'.($file =~ m,(doc/)?index.html, ? " class='current'" :"").'><a href="'.$1.'index.html"><span>Overview</span></a></li>'."\n";
+ print TO ' <li'.($file =~ m,(doc/)?faq.html, ? " class='current'" :"").'><a href="'.$1.'faq.html"><span>FAQ</span></a></li>'."\n";
next;
}
if (m,<li><a href="(doc/)?annotated.html"><span>Data\ Structures</span></a></li>,) {
- print TO '<li><a href="'.$1.'publis.html"><span>Publications</span></a></li>'."\n";
+ print TO ' <li'.($file =~ m,(doc/)?publis(_[^.]*)?.html, ? " class='current'" :"").'><a href="'.$1.'publis.html"><span>Publications</span></a></li>'."\n";
+ print TO ' <li'.($file =~ m,(doc/)?people.html, ? " class='current'" :"").'><a href="'.$1.'people.html"><span>People</span></a></li>'."\n";
+ print TO ' <li'.($file =~ m,(doc/)?history.html, ? " class='current'" :"").'><a href="'.$1.'history.html"><span>History</span></a></li>'."\n";
next;
}
s|<span>Modules</span>|<span>Modules API</span>|g;
-# s|<li><a href="(doc/)?dirs.html"><span>Directories</span></a></li>||g;
+ s|<span>Related Pages</span>|<span>Site Plan</span>|g;
print TO $_;
}