NAME

Rapi::Blog - Plack-compatible, RapidApp-based blog engine

SYNOPSIS

use Rapi::Blog;

my $app = Rapi::Blog->new({
 site_path     => '/path/to/some-site',
 scaffold_path => '/path/to/some-site/scaffold', # default
});

# Plack/PSGI app:
$app->to_app

Create a new site from scratch using the rabl.pl utility script:

rabl.pl create /path/to/some-site
cd /path/to/some-site && plackup

DESCRIPTION

This is a Plack-compatible blogging platform written using RapidApp. This module was first released during The Perl Conference 2017 in Washington D.C. where a talk/demo was given on the platform:

Rapi::Blog talk/video

rapi.io/tpc2017

See Rapi::Blog::Manual for more information and usage.

CONFIGURATION

Rapi::Blog extends RapidApp::Builder and supports all of its options, as well as the following params specific to this module:

site_path

Only required param - path to the directory containing the site.

scaffold_path

Path to the directory containing the "scaffold" of the site. This is like a document root with some extra functionality.

If not supplied, defaults to 'scaffold/' within the site_path directory.

builtin_scaffold

Alternative to scaffold_path, the name of one of the builtin skeleton scaffolds to use as the live scaffold. This is mainly useful for dev and content-only testing. As of version 1.0000) there are two built-in scaffolds:

bootstrap-blog

This is the default out-of-the-box scaffold which is based on the "Blog" example from the Twitter Bootstrap HTML/CSS framework (v3.3.7): http://getbootstrap.com/examples/blog/. This mainly exists to serve as a useful reference implementation of the basic features/directives provided by the Template API.

keep-it-simple

Based on the "Keep It Simple" website template by http://www.Styleshout.com

fallback_builtin_scaffold

If set to true and the local scaffold directory doesn't exist, the default builtin skeleton scaffold 'bootstrap-blog' will be used instead. Useful for testing and content-only scenarios.

Defaults to false.

smtp_config

Optional HashRef of Email::Sender::Transport::SMTP params which will be used by the app for sending E-Mails, such as password resets and other notifications. The options are passed directly to Email::Sender::Transport::SMTP-new()>. If the special param transport_class is included, it will be used as the transport class instead of Email::Sender::Transport::SMTP. If this is supplied, it should still be a valid Email::Sender::Transport class.

If this option is not supplied, E-Mails will be sent via the localhost using sendmail via the default Email::Sender::Transport::Sendmail options.

override_email_recipient

If set, all e-mails generated by the system will be sent to the specified address instead of normal recipients.

METHODS

to_app

PSGI $app CodeRef. Derives from Plack::Component

SEE ALSO

AUTHOR

Henry Van Styn <vanstyn@cpan.org>

COPYRIGHT AND LICENSE

This software is copyright (c) 2017 by IntelliTree Solutions llc.

This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.