8 foreach my $year (qw/2010 2011 2012 2013/) {
9 open LIST, "projects$year";
13 my ($project, $url, $name);
16 if (/Project name and homepage[:* ]*\[([^\[\]]*)\]\(([^()]*)\)/) {
20 if (/(Název projektu|Project name)[:* ]*(.*)/) {
25 if (/(Domovská stránka projektu|Project home ?page)[:* ]*<([^<>]*)>/) {
28 if (/\[\[!meta title="([^"]*)"\]\]/) {
33 if (!$project or !$name or !$url) {
34 print STDERR "Expected field missing in $file\n";
37 print STDERR "Working on student $name ($year)\n";
38 if (!$projects{$project}) {
39 $projects{$project} = {};
40 $projects{$project}{'students'} = [];
42 my $p = $projects{$project};
43 if (!$$p{'url'} or $url) {
46 push @{$$p{'students'}}, { 'file' => $file, 'name' => $name, 'year' => $year };
50 print '[[!meta title="Projekty"]]'."\n";
51 print '[[!meta stylesheet="/columns" rel="stylesheet"]]'."\n";
53 print 'This page lists the projects and which students worked on them in the'."\n";
54 print 'past years.'."\n";
56 foreach (sort(keys(%projects))) {
57 print "\n* [$_](", $projects{$_}{'url'}, ")\n";
58 #print Dumper($projects{$_}{'students'});
59 foreach (@{$projects{$_}{'students'}}) {
60 my $page = $_->{'file'};
63 my $name = $_->{'name'} || "???";
64 my $year = $_->{'year'} || "20??";
66 print " * [[", $name || "", "|student/", $page, "]] ($year)\n";