package PodBlog; use strict; use warnings; use Carp; use Data::Dump qw(dump); use Catalyst::Runtime '5.70'; use Catalyst qw( ConfigLoader Static::Simple Cache::FileCache PageCache ); our $VERSION = '0.01'; __PACKAGE__->config( name => 'PodBlog', root => __PACKAGE__->path_to('root'), blog_dir => __PACKAGE__->path_to( 'root', 'blog' ), indexfile => 'index.pod', podext => 'pod|txt', max => 20, sidebar => 1, follow_symlinks => 1, description => 'PodBlog: Blogging with POD format', #cache => { # storage => __PACKAGE__->path_to( '/tmp', lc(__PACKAGE__) . '_cache' ), #}, #cache_page => { # expires => 3600, # set_http_headers => 1, # debug => 1 #}, style => 'peknet' ); # Start the application __PACKAGE__->setup; #carp dump __PACKAGE__->config; 1; __END__ =head1 NAME PodBlog - Catalyst-based blogging with POD format =head1 SYNOPSIS script/podblog_server.pl =head1 DESCRIPTION PodBlog is a simple blog app that supports POD formatted blog entries. It also supports text files in the style of Blosxom. See HISTORY. The URL scheme is similar to Blosxom's: =over =item http://yourblog/ Returns I most recent entries from all directories in I, sorted newest to oldest. =item http://yourblog/category/entry Returns just I, which maps to I (could be I or I or ... based on I). =item http://yourblog/year/month/day Returns all entries in I, I, and I (or just I and I) sorted newest to oldest. =item http://yourblog/category/ Returns I entries in I, which is a subdir in I, sorted newest to oldest. =item http://yourblog/category/year/month/day A combination of the previous two features. =back =head1 CACHING All pages are cached for (by default) one hour, so if you add new entries, it may take awhile for them to show up. B A refresh cache URL feature. =head1 HISTORY I used Blosxom for several years, till I grew tired of the slower CGI rendering and I realized that I would rather author in POD than in plain text/html. I'd been sold on Catalyst for awhile and thought it a natural fit for a blogging app. I tried PodCMS but found it confusing to have so much of the HTML markup embedded in the Model part of the application. So I took PodCMS, stripped out everything but the Blog features, and moved the POD rendering out of the Model and directly into the template files. I liked the Blosxom URL API, and wanted as much backwards compatability as possible with my legacy blog entries, so I adapted as much of the Blosxom API as seemed useful. If other folks find this application useful, I'd be willing to add a Plugin API similar to Blosxom's. =head1 SEE ALSO L, L, L =head1 AUTHOR Peter Karman C =head1 LICENSE This library is free software, you can redistribute it and/or modify it under the same terms as Perl itself. =cut