routes.pm 2.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283
  1. package Theme;
  2. use strict;
  3. use warnings;
  4. no warnings 'experimental';
  5. use feature qw{signatures};
  6. use File::Basename qw{basename};
  7. use lib 'lib';
  8. use Trog::Routes::HTML;
  9. our $default_title = 'Houston Perl Mongers';
  10. our $show_madeby = 1;
  11. our %routes = (
  12. '/about.html' => {
  13. method => 'GET',
  14. callback => sub {Trog::Routes::HTML::redirect_permanent('/about') },
  15. },
  16. '/meetings.html' => {
  17. method => 'GET',
  18. callback => \&Trog::Routes::HTML::series,
  19. data => { id => 1609008204, in_series => 1 },
  20. },
  21. '/announce_meeting.html' => {
  22. method => 'GET',
  23. callback => \&Trog::Routes::HTML::series,
  24. data => { id => 1609008204, in_series => 1, limit => 1 },
  25. },
  26. '/sponsors.html' => {
  27. method => 'GET',
  28. callback => \&sponsors,
  29. },
  30. '/faqs.html' => {
  31. method => 'GET',
  32. callback => \&faq,
  33. },
  34. '/projects/index.html' => {
  35. method => 'GET',
  36. callback => \&Trog::Routes::HTML::series,
  37. data => { id => 1608661217, in_series => 1 },
  38. },
  39. '/talks/mostrecent.html' => {
  40. method => 'GET',
  41. callback => \&Trog::Routes::HTML::series,
  42. data => { id => 1608661368, in_series => 1, limit => 1 },
  43. },
  44. '/talks/index.html' => {
  45. method => 'GET',
  46. callback => \&Trog::Routes::HTML::series,
  47. data => { id => 1608661368, in_series => 1 },
  48. },
  49. '/styles/houston.css' => {
  50. method => 'GET',
  51. callback => sub {Trog::Routes::HTML::redirect_permanent('/themes/houston.pm/styles/houston.css') },
  52. },
  53. '/talks/(\d.*)' => {
  54. method => 'GET',
  55. callback => sub {
  56. my ($query) = @_;
  57. Trog::Routes::HTML::redirect_permanent("/assets/talks/$query->{fragment}")
  58. },
  59. captures => ['fragment'],
  60. },
  61. );
  62. my $processor = Text::Xslate->new(
  63. path => 'www/themes/houston.pm/templates',
  64. );
  65. sub sponsors ($args, $render_cb) {
  66. my $out = $processor->render('sponsors.tx');
  67. return Trog::Routes::HTML::index($args,$render_cb, $out);
  68. }
  69. sub faq ($args, $render_cb) {
  70. my $out = $processor->render('faq.tx');
  71. return Trog::Routes::HTML::index($args,$render_cb, $out);
  72. }
  73. 1;