12 [qw( vi digraphs charset browser writing sc/lotv termcol dieren )],
13 [qw( readline latin unicode countries emoji perl keyboard/altgr )],
15 vimperator mutt nethack mplayer/mpv font codec
16 keyboard/altgr/windows keyboard/altgr/macos
17 dieren/uitgebreid dieren/beknopt
20 apl less screen digits sc/bw sc/hots termcol/legacy mplayer
21 keyboard/altgr/macos-abc keyboard/altgr/msx keyboard/altgr/ukext
22 keyboard/altgr/eurkey keyboard/altgr/apl keyboard/altgr/spacecadet
25 [qw( chars/table/html sample source plan )],
29 (map { $_ => 'yearly' } qw[ readline nethack mplayer apl ]),
30 (map { $_ => 'weekly' } qw[ browser ]),
33 my %known = map { s{/.*}{}r => 1 } map { @{$_} } @pages;
34 $known{$_} or warn "page $_ undeclared\n"
35 for grep { !/\./ } map { s/\.plp\z//r } glob '*.plp';
37 say '<?xml version="1.0" encoding="UTF-8"?>';
38 say '<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">';
39 for my $group (@pages) {
41 for my $file (@{$group}) {
42 (my $page = $file) =~ s/\Aindex\z//;
43 if (-e "$file.eng.inc.pl") {
44 $file .= '.eng.inc.pl';
50 my $stat = stat $file or do {
51 warn "missing file $file\n";
56 print "<loc>http://sheet.shiar.nl/$page</loc>";
57 printf '<changefreq>%s</changefreq>', $freq{$page} // 'monthly';
58 printf '<priority>%.2f</priority>', $prio;
59 printf '<lastmod>%s</lastmod>', localtime($stat->mtime)->date;