Implemented per-project feeds for ncdu, ncdc, globster and tuwf
This commit is contained in:
parent
94469e44e3
commit
610b0fb31c
1 changed files with 9 additions and 4 deletions
13
index.cgi
13
index.cgi
|
|
@ -75,6 +75,9 @@ my @changes = (
|
||||||
[ '2009-04-30', undef, 'Site redesign and reorganisation.' ],
|
[ '2009-04-30', undef, 'Site redesign and reorganisation.' ],
|
||||||
);
|
);
|
||||||
|
|
||||||
|
my %feeds = map +($_,1), qw|ncdc ncdu globster tuwf|;
|
||||||
|
my $feedreg = join '|', keys %feeds;
|
||||||
|
|
||||||
|
|
||||||
TUWF::register(
|
TUWF::register(
|
||||||
qr{} => sub { podpage(shift, 'home', '', '', "Yorhel's Projects") },
|
qr{} => sub { podpage(shift, 'home', '', '', "Yorhel's Projects") },
|
||||||
|
|
@ -108,8 +111,8 @@ TUWF::register(
|
||||||
qr{dump/grenamr} => sub { podpage(shift, 'dump-grenamr', 'dump', 'grenamr', 'GTK+ Mass File Renamer') },
|
qr{dump/grenamr} => sub { podpage(shift, 'dump-grenamr', 'dump', 'grenamr', 'GTK+ Mass File Renamer') },
|
||||||
qr{dump/nccolour} => sub { podpage(shift, 'dump-nccolour', 'dump', 'nccolour', 'Colours in NCurses') },
|
qr{dump/nccolour} => sub { podpage(shift, 'dump-nccolour', 'dump', 'nccolour', 'Colours in NCurses') },
|
||||||
qr{dump/insbench} => sub { podpage(shift, 'dump-insbench', 'dump', 'insbench', 'Insertion Performance Benchmarks') },
|
qr{dump/insbench} => sub { podpage(shift, 'dump-insbench', 'dump', 'insbench', 'Insertion Performance Benchmarks') },
|
||||||
qr{feed\.atom} => \&atom,
|
qr{(?:($feedreg)/)?feed\.atom} => \&atom,
|
||||||
qr{(ncdc|ncdu|globster)/bug} => \&bug_list,
|
qr{(ncdc|ncdu|globster)/bug} => \&bug_list,
|
||||||
qr{(ncdc|ncdu|globster)/bug/post} => \&bug_post,
|
qr{(ncdc|ncdu|globster)/bug/post} => \&bug_post,
|
||||||
qr{(ncdc|ncdu|globster)/bug/new} => \&bug_new,
|
qr{(ncdc|ncdu|globster)/bug/new} => \&bug_new,
|
||||||
qr{(ncdc|ncdu|globster)/bug/([1-9][0-9]*)} => \&bug_item,
|
qr{(ncdc|ncdu|globster)/bug/([1-9][0-9]*)} => \&bug_item,
|
||||||
|
|
@ -178,12 +181,13 @@ sub tuwfmanual {
|
||||||
|
|
||||||
sub atom {
|
sub atom {
|
||||||
my $s = shift;
|
my $s = shift;
|
||||||
|
my $sub = shift;
|
||||||
my $t = (stat("$ROOT/index.cgi"))[9];
|
my $t = (stat("$ROOT/index.cgi"))[9];
|
||||||
$s->resHeader('Last-Modified' => strftime '%a, %d %b %Y %H:%M:%S GMT', gmtime $t);
|
$s->resHeader('Last-Modified' => strftime '%a, %d %b %Y %H:%M:%S GMT', gmtime $t);
|
||||||
$s->resHeader('Content-Type' => 'application/atom+xml');
|
$s->resHeader('Content-Type' => 'application/atom+xml');
|
||||||
xml;
|
xml;
|
||||||
tag feed => xmlns => 'http://www.w3.org/2005/Atom', 'xml:lang' => 'en', 'xml:base' => 'http://dev.yorhel.nl/';
|
tag feed => xmlns => 'http://www.w3.org/2005/Atom', 'xml:lang' => 'en', 'xml:base' => 'http://dev.yorhel.nl/';
|
||||||
tag title => "Yorhel's Projects";
|
tag title => $sub ? "\u$sub Project Announcements" : "Yorhel's Projects";
|
||||||
tag updated => strftime('%Y-%m-%dT%H:%M:%SZ', gmtime $t);
|
tag updated => strftime('%Y-%m-%dT%H:%M:%SZ', gmtime $t);
|
||||||
tag id => "http://dev.yorhel.nl/feed.atom";
|
tag id => "http://dev.yorhel.nl/feed.atom";
|
||||||
tag link => rel => 'self', type => 'application/atom+xml', href => "http://dev.yorhel.nl/feed.atom", undef;
|
tag link => rel => 'self', type => 'application/atom+xml', href => "http://dev.yorhel.nl/feed.atom", undef;
|
||||||
|
|
@ -191,6 +195,7 @@ sub atom {
|
||||||
|
|
||||||
my $n = 0;
|
my $n = 0;
|
||||||
for(@changes) {
|
for(@changes) {
|
||||||
|
next if $sub && $_->[1] !~ /^\/\Q$sub/;
|
||||||
last if $n++ >= 10;
|
last if $n++ >= 10;
|
||||||
tag 'entry';
|
tag 'entry';
|
||||||
tag id => 'http://dev.yorhel.nl'.($_->[1]||'/').'#'.$_->[0];
|
tag id => 'http://dev.yorhel.nl'.($_->[1]||'/').'#'.$_->[0];
|
||||||
|
|
@ -424,7 +429,7 @@ sub htmlHeader {
|
||||||
html;
|
html;
|
||||||
head;
|
head;
|
||||||
Link rel => 'stylesheet', href => '/style.css', type => 'text/css', media => 'all';
|
Link rel => 'stylesheet', href => '/style.css', type => 'text/css', media => 'all';
|
||||||
Link rel => 'alternate', type => 'application/atom+xml', href => '/feed.atom', title => 'Site updates';
|
Link rel => 'alternate', type => 'application/atom+xml', href => ($feeds{$o{page}||''} ? "/$o{page}" : '').'/feed.atom', title => 'Site updates';
|
||||||
title $o{title};
|
title $o{title};
|
||||||
end;
|
end;
|
||||||
body;
|
body;
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue