-$col{"license"}{"format"}=sub {
- my %known=(
- "PD"=>"<a href=\"http://www.gnu.org/philosophy/categories.html#PublicDomainSoftware\">PD</a>",
- "GPL"=>"<a href=\"http://www.gnu.org/licenses/gpl.html\">GPL</a>",
- "LGPL"=>"<a href=\"http://www.gnu.org/licenses/lgpl.html\">LGPL</a>",
- );
- 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 '<a name="'.$platform_sym.'">';
+ print "<h2>$platform_name</h2>";
+ print '</a>'."\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 "<h3>".a_href("$project/",$item{$project}{"name"}.": ".$item{$project}{"summary"})."</h3>\n";
+ print "<blockquote>\n";
+ print $item{$project}{"description"};
+ print "</blockquote>\n";
+ }