sitemap: warn about undeclared pages
[sheet.git] / tools / mksitemap
1 #!/usr/bin/env perl
2 use 5.014;
3 use warnings;
4
5 our $VERSION = '1.00';
6
7 my @pages = (
8         [qw( index )],
9         [qw( readline vi digraphs charset unicode )],
10         [qw( vimperator mutt nethack mplayer )],
11         [qw( writing )],
12         [qw( source )],
13 );
14
15 my %freq = (
16         (map { $_ => 'yearly' } qw[ readline nethack mplayer ]),
17 );
18
19 my %known = map { $_ => 1 } map { @{$_} } @pages;
20 $known{$_} or warn "page $_ undeclared\n"
21         for grep { !/\./ } map { s/\.plp\z//r } glob '*.plp';
22
23 say '<?xml version="1.0" encoding="UTF-8"?>';
24 say '<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">';
25 for my $group (@pages) {
26         state $prio = 1;
27         for my $page (@{$group}) {
28                 $page =~ s/\Aindex\z//;
29                 print '<url>';
30                 print "<loc>http://sheet.shiar.nl/$page</loc>";
31                 printf '<changefreq>%s</changefreq>', $freq{$page} // 'monthly';
32                 printf '<priority>%.2f</priority>', $prio;
33                 say '</url>';
34         }
35         $prio -= .1;
36 }
37 say '</urlset>';
38