X-Git-Url: http://git.jankratochvil.net/?a=blobdiff_plain;f=project%2FIndex.html.pl;h=eb645d83f6beb001f7601079ef8836ad4623ad35;hb=c23b9f766513041c36b6832975295c00b96878e1;hp=25c01bc7d1bccfa8fdd84c362cc06a925210e683;hpb=65febd1ce4a2c8be812a556a5a2f4ad9cfbf4d1e;p=www.jankratochvil.net.git diff --git a/project/Index.html.pl b/project/Index.html.pl index 25c01bc..eb645d8 100755 --- a/project/Index.html.pl +++ b/project/Index.html.pl @@ -27,11 +27,9 @@ use warnings; BEGIN{ open F,"Makefile"; our $top_dir=pop @{[split /\s/,(grep /^top_srcdir/,)[0]]}; eval "use lib '$top_dir'"; close F; } use My::Web; -require 'CGI'; -require 'My::Project'; - -use constant ENTRIES=>"CVS/Entries"; -use constant ENTRIES_LOG=>"CVS/Entries.Log"; +require CGI; +Wrequire 'My::Project'; +Wrequire 'project::Platform'; My::Web->init( @@ -42,41 +40,26 @@ My::Web->heading(); my $CGI=CGI->new(); -print <<'HERE'; -

Project List of Jan Kratochvil

+print <<"HERE"; +

Project List of @{[ a_href 'http://www.jankratochvil.net/','Jan Kratochvil' ]}

-

- - -

+ HERE -my %dirs; -for my $ENTRIES (ENTRIES,ENTRIES_LOG) { - local *E; - next if !open E,$ENTRIES; - while () { - chomp; - do { $dirs{$1}=1; next; } if m#^(?:A )?D/([^/]*)/#; - next if m#^/([^/]*)/# ; - next if /^D$/; - warn "File $ENTRIES contains invalid line \"$_\": $!"; +print ''."\n"; + my @platforms=@project::Platform::platforms; + while (@platforms) { + my $platform_sym =shift @platforms; + my $platform_name=shift @platforms; + print '\n"; } - close E; - } +print '
'.a_href('#'.$platform_sym,$platform_name)."
'."\n"; +print vskip "1ex"; -my %item; -for my $dir (keys(%dirs)) { - require "project::${dir}::ListItem"; - my $item=eval('\@project::'.$dir.'::ListItem::ListItem'); - do { warn "Broken project/$dir/ListItem.pm"; next; } if !defined $item; - $item{$dir}={ My::Project::project_arr_to_hash(@$item) }; - } +my %item=( My::Project::item_hash_read() ); # $col{"name"}{"show"}=1 # $col{"name"}{"format"}=sub { "<".$_[0].">"; } @@ -94,72 +77,25 @@ $col{"name"}{"format"}=sub { return "".$_[0].""; }; -$col{"license"}{"format"}=sub { - my %known=( - "PD"=>"PD", - "GPL"=>"GPL", - "LGPL"=>"LGPL", - ); - return $known{$_[0]} if $known{$_[0]}; - return $_[0]; - }; - -$col{"maintenance"}{"format"}=sub { - return ($_[0]=~/^([^-]*)/)[0]; - }; - -$col{"online-demo"}{"format"}=\&format_url; -$col{"download"}{"format"}=\&format_url; -$col{"name"}{""}="Project Name"; -$col{"summary"}{""}="Abstract"; -$col{"license"}{""}="Copying"; -$col{"maintenance"}{""}="State"; -$col{"language"}{""}="Language"; - -# Fill in cols not contained in @col_order -if (0) { - my %col_order=map(($_=>1),@col_order); - push @col_order,map({ ($col_order{$_} ? () : $_); } keys(%{{ map(($_=>1),map((keys(%{$item{$_}})),keys(%item)))}})); +@platforms=@project::Platform::platforms; +while (@platforms) { + my $platform_sym =shift @platforms; + my $platform_name=shift @platforms; + print ''; + print "

$platform_name

"; + print '
'."\n"; + my @projects=sort { + ($item{$b}{"priority"} <=> $item{$a}{"priority"}) + or + (lc($item{$a}{"name"}) cmp lc($item{$b}{"name"})); + } map({ $item{$_}{"platform"} ne $platform_sym ? () : ($_); } keys(%item)); + for my $project (@projects) { + print "

".a_href("$project/",$item{$project}{"name"}.": ".$item{$project}{"summary"})."

\n"; + print "
\n"; + print $item{$project}{"description"}; + print "
\n"; + } } -print ''."\n"; - print ''; - for my $col (@col_order) { - next if defined $col{$col}{"show"} && !$col{$col}{"show"}; - print ''; - } - print ''."\n"; - my @rows_ordered=sort { - for my $order_by (@row_order,"name") { - my $order_by=$order_by; - my $minus=($order_by=~s/^(-)//)[0]; - my $r=($item{$a}{$order_by} cmp $item{$b}{$order_by}); - $r=-$r if $minus; - return $r if $r; - } - return 0; - } keys(%item); - for my $row (@rows_ordered) { - print ''; - for my $col (@col_order) { - next if defined $col{$col}{"show"} && !$col{$col}{"show"}; - print ''; - } - print ''."\n"; - if ($CGI->param("description_opt")) { - print ''; - print ''; - print ''."\n"; - print ''."\n"; - } - } -print '
'.($col{$col}{""} || "[$col]").'
'; - if (!$col{$col}{"format"}) { - print(($item{$row}{$col} || "")); - } - else { - print(&{$col{$col}{"format"}}($item{$row}{$col},$row)); - } - print '
'.$item{$row}{"description"}.'
 
'."\n"; My::Web->footer();