#!/usr/bin/perl # This is the index for . use strict; use warnings FATAL => qw( all ); use CGI::Carp qw(fatalsToBrowser); use CGI::Minimal; use HTML::Entities qw(encode_entities); use lib '../files/lib'; use Base::Page qw(page story); use HTML::Elements qw(list anchor); use Util::Convert qw(searchify); use Util::Data qw(file_directory file_list); use Util::Menu qw(file_menu); use Util::Sort qw(article_sort); my $cgi = CGI::Minimal->new; my $page = $cgi->param('page') ? encode_entities($cgi->param('page'),'/<>"') : undef; my $pages_dir = file_directory(, 'text'); my @pages_list = file_list($pages_dir); my @pages = sort { article_sort($a, $b) } map { $_ =~ s/\.txt//; $_ =~ s/_/ /g; $_ } grep { -f "$pages_dir/$_" && /^\p{uppercase}/ } @pages_list; my $heading = q(); my $page_file = "$pages_dir/index.txt"; if ( $page && grep { $_ eq $page } @pages ) { $heading = $page; $page_file = "$pages_dir/$page.txt"; $page_file =~ s/ /_/g; } open(my $page_fh, '<', $page_file) || die "Can't open $page_file. $!"; my $magic; $magic->{'pages'} = sub { my $file_menu = file_menu('page', \@pages, $page); list(4, 'u', $file_menu); }; page( 'heading' => $heading, 'selected' => $page, 'code' => sub { story($page_fh, { 'doc magic' => $magic, 'line magic' => $magic }); } );