|
|
@@ -41,7 +41,7 @@ our %routes = (
|
|
|
callback => \&Trog::Routes::HTML::posts,
|
|
|
data => { tag => ['project'] },
|
|
|
},
|
|
|
- '/mostrecent.html' => {
|
|
|
+ '/talks/mostrecent.html' => {
|
|
|
method => 'GET',
|
|
|
callback => \&Trog::Routes::HTML::posts,
|
|
|
data => { tag => ['presentations'], limit => 1 },
|
|
|
@@ -55,7 +55,7 @@ our %routes = (
|
|
|
method => 'GET',
|
|
|
callback => sub {Trog::Routes::HTML::redirect_permanent('/themes/houston.pm/styles/houston.css') },
|
|
|
},
|
|
|
- '/talks/(.*)' => {
|
|
|
+ '/talks/(\d.*)' => {
|
|
|
method => 'GET',
|
|
|
callback => sub {
|
|
|
my ($query) = @_;
|
|
|
@@ -63,6 +63,10 @@ our %routes = (
|
|
|
},
|
|
|
captures => ['fragment'],
|
|
|
},
|
|
|
+ '/meetings.html' => {
|
|
|
+ method => 'GET',
|
|
|
+ callback => \&meetings,
|
|
|
+ },
|
|
|
);
|
|
|
|
|
|
my $processor = Text::Xslate->new(
|
|
|
@@ -70,8 +74,9 @@ my $processor = Text::Xslate->new(
|
|
|
);
|
|
|
|
|
|
my %paths = (
|
|
|
- '/meetings.html' => 'Past & Upcoming Meetings',
|
|
|
- '/announce_meeting.html' => 'Latest Meeting',
|
|
|
+ '/talks/index.html' => 'Past Meetings',
|
|
|
+ '/talks/mostrecent.html' => 'Latest Meeting',
|
|
|
+ '/projects/index.html' => 'Group Projects',
|
|
|
);
|
|
|
|
|
|
sub path_to_tile ($path) {
|
|
|
@@ -88,4 +93,14 @@ sub faq ($args, $render_cb) {
|
|
|
return Trog::Routes::HTML::index($args,$render_cb, $out);
|
|
|
}
|
|
|
|
|
|
+sub meetings ($args, $render_cb) {
|
|
|
+ my $out = $processor->render('meetings.tx');
|
|
|
+ return Trog::Routes::HTML::index($args,$render_cb, $out);
|
|
|
+}
|
|
|
+
|
|
|
+sub announce ($args, $render_cb) {
|
|
|
+ my $out = $processor->render('announce.tx');
|
|
|
+ return Trog::Routes::HTML::index($args,$render_cb, $out);
|
|
|
+}
|
|
|
+
|
|
|
1;
|