in build_docs.pl [546:588]
sub build_entries {
#===================================
my ( $raw_build, $build, $temp_dir, $toc, $tracker, @entries ) = @_;
while ( my $entry = shift @entries ) {
my $title = $entry->{title}
or die "Missing title for entry: " . Dumper($entry);
if ( my $sections = $entry->{sections} ) {
my $base_dir = $entry->{base_dir} || '';
my $raw_sub_build = $raw_build->subdir($base_dir);
my $sub_build = $build->subdir($base_dir);
my $toc_extra = $entry->{toc_extra} ? $ConfPath->parent->file( $entry->{toc_extra} ) : 0;
my $section_toc = build_entries(
$raw_sub_build, $sub_build, $temp_dir,
ES::Toc->new( $title, $toc_extra, $entry->{lang} ),
$tracker, @$sections
);
if ($base_dir) {
$section_toc->write( $raw_sub_build, $sub_build, $temp_dir );
$toc->add_entry(
{ title => $title,
url => $base_dir . '/index.html'
}
);
}
else {
$toc->add_entry($section_toc);
}
next;
}
my $book = ES::Book->new(
dir => $build,
raw_dir => $raw_build,
temp_dir => $temp_dir,
%$entry
);
$toc->add_entry( $book->build( $Opts->{rebuild}, $ConfPath ) );
$tracker->allowed_book( $book );
}
return $toc;
}