package ballet; use 5.010; use Dancer ':syntax'; #use Dancer::Plugin::Auth::Twitter; use ballet::Git; our $VERSION = '0.1'; #auth_twitter_init(); my $git = ballet::Git->new( wiki_path => setting('wiki_path') ); # before sub { # return if request->path =~ m{/auth/twitter/callback}; # if (not session('twitter_user')) { # redirect auth_twitter_authenticate_url; # } # }; get '/' => sub { wiki_page('Home'); }; get '/history/*' => sub { my ($page_name) = splat; debug("looking history for $page_name"); my $versions = $git->find_history( $page_name, 'master' ); template 'history', {versions => $versions, title => 'Home'}; }; get '/edit/*' => sub { my ($page_name) = splat; debug("looking for page $page_name"); my $content = $git->find_page($page_name, 'master'); template 'edit', {content => $content, title => 'Home'}; }; get '/*' => sub { my ($page_name) = splat; debug("looking for page $page_name"); wiki_page($page_name); }; post '/edit/*' => sub { my ($page_name) = splat; my $content = params->{content}; update_wiki_page($page_name, $content); redirect uri_for('/'); }; sub wiki_page { my $page_name = shift; my $content = $git->find_page( $page_name, 'master' ); $content = $git->convert( 'textile', $content ); template 'page', { title => $page_name, author => 'franck', date => '10/10/10', content => $content, # user => session('twitter_user')->{'screen_name'}, }; } sub update_wiki_page { my ($page_name, $content) = @_; $git->update_page($page_name, $content); } true;