use File::Slurp qw/read_file/;
use HTTP::Negotiate qw/choose/;
use Plack::Request;
+use Gruntmaster::Page::Generic;
my %handlers;
my $content = read_file "a/$article.$lang";
my $title = read_file "a/$article.$lang.title";
my $html = Gruntmaster::Page::Base::header($lang, $title) . $content . Gruntmaster::Page::Base::footer($lang);
- return [200, ['Content-Type' => 'text/html', 'Content-Language' => $lang, 'Vary' => 'Accept-Language'], [$html] ]
+ return [200, ['Content-Type' => 'text/html', 'Content-Language' => $lang, 'Vary' => 'Accept-Language', 'X-Forever' => 1, 'Cache-Control' => 'max-age=300'], [$html] ]
}
}
}
BEGIN{
- my $word = qr,(\w+),a;
- my $ct = qr,(?:\/ct/$word)?,a;
+ my $word = qr,(\w+),a;
+ my $number = qr,(\d+),a;
- get qr,/css/$word, => 'CSS';
- get qr,/js, => 'JS';
+ sub generic {
+ for my $thing (@_) {
+ my $pkg = ucfirst $thing;
+ get qr,/$thing/, => $pkg;
+ get qr,/$thing/read, => "${pkg}::Read";
+ get qr,/$thing/$word, => "${pkg}::Entry";
+# post qr,/$thing/$word/create, => "${pkg}::Entry::Create";
+ get qr,/$thing/$word/read, => "${pkg}::Entry::Read";
+# post qr,/$thing/$word/update, => "${pkg}::Entry::Update";
+# post qr,/$thing/$word/delete, => "${pkg}::Entry::Delete";
+ }
+ }
+
+ get qr,/css/$word\.css, => 'CSS';
+ get qr,/js\.js, => 'JS';
- get qr,/ct/, => 'Ct';
- get qr,/ct/$word, => 'Ct::Entry';
- get qr,/us/, => 'Us';
- get qr,/us/$word, => 'Us::Entry';
+ get qr,/log/st, => 'St';
+ generic qw/us ct pb log/;
- get qr,$ct/log/(\d+)?, => 'Log';
- get qr,$ct/log/st, => 'St';
- get qr,$ct/log/job/$word, => 'Log::Entry';
- get qr,$ct/log/src/$word\.$word, => 'Src';
- get qr,$ct/submit, => 'Submit';
- get qr,$ct/pb/, => 'Pb';
- get qr,$ct/pb/$word, => 'Pb::Entry';
+ get qr,/log/src/$number\.$word, => 'Src';
+ post qr,/pb/$word/submit, => 'Submit';
post qr,/action/register, => 'Register';
post qr,/action/passwd, => 'Passwd';