| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394 |
- package Theme;
- use strict;
- use warnings;
- no warnings 'experimental';
- use feature qw{signatures};
- use File::Basename qw{basename};
- use Text::Xslate;
- use URI::Escape qw{uri_escape_utf8};
- use lib 'lib';
- use Trog::Routes::HTML;
- our $default_title = 'Houston Perl Mongers';
- our $default_image = 'img/icon/houstonpm.png';
- our $display_name = 'Houston Perl Mongers';
- our $description = 'Houston Perl Mongers';
- our $default_tags = 'houston.pm, houston, perl, mongers, Net::Jabber::Bot, Device::USB::LibUSB';
- our $show_madeby = 1;
- our $twitter_account = 'houstonpm';
- our $fb_app_id = 'bogus';
- our %routes = (
- '/about.html' => {
- method => 'GET',
- callback => sub ($query) { $query->{tpsgi}->redirect_permanent('/about') },
- },
- '/meetings.html' => {
- method => 'GET',
- callback => \&Trog::Routes::HTML::series,
- data => { id => 'eb64957c-14d7-11ec-852a-f1cd345321ea', in_series => 1, exclude_tags => ['series','about'] },
- },
- '/announce_meeting.html' => {
- method => 'GET',
- callback => \&Trog::Routes::HTML::series,
- data => { id => 'eb64957c-14d7-11ec-852a-f1cd345321ea', in_series => 1, exclude_tags => ['series','about'], limit => 1 },
- },
- '/sponsors.html' => {
- method => 'GET',
- callback => \&sponsors,
- },
- '/faqs.html' => {
- method => 'GET',
- callback => \&faq,
- },
- '/projects/index.html' => {
- method => 'GET',
- callback => \&Trog::Routes::HTML::series,
- data => { id => 'e9941181-14d7-11ec-852a-c5617e3415e6', in_series => 1, exclude_tags => ['series','about'] },
- },
- '/talks/mostrecent.html' => {
- method => 'GET',
- callback => \&Trog::Routes::HTML::series,
- data => { id => 'e91ce133-14d7-11ec-852a-a69c982403ec', in_series => 1, exclude_tags => ['series','about'], limit => 1 },
- },
- '/talks/index.html' => {
- method => 'GET',
- callback => \&Trog::Routes::HTML::series,
- data => { id => 'e91ce133-14d7-11ec-852a-a69c982403ec', in_series => 1, exclude_tags => ['series','about'] },
- },
- '/styles/houston.css' => {
- method => 'GET',
- callback => sub ($query) { $query->{tpsgi}->redirect_permanent('/themes/houston.pm/styles/houston.css') },
- },
- '/talks/{fragment+}' => {
- method => 'GET',
- callback => sub ($query) {
- my $fragment = $query->{input}{fragment};
- return $query->{tpsgi}->notfound($query) unless $fragment =~ m/\A\d/;
- return $query->{tpsgi}->redirect_permanent( '/assets/talks/' . uri_escape_utf8( $fragment, q{^A-Za-z0-9\-._~/} ) );
- },
- },
- );
- my $processor = Text::Xslate->new(
- path => 'www/themes/houston.pm/templates',
- );
- sub sponsors ($args) {
- $args->{title} = 'Sponsors';
- my $out = $processor->render('sponsors.tx');
- return Trog::Routes::HTML::index($args, $out);
- }
- sub faq ($args) {
- $args->{title} = 'FAQ';
- my $out = $processor->render('faq.tx');
- return Trog::Routes::HTML::index($args, $out);
- }
- 1;
|