in build_docs.pl [266:323]
sub build_all {
#===================================
$Opts->{target_repo} = 'git@github.com:elastic/built-docs.git' unless ( $Opts->{target_repo} );
my ( $repos_dir, $temp_dir, $reference_dir ) = init_dirs();
say "Updating repositories";
my $target_repo = init_target_repo( $repos_dir, $temp_dir, $reference_dir );
my $tracker = init_repos(
$repos_dir, $temp_dir, $reference_dir, $target_repo );
my $build_dir = $target_repo->destination->subdir( 'html' );
$build_dir->mkpath;
my $raw_build_dir = $target_repo->destination->subdir( 'raw' );
my $contents = $Conf->{contents}
or die "Missing <contents> configuration section";
my $toc_extra = $Conf->{toc_extra} ? $ConfPath->parent->file( $Conf->{toc_extra} ) : 0;
my $toc = ES::Toc->new( $Conf->{contents_title} || 'Guide', $toc_extra );
my $redirects = $target_repo->destination->file( 'redirects.conf' );
if ( $Opts->{linkcheckonly} ){
say "Skipping documentation builds."
}
else {
say "Building docs";
build_entries(
$raw_build_dir, $build_dir, $temp_dir, $toc, $tracker, @$contents
);
say "Writing main TOC";
$toc->write( $raw_build_dir, $build_dir, $temp_dir, 0 );
build_web_resources( $target_repo->destination );
say "Writing extra HTML redirects";
for ( @{ $Conf->{redirects} } ) {
write_html_redirect( $build_dir->subdir( $_->{prefix} ),
$_->{redirect} );
}
say "Writing nginx redirects";
write_nginx_redirects( $redirects, $build_dir, $temp_dir );
}
if ( $Opts->{skiplinkcheck} ) {
say "Skipped Checking links";
}
else {
say "Checking links";
check_links($build_dir);
}
$tracker->prune_out_of_date;
push_changes( $build_dir, $target_repo, $tracker ) if $Opts->{push};
serve_local_preview( $build_dir, $redirects, 0, 0 ) if $Opts->{open};
$temp_dir->rmtree;
}