diff --git a/bin/dev_scripts/PODtoHTML.pm b/bin/dev_scripts/PODtoHTML.pm index f71a22a5bc..6a7925a35b 100644 --- a/bin/dev_scripts/PODtoHTML.pm +++ b/bin/dev_scripts/PODtoHTML.pm @@ -31,11 +31,21 @@ use POSIX qw(strftime); use WeBWorK::Utils::PODParser; our @sections = ( - bin => 'Scripts', - conf => 'Config Files', doc => 'Documentation', + bin => 'Scripts', + macros => 'Macros', lib => 'Libraries', - macros => 'Macros' +); +our %macro_names = ( + answers => 'Answers', + contexts => 'Contexts', + core => 'Core', + deprecated => 'Deprecated', + graph => 'Graph', + math => 'Math', + misc => 'Miscellaneous', + parsers => 'Parsers', + ui => 'User Interface' ); sub new { @@ -43,21 +53,16 @@ sub new { my $class = ref $invocant || $invocant; my @section_list = ref($o{sections}) eq 'ARRAY' ? @{ $o{sections} } : @sections; - my @macros_list = ref($o{macros}) eq 'ARRAY' ? @{ $o{macros} } : (); my $section_hash = {@section_list}; - my $macros_hash = {@macros_list}; my $section_order = [ map { $section_list[ 2 * $_ ] } 0 .. $#section_list / 2 ]; - my $macros_order = @macros_list ? [ map { $macros_list[ 2 * $_ ] } 0 .. $#macros_list / 2 ] : []; delete $o{sections}; - delete $o{macros}; my $self = { %o, idx => {}, section_hash => $section_hash, section_order => $section_order, - macros_hash => $macros_hash, - macros_order => $macros_order, + macros_hash => {}, }; return bless $self, $class; } @@ -140,12 +145,7 @@ sub update_index { if ($subdir eq 'macros') { $idx->{macros} = []; if ($pod_name =~ m!^(.+)/(.+)$!) { - my $macros = $self->{macros_hash}; - if ($macros->{$1}) { - push @{ $idx->{$1} }, [ $html_rel_path, $2 ]; - } else { - warn "no macro for '$pod_name'\n"; - } + push @{ $self->{macros_hash}{$1} }, [ $html_rel_path, $2 ]; } else { push @{ $idx->{doc} }, [ $html_rel_path, $pod_name ]; } @@ -171,7 +171,8 @@ sub write_index { sections => $self->{section_hash}, section_order => $self->{section_order}, macros => $self->{macros_hash}, - macros_order => $self->{macros_order}, + macros_order => [ sort keys %{ $self->{macros_hash} } ], + macro_names => \%macro_names, date => strftime('%a %b %e %H:%M:%S %Z %Y', localtime) } ); diff --git a/bin/dev_scripts/generate-ww-pg-pod.pl b/bin/dev_scripts/generate-ww-pg-pod.pl index b416721432..9024801fb5 100755 --- a/bin/dev_scripts/generate-ww-pg-pod.pl +++ b/bin/dev_scripts/generate-ww-pg-pod.pl @@ -96,39 +96,18 @@ sub process_dir { my $source_dir = shift; return unless $source_dir =~ /\/webwork2$/ || $source_dir =~ /\/pg$/; - my $is_pg = $source_dir =~ /\/pg$/; my $dest_dir = $source_dir; - $dest_dir =~ s/^$webwork_root/$output_dir\/webwork2/ unless $is_pg; - $dest_dir =~ s/^$pg_root/$output_dir\/pg/ if $is_pg; + $dest_dir =~ s/^$webwork_root/$output_dir\/webwork2/ if ($source_dir =~ /\/webwork2$/); + $dest_dir =~ s/^$pg_root/$output_dir\/pg/ if ($source_dir =~ /\/pg$/); remove_tree($dest_dir); make_path($dest_dir); - my $sections = - $is_pg - ? [ doc => 'Documentation', bin => 'Scripts', macros => 'Macros', lib => 'Libraries' ] - : [ bin => 'Scripts', doc => 'Documentation', lib => 'Libraries' ]; - my $macros = $is_pg - ? [ - core => 'Core', - contexts => 'Contexts', - parsers => 'Parsers', - answers => 'Answers', - graph => 'Graph', - math => 'Math', - ui => 'User Interface', - misc => 'Miscellaneous', - deprecated => 'Deprecated' - ] - : []; - my $htmldocs = PODtoHTML->new( source_root => $source_dir, dest_root => $dest_dir, template_dir => "$webwork_root/bin/dev_scripts/pod-templates", dest_url => $base_url, - sections => $sections, - macros => $macros, verbose => $verbose ); $htmldocs->convert_pods; diff --git a/bin/dev_scripts/pod-templates/category-index.mt b/bin/dev_scripts/pod-templates/category-index.mt index 96895c9117..a5d980d599 100644 --- a/bin/dev_scripts/pod-templates/category-index.mt +++ b/bin/dev_scripts/pod-templates/category-index.mt @@ -25,15 +25,14 @@ % % my ($index, $macro_index, $content, $macro_content) = ('', '', '', ''); % for my $macro (@$macros_order) { - % next unless defined $pod_index->{$macro}; % my $new_index = begin - <%= $macros->{$macro} %> + <%= $macro_names->{$macro} // $macro %> % end % $macro_index .= $new_index->(); % my $new_content = begin -

<%= $macros->{$macro} %>

+

<%= $macro_names->{$macro} // $macro %>

- % for my $file (sort { $a->[1] cmp $b->[1] } @{ $pod_index->{$macro} }) { + % for my $file (sort { $a->[1] cmp $b->[1] } @{ $macros->{$macro} }) { <%= $file->[1] %> % }
diff --git a/templates/ContentGenerator/PODViewer.html.ep b/templates/ContentGenerator/PODViewer.html.ep index 416486dc49..1383095d5f 100644 --- a/templates/ContentGenerator/PODViewer.html.ep +++ b/templates/ContentGenerator/PODViewer.html.ep @@ -29,9 +29,9 @@

<%= $section_names{macros} %>

% end -% for my $macro (qw(core contexts parsers answers graph math ui misc deprecated)) { +% for my $macro (sort keys %$macros) { % content_for macros_toc => begin - <%= link_to $macro_names{$macro} => "#macro-$macro", class => 'nav-link' %> + <%= link_to $macro_names{$macro} // $macro => "#macro-$macro", class => 'nav-link' %> % end % content_for pod_links => begin

<%= $macro_names{$macro} %>